解決方法
PowerShellの画面をリサイズすれば直る
現象
VSCodeでPowerShellを使っていて、キーの「.」を打つと以下のようなエラーが出た。
PS C:\Users\takey\Desktop\myspace\workspace\Algorithm> 問題が発生しました。このバグを以下の詳細と共に報告してください。 GitHub で報告: https://github.com/lzybkr/PSReadLine/issues/new ----------------------------------------------------------------------- 直前 96 個のキー: P r i m Tab s e g m e n t Tab LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow Leftrrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LetArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow LeftArrow eftArrow LeftArrow g + + Space Enter . . . . Enter . . Backspace Backspace Enter . Backspace Backspace g + + Space P r i m e Tab s e g m e n t Tab Enter . / a Enter Enter . Backspace . 例外: System.ArgumentOutOfRangeException: 値には 0 以上で、コンソールの次元のバッファー サイズ しなければなりません。 パラメーター名:left 実際の値は -2 です。 場所 System.Console.SetCursorPosition(Int32 left, Int32 top) 場所 Microsoft.PowerShell.Internal.VirtualTerminal.set_CursorLeft(Int32 value) 場所 Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, Striolor) 場所 Microsoft.PowerShell.PSConsoleReadLine.ForceRender() 場所 Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c) 場所 Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg) 場所 Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, DictioatchTable, Boolean ignoreIfNoAction, Object arg) 場所 Microsoft.PowerShell.PSConsoleReadLine.InputLoop() 場所 Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinIntrinsics) -----------------------------------------------------------------------
エラーの発動条件が意味不明だったのですが、なんかここのissueを見ると、
This issue happens only when you resize the window after UpArrow and before Escape.
とありましたので、試しに画面サイズを変更すると現象が起こらなくなりました。なんか入力カーソルが画面右ぎりぎりの状態で「.」や「,」を打つとエラーが起きるらしい。
追記
Powershellのバージョンをアップデートすれば直るらしい