`SamplePSReadLineProfile.ps1` SmartInsertQuote Error On Strict Mode
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- powershell
- Ambito
- cli
Direzione di ricerca
Inizia da PSReadLine/SamplePSReadLineProfile.ps1, alla condizione SmartInsertQuote collegata, ed esegui il profilo di esempio con Set-StrictMode -Version Latest. Riproduci l’errore spostandoti alla fine di una riga e inserendo una virgoletta, quindi verifica che la guardia gestisca quella posizione, inserisca due virgolette ed eviti l’eccezione index-out-of-range.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues, especially the pinned issues.
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
https://github.com/PowerShell/PSReadLine/blob/caa53f8469e35f6ba6e1a434d4fc8efae2dde20c/PSReadLine/SamplePSReadLineProfile.ps1#L195
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.
- Lingua principale
- C#
- Stelle
- 4.4k
- Fork
- 341
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PowerShell/PSReadLine
-
Needs-Triage :mag:
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PowerShell/PSReadLine#5205 ·
-
Needs-Triage :mag:
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
PowerShell/PSReadLine#5195 ·
-
Needs-Triage :mag:
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
PowerShell/PSReadLine#5045 ·
-
Area-CommandHelp Issue-Enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
PowerShell/PSReadLine#3470 · 3 reazioni ·
-
Needs-Triage :mag:
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
PowerShell/PSReadLine#5214 ·
Tutte le issue di PowerShell/PSReadLine
Issue simili
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
sillsdev/languageforge-lexbox#2665 ·
-
bug documentation frontend
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
azurenoops/spin_agent#975 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Difficoltà 2/5 1-3 ore Idoneità per principianti 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
SubtitleEdit/subtitleedit#15108 · 1 commento ·