Name | Value
----- | -----
PS version | 7.1.0-preview.2
PSReadline version | 2.1.0-beta1
os | 10.0.19613.1000 (WinBuild.160101.0800)
PS file version | 7.1.0.0
HostName | ConsoleHost
BufferWidth | 127
BufferHeight | 1000
Last 200 Keys
I n A r c h i v e F o r m a t ] : : X Z ) Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow LeftArrow LeftArrow Shift+Ctrl+LeftArrow $ r . C o n t e n t Ctrl+z Escape # Backspace $ s RightArrow Spacebar RightArrow LeftArrow RightArrow Shift+Ctrl+LeftArrow Shift+Ctrl+LeftArrow Ctrl+RightArrow Ctrl+RightArrow RightArrow Spacebar LeftArrow LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow LeftArrow Shift+LeftArrow Shift+LeftArrow Shift+LeftArrow Shift+LeftArrow Shift+LeftArrow Shift+LeftArrow Shift+LeftArrow Delete Delete Enter
$ s e v Tab Enter
UpArrow UpArrow Ctrl+a Ctrl+x N e w - O b j e c t Spacebar - T y p e N a m e Spacebar S e v e n Z i p E x t r a c t o r Spacebar - A r g u m e n t L i s t Spacebar @ ( $ s e v e n Z i p S t r e a m , [ S e v e n Z i p . I n A r c h i v e F o r m a t ] : : X Z ) Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+RightArrow LeftArrow LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+RightArrow [ ] Backspace Backspace Escape
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'length')
at System.Text.StringBuilder.Remove(Int32 startIndex, Int32 length)
at Microsoft.PowerShell.PSConsoleReadLine.EditItemInsertChar.Undo()
at Microsoft.PowerShell.PSConsoleReadLine.RevertLine(Nullable`1 key, Object arg)
at Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(PSKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)
at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken)
Investigating...
Investigating...
Yes, please.
See also #1469
I'm guessing this will be hard to reproduce.
Here are some useful details that may help:
I found the issue and also the consistent repro:
Windows
edit mode, run Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
git checkout -b blah origin/nonexist
and press Entergit ch
, and press Ctrl+f, then press EnterThe issue will be fixed in #1496 (the 2nd commit).
_From @daniel0x00_
I see the same on PSReadLine 2.1.0-beta1:
Environment
PSReadLine: 2.1.0-beta1
PowerShell: 7.0.0
OS: Microsoft Windows 10.0.17763
Last 200 KeysCtrl+Backspace Backspace Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow >Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow Ctrl+LeftArrow $ redactedobject Spacebar = Spacebar Enter $ redactedobject Spacebar = Spacebar $ redactedobject . a r g s Enter $ redactedobject Spacebar = Spacebar $ redactedobject Spacebar | Spacebar s e l e c t Spacebar * , Spacebar @ { n = ' c o m m a n d ' ; e = { $ redactedobject } } , Spacebar @ { n = ' >REDACTED ' ; e = { $ e n v : C O M P U T E R N A M E } } Enter Enter $ redactedobject Enter Enter UpArrow UpArrow UpArrow DownArrow DownArrow UpArrow UpArrow UpArrow Escape
Exception
``
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at System.Text.StringBuilder.Insert(Int32 index, String value) at Microsoft.PowerShell.PSConsoleReadLine.EditItemDelete.Undo() at Microsoft.PowerShell.PSConsoleReadLine.RevertLine(Nullable
1 key, Object arg)
at Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(PSKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)
at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken)
_From @jhoneill_
Another one here. Identical stack trace displayed to @daniel0x00 above.
It seems to be be fairly common and easy to repro in VS Code integrated shellPut in a long line at the last line in the window, press [ESC] and POW! Something seems to do its sums wrongly and think it should be removing stuff from a line after the end of the window.
If I move the cursor to left of about 176 (even if the line is very long) all is OK. If I'm not on the last line, all is OK. but cursor to near the bottom right is what triggers it . Whilst very ugly it doesn't do any real _harm_ apart from displaying the error the session seems unaffectedPS version: 7.0.0 PSReadline version: 2.1.0-beta1'; ProjectUri = 'https://github.com/PowerShell/PSReadLine os: 10.0.18362.1 (WinBuild.160101.0800) PS file version: 7.0.0.0 HostName: Visual Studio Code Host BufferWidth: 220 BufferHeight: 32
Most helpful comment
I found the issue and also the consistent repro:
Windows
edit mode, runSet-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
git checkout -b blah origin/nonexist
and press Entergit ch
, and press Ctrl+f, then press EnterThe issue will be fixed in #1496 (the 2nd commit).