AlignAssignmentStatement

Úroveň závažnosti: Varování

Description

Toto pravidlo detekuje nesprávně zarovnané operátory přiřazení v hashovacích tabulkách a definicích enum. Postupné příkazy přiřazení se čtou a udržují snáze, když jsou jejich operátory přiřazení zarovnané vertikálně.

Toto pravidlo kontroluje páry klíč-hodnota v hashovacích tabulkách a definicích členů enum, aby zajistilo, že znaky = odpovídají. Použijte toto pravidlo k vynucení konzistentního formátování v víceřádkových hashtabulkách a definicích enum.

Pravidlo ignoruje přiřazení v hashovacích tabulkách a enumech, které se objevují na stejném řádku jako ostatní přiřazení. Například pravidlo ignoruje $h = @{ a = 1; b = 2 }.

Example

Nesplňující

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

enum Enum {
    member = 1
    anotherMember = 2
}

Kompatibilní

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

enum Enum {
    member        = 1
    anotherMember = 2
}

Konfigurace

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

Parametry

Enable

Tento parametr ovládá, zda ScriptAnalyzer kontroluje kód podle tohoto pravidla. Přijímá booleovskou hodnotu. Pro povolení tohoto pravidla nastavte tento parametr na .$true Výchozí hodnota je $false.

CheckHashtable

Tento parametr řídí, zda ScriptAnalyzer kontroluje zarovnání přiřazení v hashovacích tabulkách a konfiguracích Desired State Configuration (DSC). Přijímá booleovskou hodnotu. Pro vypnutí této kontroly nastavte tento parametr na $false. Výchozí hodnota je $true.

AlignHashtableKvpWithInterveningComment

Tento parametr řídí, zda ScriptAnalyzer zahrnuje hashovací páry klíč-hodnota obsahující intervenující komentář při určování zarovnání. Přijímá booleovskou hodnotu. Pro vyloučení těchto přímek nastavte tento parametr na .$false Výchozí hodnota je $true.

Vezměte v úvahu následující skutečnosti:

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

Při tomto nastavení vypnutém se řádek s komentářem ignoruje. Rovné znaménka jsou zarovnána pro zbývající řádky:

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

Při zapnutí tohoto nastavení jsou rovné znaménka zarovnána pro všechny řádky:

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

CheckEnum

Tento parametr ovládá, zda ScriptAnalyzer kontroluje zarovnání přiřazení v definicích členů enum. Přijímá booleovskou hodnotu. Pro vypnutí této kontroly nastavte tento parametr na $false. Výchozí hodnota je $true.

SjednoťEnumMemberSIntervenujícíMKomentářem

Tento parametr řídí, zda ScriptAnalyzer zahrnuje členy enum, které obsahují intervenující komentář při určování zarovnání. Přijímá booleovskou hodnotu. Pro vyloučení těchto přímek nastavte tento parametr na .$false Výchozí hodnota je $true.

IncludeValuelessEnumMembers

Tento parametr řídí, zda ScriptAnalyzer zahrnuje členy enum bez explicitně přiřazených hodnot při určování zarovnání. Přijímá booleovskou hodnotu. Pro vyloučení bezhodnotných prvků nastavte tento parametr na .$false Výchozí hodnota je $true.

Vezměte v úvahu následující skutečnosti:

enum Enum {
    member = 1
    anotherMember = 2
    anotherDifferentMember
}

Při deaktivaci tohoto nastavení se třetí řádek, který nemá hodnotu, nebere v úvahu při volbě místa pro zarovnání přiřazení.

enum Enum {
    member        = 1
    anotherMember = 2
    anotherDifferentMember
}

S tímto zapnutým je bezhodnotný člen zahrnut do zarovnání, jako by měl hodnotu:

enum Enum {
    member                 = 1
    anotherMember          = 2
    anotherDifferentMember
}