PowerShell / PowerShell/PSScriptAnalyzer

PSUseConsistentWhitespace - False validation in switch statements

Ouverte
#1,319 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Area - Formatter Issue - Bug
Langage dominant
C#
Étoiles
2.2k
Forks
415
Merge moyen
13 h 1 min
PR mergées (30 j)
2

Description

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

  1. 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 }
}
  1. 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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire l’exemple d’instruction switch avec la règle PSUseConsistentWhitespace et les paramètres fournis. Suivez ensuite la validation des espaces blancs de cette règle pour les clauses switch, puis vérifiez que les fausses alertes signalées n’apparaissent plus, tandis que les véritables alertes d’espacement restent détectables.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp, powershell
Domaine
tooling
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.