Wie ändert man, wie intelligent automatisch Code formatiert? [geschlossen]


13

IntelliJ formatiert seltsamerweise mit Javascript-Code und ich versuche herauszufinden, wie ich es dazu bringen kann, die Formatierung auf diese Weise zu beenden. Immer wenn ich jQuery-Funktionen verkette, wird der automatisch erstellte Code wie folgt eingerückt:

$('#something').focus(function() {
    /* Do some stuff */
}).blur(function() {
        /* this is where the cursor and closing braces end up */
        })

Ich möchte, dass es so aussieht:

$('#something').focus(function() {
    /* Do some stuff */
}).blur(function() {
    /* cursor and closing braces indented normally */
});

Wie ändere ich das?


Die Fehlerbehebungen hier haben bei mir nicht funktioniert, also habe ich mich mit Jetbrains in Verbindung gesetzt und sie haben ein Problem geöffnet. Bitte stimmen Sie hier ab: youtrack.jetbrains.com/issue/WEB-15066
JonnyRaa

4
Ich stimme zu, um diese Frage als "Off-Topic" zu schließen, da es sich um ein Software-Tool handelt. Es ist jedoch zu alt, um auf Stack Overflow zu migrieren.

Antworten:


11

Als @intarg erwähnt, in den Kommentaren. Sie können ändern File|Settings|Code Style|Generalund auf der Registerkarte Continuation IndentJavascript für Javascript den Wert 0 festlegen .

Das bringt dir das meiste, was du willst. das problem ist, dass dein code eigentlich nur 1 lange aussage ist.

$('#something').focus(
function() {
    /* Do some stuff */
}).blur(function() {
    /* this is where the cursor and closing braces end up */
})

Nicht sicher, ob es eine relevante Option gibt, um einen Zeilenumbruch danach zu verhindern focus(

Oh, und stellen Sie sicher, dass Sie die Registerkarte JavaScript-Codebeispiel aktiviert haben, wenn Sie Optionen ändern. Andernfalls ändern Sie sie nicht für JavaScript.

EDIT: Jetzt wo ich weiter geschaut habe. Der Javascript-Formatierer ist so codiert, dass in diesem speziellen Fall ein Zeilenumbruch hinzugefügt wird. Es gibt keine Option dafür.


Das funktioniert bei mir nicht - ich bekomme immer noch das oben beschriebene Kriechen seitwärts
JonnyRaa

0

Alle Einstellungen, die Sie zur Steuerung der Code-Formatierung in intellij benötigen, finden Sie unter Datei> Andere Einstellungen> Vorlageneinstellungen.

Wenn Javascript nicht aufgelistet ist (dh Sie haben kein Javascript-Plugin installiert), können Sie die Code-Formatierung auf der Registerkarte Allgemein und dann auf der Registerkarte Sonstige definieren. Es gibt Optionen zum Steuern der Einrückung und des Abstands.


Ich denke, das Problem ist, dass es denkt, dass die Funktion von .blur () ein Fortsetzungseinzug ist. Die einzige Möglichkeit, dies zu verhindern, besteht darin, den Einzug für die Fortsetzung auf 0 zu setzen. Dadurch sieht jedoch auch anderer Code schlecht aus. Würdest du zufällig einen Weg kennen, um zu sagen, dass dies kein Fortsetzungseinzug ist, oder sind das einige interne Dinge, die vor sich gehen?
Intargc

Haben Sie ein Javascript-Plugin in intellij installiert? Ich weiß, dass einige verfügbar sind. Wenn Sie keine davon verwenden, greift die IDE einfach auf standardmäßige Einrückungen / Abstände zurück. Idealerweise verwenden Sie ein Plugin, um die IDE auf diese Konstrukte aufmerksam zu machen.
Desolate Planet

Hast du es mit Jetbrains versucht? Haben Sie dies auch mit Eclipse versucht? Ich habe Intellij eine Weile nicht mehr angerührt, aber ich weiß, dass Eclipse eine ziemlich gute Plugin-Unterstützung hat und es einfach genug ist, Einrückungen zu kontrollieren, aber Sie sollten wirklich kein Problem mit Intellij haben.
Desolate Planet

Da es sich bei der Community Edition um Open Source handelt, können Sie den Quellcode jederzeit abrufen, ihn erstellen und Haltepunkte einfügen, an denen die Formatierung ausgeführt wird, um auszuschließen, dass ein internes Problem vorliegt. Wenn es nicht das tut, was du willst, wende ein Update an und sende einen Patch an einen der Repo-Besitzer, wenn du die Zeit und die Neigung dazu hast :)
Desolate Planet

Ich habe das Javascript Plugin installiert. Ich werde Jetbrains ausprobieren und nachsehen, ob dort jemand eine Ahnung hat. Vielen Dank.
Intargc
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.