Formatting misses certain keywords (unary operators, 'until')
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 48/100
Direção de pesquisa
Comece executando o reproducer fornecido por meio do Invoke-Formatter e compare o resultado com a saída esperada. Rastreie como o formatter lida com os espaços das palavras-chave while e until e, em seguida, com operadores unários como -not e -bnot. O trabalho estará concluído quando a saída formatada separar essas palavras-chave e operadores conforme mostrado nos casos relatados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- C#
- Estrelas
- 2.2k
- Forks
- 415
- Merge médio
- 13h 1min
- PRs com merge (30d)
- 2
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de PowerShell/PSScriptAnalyzer
-
Up-for-Grabs
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 78/100
PowerShell/PSScriptAnalyzer#2213 · 2 comentários ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
PowerShell/PSScriptAnalyzer#2217 · 1 comentário ·
-
PSUseConsistentIndentation double-indents attribute bodies that open a scriptblock (`[Attr({ … })]`) Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 70/100
PowerShell/PSScriptAnalyzer#2216 · 2 comentários ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
PowerShell/PSScriptAnalyzer#2211 ·
-
`PSPlaceOpenBrace` and `PSPlaceCloseBrace` leave trailing whitespace when expanding one-line blocks Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 70/100
PowerShell/PSScriptAnalyzer#2210 ·
Todas as issues de PowerShell/PSScriptAnalyzer
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
nightscout/nocturne#1425 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
RayWangQvQ/BiliBiliToolPro#1137 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100