AlignAssignmentStatement

重症度レベル:警告

説明

このルールは、ハッシュテーブルや列挙定義における割り当て演算子のずれを検出します。 連続する割り当て文は、割り当て演算子が垂直に揃うと読みやすく、管理しやすくなります。

このルールはハッシュテーブル内のキーと値のペアをチェックし、列挙メンバーの定義を確認し、 = 符号が一致するかを確認します。 このルールを使って、多行ハッシュテーブルや列挙定義で一貫した書式を強制します。

このルールは、ハッシュテーブルや列挙内の割り当ては他の割り当てと同じ行に表示されるものを無視します。 例えば、このルールは $h = @{ a = 1; b = 2 }を無視しています。

Example

非準拠

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

enum Enum {
    member = 1
    anotherMember = 2
}

対応

$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 です。

チェックハッシュテーブル

このパラメータは、ScriptAnalyzerがハッシュテーブルやDesired State Configuration(DSC)構成の割り当てアラインメントをチェックするかどうかを制御します。 ブール値も受け入れます。 このチェックを無効にするには、このパラメータを $falseに設定してください。 既定値は $true です。

AlignHashtableKvpWithInterveningComment

このパラメータは、アラインメントを決定する際に中間のコメントを含むハッシュテーブルのキー・値ペアを含めるかどうかを制御します。 ブール値も受け入れます。 これらの線を除外するには、このパラメータを $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'
}

チェックエナム

このパラメータは、ScriptAnalyzerが列挙メンバー定義における割り当てアラインメントをチェックするかどうかを制御します。 ブール値も受け入れます。 このチェックを無効にするには、このパラメータを $falseに設定してください。 既定値は $true です。

AlignEnumMemberWithInterveningComment

このパラメータは、アラインメントを決定する際に中間のコメントを含む列挙メンバーをScriptAnalyzerに含めるかどうかを制御します。 ブール値も受け入れます。 これらの線を除外するには、このパラメータを $falseに設定します。 既定値は $true です。

IncludeValuelessEnumMembers(価値のない列挙メンバー)

このパラメータは、アラインメントを決定する際に明示的に値が割り当てられずにScriptAnalyzerが列挙メンバーを含めるかどうかを制御します。 ブール値も受け入れます。 価値のないメンバーを除外するには、このパラメータを $falseに設定します。 既定値は $true です。

次の点を考慮してください。

enum Enum {
    member = 1
    anotherMember = 2
    anotherDifferentMember
}

この設定を無効にすると、値のない3行目は割り当ての位置を決める際に考慮されません。

enum Enum {
    member        = 1
    anotherMember = 2
    anotherDifferentMember
}

有効になると、価値のないメンバーは値があるかのようにアラインメントに含まれます:

enum Enum {
    member                 = 1
    anotherMember          = 2
    anotherDifferentMember
}