`SamplePSReadLineProfile.ps1` SmartInsertQuote Error On Strict Mode
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 72/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- powershell
- Bereich
- cli
Rechercherichtung
Beginnen Sie mit PSReadLine/SamplePSReadLineProfile.ps1 an der verlinkten SmartInsertQuote-Bedingung und führen Sie das Beispielprofil unter Set-StrictMode -Version Latest aus. Reproduzieren Sie den Fehler, indem Sie an das Ende einer Zeile gehen und ein Anführungszeichen eingeben, und überprüfen Sie anschließend, dass die Absicherung diese Position behandelt, zwei Anführungszeichen einfügt und die Index-out-of-range-Ausnahme vermeidet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- C#
- Sterne
- 4.4k
- Forks
- 341
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus PowerShell/PSReadLine
-
Needs-Triage :mag:
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
PowerShell/PSReadLine#5205 ·
-
Needs-Triage :mag:
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
PowerShell/PSReadLine#5195 ·
-
Needs-Triage :mag:
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
PowerShell/PSReadLine#5045 ·
-
Area-CommandHelp Issue-Enhancement
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
PowerShell/PSReadLine#3470 · 3 Reaktionen ·
-
Needs-Triage :mag:
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
PowerShell/PSReadLine#5214 ·
Alle Issues in PowerShell/PSReadLine
Ähnliche Issues
-
type/automation type/tech-debt
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
-
t/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
ci-failure-cause test-failure
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
area:auth FE mvp P3
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
klasolsson81/jobbliggaren#1788 ·