Js-beautify: Unterschied zwischen Hosenträgerstilen? (Reduzieren vs. Ende-Erweitern)

Erstellt am 19. Dez. 2014  ·  3Kommentare  ·  Quelle: beautify-web/js-beautify

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.

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ü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

Alle 3 Kommentare

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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen