AlignAssignmentStatement

Уровень тяжести: Предупреждение

Описание

Это правило обнаруживает несогласованные операторы присвоения в хэш-таблицах и определениях enum. Последовательные операторы назначения легче читать и поддерживать, когда их операторы присваивания выравниваются вертикально.

Это правило проверяет пары ключ-значение в хэш-таблицах и определениях членов enum, чтобы убедиться, = что знаки совпадают. Используйте это правило для обеспечения согласованного форматирования многострочных хэш-таблиц и определений enum.

Правило игнорирует присваивания в хэш-таблицах и enum, которые находятся в той же строке, что и другие присваивания. Например, правило игнорирует $h = @{ a = 1; b = 2 }.

Пример

Несоответствующий

$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
}

Конфигурация

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

Параметры

Enable

Этот параметр контролирует, проверяет ли ScriptAnalyzer код по этому правилу. Он принимает булево значение. Чтобы включить это правило, установите этот параметр на $true. Значение по умолчанию — $false.

CheckHashtable

Этот параметр управляет, проверяет ли ScriptAnalyzer выравнивание назначений в хэш-таблицах и конфигурациях Desired State Configuration (DSC). Он принимает булево значение. Чтобы отключить эту проверку, установите этот параметр на $false. Значение по умолчанию — $true.

AlignHashtableKvpWithInterveningComment

Этот параметр контролирует, включает ли ScriptAnalyzer пары ключ-значение хэш-таблицы, содержащие промежуточный комментарий при определении выравнивания. Он принимает булево значение. Чтобы исключить эти линии, установите этот параметр на $false. Значение по умолчанию — $true.

Рассмотрим следующее:

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

При отключённой этой настройке реплика с комментарием игнорируется. Знаки равенства выровнены для оставшихся строк:

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

При включённой этой настройке знаки равенства выравниваются для всех строк:

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

CheckEnum

Этот параметр управляет, проверяет ли ScriptAnalyzer выравнивание назначений в определениях членов enum. Он принимает булево значение. Чтобы отключить эту проверку, установите этот параметр на $false. Значение по умолчанию — $true.

AlignEnumMemberWithInterveningComment

Этот параметр контролирует, включает ли ScriptAnalyzer элементы enum, содержащие промежуточный комментарий при определении выравнивания. Он принимает булево значение. Чтобы исключить эти линии, установите этот параметр на $false. Значение по умолчанию — $true.

ВключитьValuelessEnumMembers

Этот параметр контролирует, включает ли ScriptAnalyzer элементы enum без явно назначенных значений при определении выравнивания. Он принимает булево значение. Чтобы исключить элементы без значения, установите этот параметр на $false. Значение по умолчанию — $true.

Рассмотрим следующее:

enum Enum {
    member = 1
    anotherMember = 2
    anotherDifferentMember
}

При отключении этой настройки третья строка, которая не имеет значения, не учитывается при выборе места выравнивания назначения.

enum Enum {
    member        = 1
    anotherMember = 2
    anotherDifferentMember
}

При включении элемент без значения включается в выравнивание так, как если бы у него было значение:

enum Enum {
    member                 = 1
    anotherMember          = 2
    anotherDifferentMember
}