PowerShell / PowerShell/PSScriptAnalyzer

Lines unaffected from sytax errors get formatted wrong on PowerShell 5

Offen
#1,813 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Area - Formatter Issue-Bug Up for Grabs
Vorherrschende Sprache
C#
Sterne
2.2k
Forks
414
Ø Merge
13 Std. 1 Min.
Gemergte PRs (30 T.)
2

Beschreibung

Before submitting a bug report:

  • Make sure you are able to repro it on the latest released version
  • Perform a quick search for existing issues to check if this bug has already been reported

Steps to reproduce

  1. Open a PowerShell 5 window
  2. Type the following code with intentional syntax errors:
$code = @"
@(
  @{
    ""
  }
  ""
)
test /parameter
"@

Invoke-Formatter $code

Expected behavior

Slash should not be seperated from parameter since it isn't affected from the syntax error.

@(
    @{
        ""
    }
    ""
)
test /parameter

Actual behavior

Slash is treated as an operator and is seperated from parameter. This behavior is unique to PowerShell 5 and does not occur in v7.

@(
    @{
        ""
    }
    ""
)
test / parameter

If an unexpected error was thrown then please report the full error details using e.g. $error[0] | Select-Object *

Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.1320
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.1320
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }

1.20.0

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den PowerShell-5-Fall mit Invoke-Formatter und dem bereitgestellten Syntaxfehler-Snippet zu reproduzieren, und verfolge dann den Formatter-Pfad, der nach einem Parse-Fehler unveränderte Zeilen verarbeitet. Als abgeschlossen gilt die Aufgabe, wenn PowerShell 5 den Schrägstrich an den Parameter angehängt lässt und damit der erwarteten Ausgabe entspricht, ohne das bestehende Verhalten von PowerShell 7 zu ändern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
powershell
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.