PowerShell / PowerShell/PSScriptAnalyzer
PSUseConsistentIndentation not respected for pipeline chain operators.
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- C#
- Estrelas
- 2.2k
- Forks
- 414
- Merge médio
- 13h 1min
- PRs com merge (30d)
- 2
Descrição
When using natural line continuation with IncreaseIndentationForFirstPipeline (or IncreaseIndentationAfterEveryPipeline) enabled and pipeline chain operators, it does not format as expected like with regular pipeline operators.
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
$scriptDefinition = @'
Get-Item "C:\someItem" &&
Get-Item "C:\someItem" &&
Get-Item "C:\someItem"
'@
$settings = @{
IncludeRules = @("PSUseConsistentIndentation")
Rules = @{
PSUseConsistentIndentation = @{
Enable = $true
IndentationSize = 4
PipelineIndentation = 'IncreaseIndentationForFirstPipeline'
Kind = 'space'
}
}
}
Invoke-Formatter -ScriptDefinition $scriptDefinition -Settings $settings
Get-Item "C:\someItem" &&
Get-Item "C:\someItem" &&
Get-Item "C:\someItem"
Expected behavior
$scriptDefinition = @'
Get-Item "C:\someItem" &&
Get-Item "C:\someItem" &&
Get-Item "C:\someItem"
'@
$settings = @{
IncludeRules = @("PSUseConsistentIndentation")
Rules = @{
PSUseConsistentIndentation = @{
Enable = $true
IndentationSize = 4
PipelineIndentation = 'IncreaseIndentationForFirstPipeline'
Kind = 'space'
}
}
}
Invoke-Formatter -ScriptDefinition $scriptDefinition -Settings $settings
Get-Item "C:\someItem" &&
Get-Item "C:\someItem" &&
Get-Item "C:\someItem"
Actual behavior
$scriptDefinition = @'
Get-Item "C:\someItem" &&
Get-Item "C:\someItem" &&
Get-Item "C:\someItem"
'@
$settings = @{
IncludeRules = @("PSUseConsistentIndentation")
Rules = @{
PSUseConsistentIndentation = @{
Enable = $true
IndentationSize = 4
PipelineIndentation = 'IncreaseIndentationForFirstPipeline'
Kind = 'space'
}
}
}
Invoke-Formatter -ScriptDefinition $scriptDefinition -Settings $settings
Get-Item "C:\someItem" &&
Get-Item "C:\someItem" &&
Get-Item "C:\someItem"
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 7.4.11
PSEdition Core
GitCommitId 7.4.11
OS Microsoft Windows 10.0.19045
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.24.0
1.22.0
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.
Direção de pesquisa
Comece reproduzindo o exemplo com Invoke-Formatter e as configurações de PSUseConsistentIndentation mostradas na issue, comparando operadores de pipeline regulares com operadores de encadeamento de pipeline. Rastreie o caminho do formatter que trata a continuação natural de linha e confirme que a saída corresponde à indentação esperada de quatro espaços para os comandos encadeados.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- csharp, powershell
- Domínio
- tooling
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 48/100