محاذاة حالة التعيين

مستوى الشدة: تحذير

الوصف

تكتشف هذه القاعدة عوامل التعيين غير المحذفة في جداول التجزئة وتعريفات العدد. تكون عبارات التعيين المتتالية أسهل في القراءة والصيانة عندما تتوافق عوامل التعيين عموديا.

تتحقق هذه القاعدة من أزواج المفاتيح والقيم في تعريفات جداول التجزئة وأعضاء العدد لضمان توافق العلامات = . استخدم هذه القاعدة لفرض تنسيق متسق في جداول التجزئة متعددة الأسطر وتعريفات enum.

تتجاهل القاعدة التعيينات داخل جداول التجزئة والعدسات التي تظهر على نفس السطر مع التعيينات الأخرى. على سبيل المثال، تتجاهل $h = @{ a = 1; b = 2 }القاعدة .

مثال

غير متوافق

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

البارامترات

تمكين

يتحكم هذا المعامل في ما إذا كان 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'
}

تشيكنوم

يتحكم هذا المعامل فيما إذا كان ScriptAnalyzer يتحقق من محاذاة التعيين في تعريفات أعضاء enum. يقبل قيمة بوليانية. لتعطيل هذا الفحص، قم بتعيين هذا المعامل على $false. القيمة الافتراضية هي $true.

AlignEnumMemberWithInterveningComment

يتحكم هذا المعامل فيما إذا كان ScriptAnalyzer يتضمن أعضاء enum تحتوي على تعليق وسيط عند تحديد المحاذاة. يقبل قيمة بوليانية. لاستبعاد هذه الخطوط، قم بتعيين هذا المعامل إلى $false. القيمة الافتراضية هي $true.

IncludeValuelessEnum

يتحكم هذا المعامل فيما إذا كان 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
}