PowerShell / PowerShell/PSScriptAnalyzer

PSPlaceCloseBrace can't handle empty lines

Abierto
#1,616 2 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Area - Formatter Issue - Bug
Lenguaje dominante
C#
Estrellas
2.2k
Forks
414
Merge medio
13 h 1 min
PR fusionados (30 d)
2

Descripción

Basically, it gets fixed if I have:

}
else {

But it doesn't get fixed if I have:

}

else {

And I would really like it to be able to handle:

}
# An explanation of the next code block
else {

And format it like:

} else {
    # An explanation of the next code block

Steps to reproduce

Invoke-Formatter {
if (Test-Path ReadMe.md) {
    Show-Markdown ReadMe.md
}

elseif (Test-Path ReadMe*) {
    Get-Item ReadMe* | Select-Object -First 1 | Get-Content
} 
} -Settings @{
  Rules = @{
    PSPlaceCloseBrace = @{
      Enable = $true
      NoEmptylineBefore = $true
      NewLineAfter = $false
    }
  }
}

Expected behavior

It should output

if (Test-Path ReadMe.md) {
    Show-Markdown ReadMe.md
} elseif (Test-Path ReadMe*) {
    Get-Item ReadMe* | Select-Object -First 1 | Get-Content
} 

Actual behavior

if (Test-Path ReadMe.md) {
    Show-Markdown ReadMe.md
}

elseif (Test-Path ReadMe*) {
    Get-Item ReadMe* | Select-Object -First 1 | Get-Content
} 

Environment data

> $PSVersionTable
$PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.1.0
PSEdition                      Core
GitCommitId                    7.1.0
OS                             Microsoft Windows 10.0.19041
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

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

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Reproduce el comportamiento con Invoke-Formatter y la configuración de PSPlaceCloseBrace mostrada en el issue, comparando los casos de líneas en blanco y comentarios. Rastrea la ruta del formateador de PSScriptAnalyzer para esta regla; se considera terminado cuando una línea en blanco o un comentario intermedio ya no impide que la llave de cierre y else se unan como se espera.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp, powershell
Área
tooling
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.