PowerShell / PowerShell/PSScriptAnalyzer
PSUseConsistentIndentation not respected for pipeline chain operators.
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C#
- Star
- 2.2k
- Fork
- 414
- Merge trung bình
- 13 giờ 1 phút
- Pull request đã merge (30 ngày)
- 2
Mô tả
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
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện ví dụ với Invoke-Formatter và các cài đặt PSUseConsistentIndentation được hiển thị trong issue, đồng thời so sánh các toán tử pipeline thông thường với các toán tử chuỗi pipeline. Theo dõi đường dẫn của formatter xử lý việc tiếp tục dòng tự nhiên và xác nhận rằng đầu ra khớp với mức thụt lề bốn dấu cách như mong đợi cho các lệnh được nối chuỗi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- csharp, powershell
- Lĩnh vực
- tooling
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100