AlignAssignmentStatement

Nivel de gravedad: Advertencia

Descripción

Esta regla detecta operadores de asignación desalineados en tablas hash y definiciones de enum. Las sentencias de asignación consecutivas son más fáciles de leer y mantener cuando sus operadores de asignación se alinean verticalmente.

Esta regla comprueba los pares clave-valor en tablas hash y definiciones de miembros enum para asegurar que los = signos coincidan. Utiliza esta regla para imponer un formato consistente en tablas hash multilínea y definiciones de enum.

La regla ignora las asignaciones dentro de tablas hash y enums que aparecen en la misma línea que otras asignaciones. Por ejemplo, la regla ignora $h = @{ a = 1; b = 2 }.

Example

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

Configuración

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

Parámetros

Enable

Este parámetro controla si ScriptAnalyzer comprueba el código con esta regla. Acepta un valor booleano. Para habilitar esta regla, establece este parámetro en $true. El valor por defecto es $false.

CheckHashtable

Este parámetro controla si ScriptAnalyzer comprueba la alineación de asignación en tablas hash y configuraciones de Desired State Configuration (DSC). Acepta un valor booleano. Para desactivar esta comprobación, establece este parámetro en $false. El valor por defecto es $true.

AlignHashtableKvpWithInterinteringComment

Este parámetro controla si ScriptAnalyzer incluye pares clave-valor de tabla hashtable que contienen un comentario intermedio al determinar el alineamiento. Acepta un valor booleano. Para excluir estas líneas, fije este parámetro en $false. El valor por defecto es $true.

Ten en cuenta lo siguiente:

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

Con esta configuración desactivada, se ignora la línea con el comentario. Los signos iguales están alineados para las líneas restantes:

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

Con esta opción activada, los signos iguales se alinean para todas las líneas:

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

CheckEnum

Este parámetro controla si ScriptAnalyzer comprueba la alineación de asignación en las definiciones de miembros de enum. Acepta un valor booleano. Para desactivar esta comprobación, establece este parámetro en $false. El valor por defecto es $true.

AlinearEnumMiemConInterveningCommentario

Este parámetro controla si ScriptAnalyzer incluye elementos de enum que contienen un comentario intermedio al determinar la alineación. Acepta un valor booleano. Para excluir estas líneas, fije este parámetro en $false. El valor por defecto es $true.

IncluyeMiembrosInValueLessEnum

Este parámetro controla si ScriptAnalyzer incluye miembros de enum sin valores explícitamente asignados al determinar la alineación. Acepta un valor booleano. Para excluir miembros sin valor, establece este parámetro en $false. El valor por defecto es $true.

Ten en cuenta lo siguiente:

enum Enum {
    member = 1
    anotherMember = 2
    anotherDifferentMember
}

Con esta configuración desactivada, la tercera línea, que no tiene valor, no se tiene en cuenta al elegir dónde alinear las asignaciones.

enum Enum {
    member        = 1
    anotherMember = 2
    anotherDifferentMember
}

Con ella activada, el miembro sin valor se incluye en la alineación como si tuviera un valor:

enum Enum {
    member                 = 1
    anotherMember          = 2
    anotherDifferentMember
}