Prerequisites
Exception report
Exception :
Type : System.IndexOutOfRangeException
TargetSite :
Name : ThrowIndexOutOfRangeException
DeclaringType : [Internal.Runtime.CompilerHelpers.ThrowHelpers]
MemberType : Method
Module : System.Private.CoreLib.dll
Message : Index was outside the bounds of the array.
Source : System.Private.CoreLib
HResult : -2146233080
StackTrace :
at CallSite.Target(Closure, CallSite, Object, Object)
at System.Management.Automation.EnumerableOps.SlicingIndex(Object target, IEnumerator indexes, Func`3 indexer)
at <ScriptBlock>(Closure, FunctionContext)
CategoryInfo : OperationStopped: (:) [], IndexOutOfRangeException
FullyQualifiedErrorId : System.IndexOutOfRangeException
InvocationInfo :
ScriptLineNumber : 393
OffsetInLine : 17
HistoryId : 111
ScriptName : C:\Users\matt\OneDrive\Documents\PowerShell\profile.ps1
Line : if ($line[0..$cursor].Where{$_ -eq $quote}.Count % 2 -eq 1) {
Statement : $line[0..$cursor].Where{$_ -eq $quote}.Count % 2 -eq 1
PositionMessage : At C:\Users\matt\OneDrive\Documents\PowerShell\profile.ps1:393 char:17
+ … if ($line[0..$cursor].Where{$_ -eq $quote}.Count % 2 -eq 1) { …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PSScriptRoot : C:\Users\matt\OneDrive\Documents\PowerShell
PSCommandPath : C:\Users\matt\OneDrive\Documents\PowerShell\profile.ps1
CommandOrigin : Internal
ScriptStackTrace : at <ScriptBlock>, C:\Users\matt\.local\share\chezmoi\outchezmoiscripts\Sync-ScoopConfig.ps1: line 64
at <ScriptBlock>, <No file>: line 1
Screenshot
N/A
Environment data
PS Version: 7.6.0
PS HostName: Visual Studio Code Host
PSReadLine Version: 2.4.4-beta4
PSReadLine EditMode: Vi
OS: 10.0.22621.1 (WinBuild.160101.0800)
BufferWidth: 190
BufferHeight: 19
Steps to reproduce
Run the sample profile with Set-StrictMode -Version Latest . Then go to end of line. Then enter a quote.
Expected behavior
Two quotes should be entered
Actual behavior
Error happens.
Workaround
I edited the below line
|
if ($line[0..$cursor].Where{$_ -eq $quote}.Count % 2 -eq 1) { |
to add
$cursor -lt $line.Length -and to beginning of the
if block to short circuit and prevent the index out of range. I wasn't sure if
$cursor - 1 inside the indexer would be appropriate as I don't completely understand all the code.
Prerequisites
Exception report
Screenshot
N/A
Environment data
Steps to reproduce
Run the sample profile with
Set-StrictMode -Version Latest. Then go to end of line. Then enter a quote.Expected behavior
Two quotes should be entered
Actual behavior
Error happens.
Workaround
I edited the below line
PSReadLine/PSReadLine/SamplePSReadLineProfile.ps1
Line 195 in caa53f8
to add
$cursor -lt $line.Length -andto beginning of theifblock to short circuit and prevent the index out of range. I wasn't sure if$cursor - 1inside the indexer would be appropriate as I don't completely understand all the code.