آسف إذا تم الرد على هذا من قبل أو تم شرحه في مكان ما ، لكن لم أتمكن من العثور عليه.
أولا اسمحوا لي أن أبدأ بمثال. في الكود الخاص بي ، لدي الكثير من الكائنات التي تحتوي على إعدادات للوظائف. مع الخيار brace_style: collapse
، أتوقع:
function someFunc(settings) {
return settings.set;
}
someFunc( { set: 'string' } );
ولكن ربما إذا كانت كبيرة بما يكفي (مثل 3 خصائص أو أكثر؟ ربما يمكن أن يكون هذا مكانًا؟):
someFunc( {
set: 'string',
set2: 'string2',
set3: 'string3'
} );
إلا أنه يفعل هذا بدلاً من ذلك:
someFunc( {
set: 'string'
} );
عند استخدام الكثير من هذه العناصر ، قد يكون من الصعب جدًا قراءتها. أود "الانهيار" ليعني أن الكود الصغير المتعرج (العبارات ، والكائنات ، والوظائف المجهولة ، وما إلى ذلك) ستبقى جميعها في سطر واحد.
كما أنني لا أرى فرقًا بين "الانهيار" و "توسيع النهاية". بقدر ما أستطيع أن أقول ، فإنهم يفعلون نفس الشيء.
يبدو الجزء الأول مثل # 338.
يتحكم خيار "الانهيار" فقط في ما إذا كان قوس الفتح المتعرج على نفس الخط مثل الأشياء التي تأتي قبله ، أو على السطر الخاص به - فهو لا يتعامل مع الأشياء التي تأتي بعد ذلك (داخل الأقواس المتعرجة).
يتمثل الاختلاف بين "الانهيار" و "توسيع النهاية" في كيفية معالجة قوس النهاية المتعرج في حالات معينة. علي سبيل المثال:
يؤدي "الانهيار" إلى القيام بذلك ، عن طريق وضع قوس الإغلاق لـ if
على نفس السطر مثل الكلمة الرئيسية else
:
if (someCondition) {
doSomething();
} else {
doSomethingElse();
}
في حين أن "end-expand" ستفعل ذلك ، بوضع قوس الإغلاق لـ if
على السطر الخاص بها:
if (someCondition) {
doSomething();
} // closing curly brace is put on its own line
else {
doSomethingElse();
}
ح
شكرًا @ c32hedge ، يبدو أن هذا طلب شائع إلى حد ما قيد التنفيذ! # 315
شرح رائع ، فهمت الآن. كنت أفكر في أن الأمر يتعلق بما كان في المشابك ، وليس بما يحدث حوله. أتساءل عما إذا كان من الممكن تحديث الوثائق لتشمل شرحًا موجزًا لذلك؟
سيؤدي البحث في js-beautify brace-style explain
على Google إلى حدوث هذه المشكلة. أولئك الذين يرغبون حقًا في تعلم هذا دون قراءة الكود يمكنهم الحصول على ما يريدون.
التعليق الأكثر فائدة
يبدو الجزء الأول مثل # 338.
يتحكم خيار "الانهيار" فقط في ما إذا كان قوس الفتح المتعرج على نفس الخط مثل الأشياء التي تأتي قبله ، أو على السطر الخاص به - فهو لا يتعامل مع الأشياء التي تأتي بعد ذلك (داخل الأقواس المتعرجة).
يتمثل الاختلاف بين "الانهيار" و "توسيع النهاية" في كيفية معالجة قوس النهاية المتعرج في حالات معينة. علي سبيل المثال:
يؤدي "الانهيار" إلى القيام بذلك ، عن طريق وضع قوس الإغلاق لـ
if
على نفس السطر مثل الكلمة الرئيسيةelse
:في حين أن "end-expand" ستفعل ذلك ، بوضع قوس الإغلاق لـ
if
على السطر الخاص بها:ح