Js-beautify: Seltsame Einkerbung bei Verwendung des Schaltergehäuses

Erstellt am 2. Aug. 2010  ·  11Kommentare  ·  Quelle: beautify-web/js-beautify

switch (v) { case 1: break; case 2: break; case 3: break; default: break; }

…wird…

switch (v) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
default:
    break;
}

Vielleicht ist dies beabsichtigt, aber ich würde erwarten, dass die case um 1 Ebene eingerückt werden (basierend auf den Einstellungen).

Hilfreichster Kommentar

IMHO, das macht wirklich keinen Sinn. Crockfords Begründung, die zusätzlichen Einrückungen wegzulassen, lautet wie folgt: „Jeder Fall ist mit dem Schalter ausgerichtet. Dies vermeidet eine übermäßige Einrückung.“ ORLY?

Ich verstehe jedoch Ihren Punkt. Wenn es beabsichtigt ist und Sie es so mögen, lassen Sie es einfach so, wie es ist!

Alle 11 Kommentare

Es ist beabsichtigt, gemäß den Crockford-Konventionen, http://javascript.crockford.com/code.html , also kein Fehler.

IMHO, das macht wirklich keinen Sinn. Crockfords Begründung, die zusätzlichen Einrückungen wegzulassen, lautet wie folgt: „Jeder Fall ist mit dem Schalter ausgerichtet. Dies vermeidet eine übermäßige Einrückung.“ ORLY?

Ich verstehe jedoch Ihren Punkt. Wenn es beabsichtigt ist und Sie es so mögen, lassen Sie es einfach so, wie es ist!

switch (foo) {
    case something:
        break;
}
 ^^^^^^^ huge ugly empty space

...und der eigentliche Code wird plötzlich 2 Einrückungen entfernt, was normalerweise viel hässlicher ist, als switch/case nur als nicht eingerückten Sonderfall zu behandeln.

Das liegt natürlich alles im Auge des Betrachters.

Ich stimme Crockford nicht zu, mit seiner Idee ist es wesentlich schwieriger, das tatsächliche Ende der switch-Anweisung festzustellen. Warum sollten seiner Argumentation nach überhaupt Kontrollstrukturen eingerückt werden? Sie alle ergeben eine Einrückungsstrafe.

Ich denke, das wäre besser, wenn man zufällig mit einer Auflösung von 800x600 arbeitet:

switch (v) {
    case 1:
    // code goes here
    break;

    default:
    // code goes here
    break;
}

Hätte gerne eine Option dafür; entweder auf die "normale" Weise (wie ich mein ganzes Leben lang Switch-Anweisungen geschrieben gesehen habe) oder auf die Weise, die ich oben demonstriert habe; alles andere als die Vorgabe. Wären Sie offen für einen Patch, wenn Sie persönlich nicht einverstanden sind oder die Notwendigkeit dafür sehen?

Super, vielen Dank.

Können wir dafür eine Option haben? Vielleicht einfach zu jslint happy hinzufügen?

Hassen Sie den Einwurf in schlampigen Leerraum für eine switch-Anweisung.

@drewhjava Fühlen Sie sich frei, einen Fehler zu öffnen, der auf diesen verweist, der diese Option anfordert

Dieses Problem scheint nicht gelöst zu sein?

Ich bekomme immer noch die hässliche Schalterverschönerung. Wurde das nicht behoben?

z.B

switch (v) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
default:
    break;
}

Ehh. Ich habe jsbeautifier.org ein "jslint-happy"-Kontrollkästchen hinzugefügt.

Perfekt, danke :)

Dieses Einrückungsproblem unterscheidet sich bei demselben Code unter Windows und OSX. Ein typisches Beispiel ist https://github.com/gpujs/gpu.js , wenn ich yarn make ausführe, verschönert es den Ordner ./src mit diesem Skript: https://github.com/ gpujs/gpu.js/blob/012cfff566691a8fa360e0af650a45c616ceff4a/gulpfile.js#L85

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen