Compartilhar via


AlignAssignmentStatement

Nível de Gravidade: Aviso

Descrição

Instruções consecutivas de atribuição são mais legíveis quando alinhadas. As atribuições são consideradas alinhadas quando seus equals sinais se alinham verticalmente.

Essa regra analisa os pares-chave-valor em tabelas hash (incluindo configurações DSC), bem como definições de enum.

Considere o exemplo a seguir com uma hashtable e um enum que não estão alinhados.

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

enum Enum {
    member = 1
    anotherMember = 2
}

O alinhamento, nesse caso, seria o seguinte.

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

enum Enum {
    member        = 1
    anotherMember = 2
}

A regra ignora quaisquer atribuições dentro de hashtables e enums que estejam na mesma linha que outras. Por exemplo, a regra ignora $h = @{a = 1; b = 2}.

Configuração

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

Parâmetros

Habilitar: bool (o valor padrão é $false)

Habilite ou desabilite a regra durante a invocação de ScriptAnalyzer.

CheckHashtable: bool (Valor padrão é $true)

Impor alinhamento das instruções de atribuição em uma tabela de hash e em uma configuração DSC. Há apenas uma configuração para configuração de tabela hash e DSC porque os pares de valor de propriedade em uma configuração DSC são analisados como pares-chave-valor de uma tabela hash.

AlignHashtableKvpWithInterveningComment: bool (Valor padrão é $true)

Inclua pares-chave-valor no alinhamento que tenham um comentário intermediário – ou seja, um comentário entre o nome da chave e o sinal de igual.

Considere o seguinte:

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

Com essa configuração desativada, a linha com o comentário é ignorada, e ela ficaria alinhada assim:

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

Com ele ativado, a linha de comentário é incluída no alinhamento:

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

CheckEnum: bool (Valor padrão é $true)

Impor o alinhamento das instruções de atribuição de uma definição de Enum.

AlignEnumMemberWithInterveningComment: bool (Valor padrão é $true)

Inclua membros enum no alinhamento que tenham um comentário intermediário – ou seja, um comentário entre o nome do membro e o sinal de igual.

Considere o seguinte:

enum Enum {
    member = 1
    anotherMember <#A Comment#> = 2
    anotherDifferentMember = 3
}

Com essa configuração desativada, a linha com o comentário é ignorada, e ela ficaria alinhada assim:

enum Enum {
    member                 = 1
    anotherMember <#A Comment#> = 2
    anotherDifferentMember = 3
}

Com ele ativado, a linha de comentário é incluída no alinhamento:

enum Enum {
    member                      = 1
    anotherMember <#A Comment#> = 2
    anotherDifferentMember      = 3
}

IncludeValuelessEnumMembers: bool (Valor padrão é $true)

Inclua membros enum no alinhamento que não tenham um valor explicitamente atribuído. Os enum não precisam receber um valor quando são definidos.

Considere o seguinte:

enum Enum {
    member = 1
    anotherMember = 2
    anotherDifferentMember
}

Com essa configuração desativada, a terceira linha, que não tem valor, não é considerada ao escolher onde alinhar as atribuições. Ele seria alinhado assim:

enum Enum {
    member        = 1
    anotherMember = 2
    anotherDifferentMember
}

Com ele ativado, o membro sem valor é incluído no alinhamento como se tivesse um valor:

enum Enum {
    member                 = 1
    anotherMember          = 2
    anotherDifferentMember
}