Entschuldigung, wenn dies schon einmal beantwortet wurde oder irgendwo erklärt wird, aber ich konnte es nicht finden.
Lassen Sie mich zunächst mit einem Beispiel beginnen. In meinem Code habe ich viele Objekte, die Einstellungen für Funktionen enthalten. Mit der Option brace_style: collapse
würde ich erwarten:
function someFunc(settings) {
return settings.set;
}
someFunc( { set: 'string' } );
Aber vielleicht, wenn es groß genug ist (wie 3 oder mehr Eigenschaften? Vielleicht könnte das eine Einstellung sein?):
someFunc( {
set: 'string',
set2: 'string2',
set3: 'string3'
} );
Außer dass es stattdessen Folgendes tut:
someFunc( {
set: 'string'
} );
Wenn viele dieser Objekte verwendet werden, kann es ziemlich schwer zu lesen sein. Ich möchte, dass "collapse" bedeutet, dass kleinerer Code in geschweiften Klammern (Anweisungen, Objekte, anonyme Funktionen usw.) in einer Zeile bleiben würde.
Ich sehe auch keinen Unterschied zwischen "collapse" und "end-expand". Soweit ich das beurteilen kann, tun sie dasselbe.
Der erste Teil klingt wie #338.
Die Option "collapse" steuert nur, ob die öffnende geschweifte Klammer in derselben Zeile steht wie das Zeug, das _davor_ kommt, oder in einer eigenen Zeile -- sie befasst sich nicht mit dem Zeug, das danach kommt (innerhalb der geschweiften Klammern).
Der Unterschied zwischen „collapse“ und „end-expand“ besteht darin, wie die abschließende geschweifte Klammer in bestimmten Fällen behandelt wird. Zum Beispiel:
"collapse" würde dies tun und die schließende geschweifte Klammer für das if
in dieselbe Zeile wie das Schlüsselwort else
setzen:
if (someCondition) {
doSomething();
} else {
doSomethingElse();
}
Wohingegen "end-expand" dies tun würde, indem die schließende geschweifte Klammer für if
in eine eigene Zeile gesetzt wird:
if (someCondition) {
doSomething();
} // closing curly brace is put on its own line
else {
doSomethingElse();
}
hth
Danke @c32hedge , es scheint, dass dies eine ziemlich beliebte Anfrage ist, die gerade bearbeitet wird! #315
Tolle Erklärung, jetzt verstehe ich es. Ich dachte, es hätte mit dem zu tun, was in den Klammern war, nicht mit dem, was um sie herum passierte. Ich frage mich, ob die Dokumentation aktualisiert werden könnte, um eine kurze Erklärung dazu aufzunehmen?
Die Suche nach js-beautify brace-style explain
bei Google führt zu diesem Problem. Diejenigen, die das wirklich lernen wollen, ohne den Code zu lesen, können bekommen, was sie wollen.
Hilfreichster Kommentar
Der erste Teil klingt wie #338.
Die Option "collapse" steuert nur, ob die öffnende geschweifte Klammer in derselben Zeile steht wie das Zeug, das _davor_ kommt, oder in einer eigenen Zeile -- sie befasst sich nicht mit dem Zeug, das danach kommt (innerhalb der geschweiften Klammern).
Der Unterschied zwischen „collapse“ und „end-expand“ besteht darin, wie die abschließende geschweifte Klammer in bestimmten Fällen behandelt wird. Zum Beispiel:
"collapse" würde dies tun und die schließende geschweifte Klammer für das
if
in dieselbe Zeile wie das Schlüsselwortelse
setzen:Wohingegen "end-expand" dies tun würde, indem die schließende geschweifte Klammer für
if
in eine eigene Zeile gesetzt wird:hth