Formatting misses certain keywords (unary operators, 'until')
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 48/100
Rechercherichtung
Beginne damit, den bereitgestellten Reproducer durch Invoke-Formatter laufen zu lassen und das Ergebnis mit der erwarteten Ausgabe zu vergleichen. Verfolge die Behandlung der Schlüsselwortabstände durch den Formatter für while und until und anschließend für unäre Operatoren wie -not und -bnot. Als abgeschlossen gilt die Arbeit, wenn die formatierte Ausgabe diese Schlüsselwörter und Operatoren wie in den gemeldeten Fällen voneinander trennt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I found that during formatting, some keywords aren't separated from leading braces (while), and some are seemingly ignored entirely (until). Also, unary operators (-not, -bnot, etc.) aren't separated with whitespace the same way as binary operators (-eq, -like, etc.).
Steps to reproduce
- Paste the following into a script
- Use Invoke-Formatter or the PowerShell VSCode extension to format the document
if(-not$false) {
do{
"Hello!"
}until(
$True
)
do{
"Oh, hi!"
}while(
-not$True
)
while(-not$True) {
"This won't show up."
}
}
Expected behavior
Roughly the following output. Some is dependent on brace style (OTBS in this case), but all rules for inserting whitespace around keywords and operators should be enabled.
if (-not $false) {
do {
'Hello!'
} until (
$True
)
do {
'Oh, hi!'
} while (
-not $True
)
while (-not $True) {
"This won't show up."
}
}
Actual behavior
if (-not$false) { # -not isn't separated by whitespace
do {
'Hello!'
}until( # no whitespace around Until
$True
)
do {
'Oh, hi!'
}while ( # only trailing whitespace for While
-not$True # no separation
)
while (-not$True) { # no separation for -not and -bnot
"This won't show up."
}
}
Environment data
> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.5737
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.5737
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.23.0
1.23.0 is the version included with the current (2025.0.0) VSCode PowerShell extension. I've also installed and tested 1.24.0 with the same results.
- Vorherrschende Sprache
- C#
- Sterne
- 2.2k
- Forks
- 415
- Ø Merge
- 13 Std. 1 Min.
- Gemergte PRs (30 T.)
- 2
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/PSScriptAnalyzer
-
Up-for-Grabs
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 78/100
PowerShell/PSScriptAnalyzer#2213 · 2 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
PowerShell/PSScriptAnalyzer#2217 · 1 Kommentar ·
-
PSUseConsistentIndentation double-indents attribute bodies that open a scriptblock (`[Attr({ … })]`) Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 70/100
PowerShell/PSScriptAnalyzer#2216 · 2 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
PowerShell/PSScriptAnalyzer#2211 ·
-
`PSPlaceOpenBrace` and `PSPlaceCloseBrace` leave trailing whitespace when expanding one-line blocks Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 70/100
PowerShell/PSScriptAnalyzer#2210 ·
Alle Issues in PowerShell/PSScriptAnalyzer
Ähnliche Issues
-
bug frontend good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
NavigationViewItemAutomationPeer implements IInvokeProvider but never advertises the Invoke pattern Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
unoplatform/uno#24629 ·
-
agentic-workflows Needs: Triage :mag: State: In-PR
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
-
Type: enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
apache/arrow-adbc#4809 ·