When a line ends in an operator, automatically indent the next line since it is part of the same code statement
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- powershell
- Área
- tooling
Línea de trabajo
Comienza rastreando el comportamiento existente de indentación de la pipe | en el formateador de PSScriptAnalyzer y cómo se clasifican los operadores de continuación de línea. Extiende las mismas reglas a operadores como =, + y -, y después verifica la salida formateada con los ejemplos y el comportamiento existente de la pipe.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary of the new feature
As a user, when a line ends in a line continuation operator (=, +, -, etc.), I would like the next line to be indented so that it is clear both lines are part of the same statement, and that the 2nd line is not the start of a new code statement. This behaviour is already implemented for the pipe | operator, and it would be great if the other operators followed the same rules. This behaviour would also match the default behaviour of other languages, such as C# in Visual Studio. In VS Code, this behaviour is controlled for the pipe operator with the powershell.codeFormatting.pipelineIndentationStyle setting.
For example, when using the VS Code setting powershell.codeFormatting.pipelineIndentationStyle = IncreaseIndentationForFirstPipeline, the code is currently formatted like this:
$result =
Get-Process |
Select-Object -First 1
I would prefer = to follow the same rules as | and have the code formatted like this:
$result =
Get-Process |
Select-Object -First 1
In this small example it may look silly to not just do:
$result = Get-Process |
Select-Object -First 1
However, sometimes with fully qualified namespaces and descriptive variable names, the left-side of the equal operator may get very lengthy, such as:
[System.Collections.ArrayList] $listOfCustomersWithValidDriversLicenses = Get-CustomersFromCmdletWithAVeryLongName -Country Canada -AreaCode 123
This would look much better and prevent horizontal scrolling as:
[System.Collections.ArrayList] $listOfCustomersWithValidDriversLicenses =
Get-CustomersFromCmdletWithAVeryLongName -Country Canada -AreaCode 123
Currently, VS Code formats the code like this:
[System.Collections.ArrayList] $listOfCustomersWithValidDriversLicenses =
Get-CustomersFromCmdletWithAVeryLongName -Country Canada -AreaCode 123
The current formatting makes it easy to overlook that the results returned from Get-CustomersFromCmdletWithAVeryLongName are being saved in a variable.
The example above is for the = operator, but I think it would make sense to do the same thing for +, -, and any other line continuation operators (i.e. that don't require a backtick ` to have the statement continue onto the next line).
Aside: I originally posted this issue in the vscode-powershell repo here, but I think this is the proper place for this feature request.
What is the latest version of PSScriptAnalyzer at the point of writing
The latest stable version of PSScriptAnalyzer is currently v1.22.0.
- Lenguaje dominante
- C#
- Estrellas
- 2.2k
- Forks
- 415
- Merge medio
- 13 h 1 min
- PR fusionados (30 d)
- 2
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de PowerShell/PSScriptAnalyzer
-
Up-for-Grabs
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
PowerShell/PSScriptAnalyzer#2213 · 2 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
PowerShell/PSScriptAnalyzer#2217 · 1 comentario ·
-
PSUseConsistentIndentation double-indents attribute bodies that open a scriptblock (`[Attr({ … })]`) Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
PowerShell/PSScriptAnalyzer#2216 · 2 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
PowerShell/PSScriptAnalyzer#2211 ·
-
`PSPlaceOpenBrace` and `PSPlaceCloseBrace` leave trailing whitespace when expanding one-line blocks Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
PowerShell/PSScriptAnalyzer#2210 ·
Todos los issues de PowerShell/PSScriptAnalyzer
Issues similares
-
Status: Waiting triage Type: Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
nanoframework/Home#1857 ·
-
kind/bug kind/regression
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
unoplatform/uno.toolkit.ui#1646 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
nightscout/nocturne#1379 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
elastic/esql-dotnet#47 ·
-
port: add go-steam fork Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100