PowerShell / PowerShell/PSScriptAnalyzer
PSUseConsistentWhitespace - False validation in switch statements
未关闭
还没有人认领这个 Issue。
Area - Formatter
Issue - Bug
- 主要语言
- C#
- 星标
- 2.2k
- 派生
- 414
- 平均合并
- 13 小时 1 分钟
- 30 天内合并 PR
- 2
描述
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
- Create script with following contents:
$TargetLogSize = 64
switch ($TargetLogSize) {
{ $_ -le 64 } { 64 }
{ $_ -ge 64 -and $_ -lt 256 } { 256 }
{ $_ -ge 256 -and $_ -lt 1024 } { 512 }
{ $_ -ge 1024 -and $_ -lt 4096 } { 1024 }
{ $_ -ge 4096 -and $_ -lt 8192 } { 2048 }
{ $_ -ge 8192 -and $_ -lt 16384 } { 4096 }
{ $_ -ge 16384 } { 8192 }
}
- Execute following settings:
$settings = @{
IncludeRules = @(
'PSUseConsistentWhitespace',
)
Rules = @{
PSUseConsistentWhitespace = @{
Enable = $true
CheckInnerBrace = $true
CheckOpenBrace = $true
CheckOpenParen = $true
CheckOperator = $false
CheckPipe = $true
CheckSeparator = $true
}
}
}
Invoke-ScriptAnalyzer -Path C:\temp\test.script.ps1 -Severity Warning -Settings $settings
Expected behavior
No warnings to be returned
Actual behavior
Receive warnings on space before an open brace.
RuleName Severity ScriptName Line Message
-------- -------- ---------- ---- -------
PSUseConsistentWhitespace Warning test.scrip 4 Use space before open brace.
t.ps1
PSUseConsistentWhitespace Warning test.scrip 5 Use space before open brace.
t.ps1
PSUseConsistentWhitespace Warning test.scrip 6 Use space before open brace.
t.ps1
PSUseConsistentWhitespace Warning test.scrip 7 Use space before open brace.
t.ps1
PSUseConsistentWhitespace Warning test.scrip 8 Use space before open brace.
t.ps1
PSUseConsistentWhitespace Warning test.scrip 9 Use space before open brace.
t.ps1
PSUseConsistentWhitespace Warning test.scrip 10 Use space before open brace.
t.ps1
Environment data
> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.18362.145
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.18362.145
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.18.1
1.18.0
1.17.1
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先,使用 PSUseConsistentWhitespace 规则和提供的设置复现 switch 语句示例。跟踪该规则对 switch 子句的空白验证,然后确认之前报告的错误警告不再出现,同时真正的间距警告仍可被检测到。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- csharp, powershell
- 领域
- tooling
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100