AlignAssignmentStatement

Poziom nasilenia: Ostrzeżenie

Opis

Ta reguła wykrywa niedopasowane operatory przypisania w tablicach haszujących i definicjach enum. Kolejne instrukcje przypisania są łatwiejsze do odczytania i utrzymania, gdy operatory przypisania są ustawione pionowo.

Ta reguła sprawdza pary klucz-wartość w hashtables oraz definicjach członków enum, aby upewnić się, że znaki = się zgadzają. Użyj tej reguły, aby wymusić spójne formatowanie w wieloliniowych tablicach hashujących i definicjach enum.

Reguła ignoruje przypisania w tablicach haszujących i enumach, które pojawiają się w tej samej linii co inne przypisania. Na przykład reguła ignoruje $h = @{ a = 1; b = 2 }.

Przykład

Niezgodne

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

enum Enum {
    member = 1
    anotherMember = 2
}

Zgodne

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

enum Enum {
    member        = 1
    anotherMember = 2
}

Konfiguracja

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

Parametry

Enable

Ten parametr decyduje, czy ScriptAnalyzer sprawdza kod względem tej reguły. Akceptuje wartość boolowską. Aby włączyć tę regułę, ustaw ten parametr na .$true Wartość domyślna to $false.

CheckHashtable

Ten parametr kontroluje, czy ScriptAnalyzer sprawdza wyrównanie przypisania w konfiguracjach hash table oraz Desired State Configuration (DSC). Akceptuje wartość boolowską. Aby wyłączyć tę kontrolę, ustaw ten parametr na $false. Wartość domyślna to $true.

AlignHashtableKvpWithInterveningComment

Ten parametr decyduje, czy ScriptAnalyzer zawiera kombinacje klucz-wartość w tablicy haszującej, które zawierają komentarz pośredni podczas określania wyrównania. Akceptuje wartość boolowską. Aby wykluczyć te linie, ustaw ten parametr na .$false Wartość domyślna to $true.

Rozważ następujące kwestie:

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

Po wyłączeniu tego ustawienia linijka z komentarzem jest ignorowana. Znaki równości są wyrównane dla pozostałych linii:

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

Przy tym ustawieniu znaki równości są wyrównane dla wszystkich linii:

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

CheckEnum

Ten parametr kontroluje, czy ScriptAnalyzer sprawdza wyrównanie przypisania w definicjach członków enum. Akceptuje wartość boolowską. Aby wyłączyć tę kontrolę, ustaw ten parametr na $false. Wartość domyślna to $true.

Zrównaj EnumMemberZKomentarzemInterwencją

Ten parametr decyduje, czy ScriptAnalyzer uwzględnia członków enum zawierających komentarz pośredni podczas określania wyrównania. Akceptuje wartość boolowską. Aby wykluczyć te linie, ustaw ten parametr na .$false Wartość domyślna to $true.

IncludeValuelessEnumMembers

Ten parametr kontroluje, czy ScriptAnalyzer uwzględnia członki enum bez wyraźnego przypisania wartości podczas określania wyrównania. Akceptuje wartość boolowską. Aby wykluczyć elementy bezwartościowe, ustaw ten parametr na .$false Wartość domyślna to $true.

Rozważ następujące kwestie:

enum Enum {
    member = 1
    anotherMember = 2
    anotherDifferentMember
}

Po wyłączeniu tego ustawienia trzecia linia, która nie ma wartości, nie jest brana pod uwagę przy wyborze miejsca wyrównania przypisań.

enum Enum {
    member        = 1
    anotherMember = 2
    anotherDifferentMember
}

Po jego włączeniu, bezwartościowy członek jest uwzględniany w wyrównaniu, jakby miał wartość:

enum Enum {
    member                 = 1
    anotherMember          = 2
    anotherDifferentMember
}