Js-beautify: { "brace_style": "preserve-inline" } funktioniert nicht wie erwartet mit mehrzeiligen Funktionsparametern

Erstellt am 24. Okt. 2018  ·  4Kommentare  ·  Quelle: beautify-web/js-beautify

Beschreibung

Hi, erstmal ein großes Dankeschön an euch für diese tolle Bibliothek!

Ich habe ein Problem, wenn ich mehrzeilige Funktionsargumente verwende, die Objekte enthalten:

// This is working OK for me and it is very readable
myFunc('myString',
    myFunc2(),
    andSoOn());

Erwartete Ausgabe

Aber wenn ich es versuche:

// This is working OK for me and it is very readable
myFunc('myString',
    { myProp: true }, // I have just insterted this object
    andSoOn());

Tatsächliche Leistung

Alles wird in einer Zeile neu formatiert...

myFunc('myString', { myProp: true }, andSoOn());

Ich bin mir ziemlich sicher, dass es mit der Regel { "brace_style": "preserve-inline" } zu tun hat.

Umgebung

Betriebssystem: Linux Mint
Code-Editor: VSCode

die Einstellungen

Beispiel:

{
    "editor": {
        "formatOnSave": true
    },
    "brace_style": "collapse,preserve-inline"
}

Danke nochmal ;)

javascript bug

Alle 4 Kommentare

Es ist die Einstellung collapse , die die offene geschweifte Klammer zurück in die vorherige Zeile zieht.

Aber man könnte argumentieren, dass preserve-inline überschreiben sollte. Der schwierige Teil ist, dass der Verschönerer nicht sagen kann, ob der Block inline ist, bis er das Ende erreicht. Das ist im aktuellen Design schwierig.

Ok, ich habe es mit config versucht:

{
    "brace_style": "none,preserve-inline"
}

Und das Ergebnis ist das gleiche ... auch ich denke, dies passiert nur im Kontext von Funktionsparametern, alle anderen Fälle sind in Ordnung, ich hoffe, ich habe etwas Zeit, um es auszuprobieren.

Hallo, für diejenigen, die nach einer Lösung suchen, hier eine Problemumgehung:

myFunc( //
    { myProp: true }, //
    { myProp: true }, //
    { myProp: true });

Wenn ich einen leeren Kommentar einfüge, wird er nicht in eine Zeile formatiert. Zumindest auf VScode. Es wird nicht weniger sichtbar und kann mit einem Suchen und Ersetzen leicht projektweit entfernt werden ( //\n )

Hoffe es kann helfen...

@sebRomeo
Autsch. Ich bin froh, dass Sie eine Lösung gefunden haben, aber das ist eine schmerzhafte Umgehung.
Nur um klar zu sein, dass "none,preserve-inline" funktionieren sollte, also ändere ich dies in einen Fehler.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen