AlignAssignmentStatement

Niveau de gravité : Avertissement

Description

Cette règle détecte les opérateurs d’affectation désalignés dans les tables de hachage et les définitions enum. Les instructions d’attribution consécutives sont plus faciles à lire et à maintenir lorsque leurs opérateurs d’affectation s’alignent verticalement.

Cette règle vérifie les paires clé-valeur dans les tables de hachage et les définitions des membres enum pour s’assurer que les = signes sont alignés. Utilisez cette règle pour imposer une mise en forme cohérente dans les tables de hachage multilignes et les définitions enum.

La règle ignore les affectations au sein des tables de hachage et enums qui apparaissent sur la même ligne que d’autres attributions. Par exemple, la règle ignore $h = @{ a = 1; b = 2 }.

Example

Non conforme

$hashtable = @{
    property = 'value'
    anotherProperty = 'another value'
}

enum Enum {
    member = 1
    anotherMember = 2
}

Compliant

$hashtable = @{
    property        = 'value'
    anotherProperty = 'another value'
}

enum Enum {
    member        = 1
    anotherMember = 2
}

Paramétrage

Rules = @{
    PSAlignAssignmentStatement = @{
        Enable                                  = $true
        CheckHashtable                          = $true
        AlignHashtableKvpWithInterveningComment = $true
        CheckEnum                               = $true
        AlignEnumMemberWithInterveningComment   = $true
        IncludeValuelessEnumMembers             = $true
    }
}

Paramètres

Activer

Ce paramètre détermine si ScriptAnalyzer vérifie le code par rapport à cette règle. Il accepte une valeur booléenne. Pour permettre cette règle, fixez ce paramètre à $true. La valeur par défaut est $false.

CheckHashtable

Ce paramètre contrôle si ScriptAnalyzer vérifie l’alignement d’affectation dans les tables de hachage et les configurations Desired State Configuration (DSC). Il accepte une valeur booléenne. Pour désactiver cette vérification, définissez ce paramètre à $false. La valeur par défaut est $true.

AlignHashtableKvpAvecInterveningComment

Ce paramètre détermine si ScriptAnalyzer inclut des paires clé-valeur hashtable contenant un commentaire intermédiaire lors de la détermination de l’alignement. Il accepte une valeur booléenne. Pour exclure ces droites, on fixe ce paramètre à $false. La valeur par défaut est $true.

Tenez compte des éléments suivants :

$hashtable = @{
    property = 'value'
    anotherProperty <#A Comment#> = 'another value'
    anotherDifferentProperty = 'yet another value'
}

Avec ce réglage désactivé, la ligne avec le commentaire est ignorée. Les signes égals sont alignés pour les lignes restantes :

$hashtable = @{
    property                 = 'value'
    anotherProperty <#A Comment#> = 'another value'
    anotherDifferentProperty = 'yet another value'
}

Avec ce réglage activé, les signes égals sont alignés pour toutes les lignes :

$hashtable = @{
    property                      = 'value'
    anotherProperty <#A Comment#> = 'another value'
    anotherDifferentProperty      = 'yet another value'
}

CheckEnum

Ce paramètre contrôle si ScriptAnalyzer vérifie l’alignement des affectations dans les définitions des membres enum. Il accepte une valeur booléenne. Pour désactiver cette vérification, définissez ce paramètre à $false. La valeur par défaut est $true.

AlignerMembreEnumAvecCommentaireIntermédiaire

Ce paramètre détermine si ScriptAnalyzer inclut des membres d’enum contenant un commentaire intermédiaire lors de la détermination de l’alignement. Il accepte une valeur booléenne. Pour exclure ces droites, on fixe ce paramètre à $false. La valeur par défaut est $true.

InclureValuInÉMembres

Ce paramètre contrôle si ScriptAnalyzer inclut des membres d’enum sans valeurs explicitement attribuées lors de la détermination de l’alignement. Il accepte une valeur booléenne. Pour exclure les membres sans valeur, fixez ce paramètre à $false. La valeur par défaut est $true.

Tenez compte des éléments suivants :

enum Enum {
    member = 1
    anotherMember = 2
    anotherDifferentMember
}

Avec ce paramètre désactivé, la troisième ligne, qui n’a aucune valeur, n’est pas prise en compte lors du choix de l’alignement des attributions.

enum Enum {
    member        = 1
    anotherMember = 2
    anotherDifferentMember
}

Avec cette option activée, le membre sans valeur est inclus dans l’alignement comme s’il avait une valeur :

enum Enum {
    member                 = 1
    anotherMember          = 2
    anotherDifferentMember
}