Comment changez-vous le code du formatage automatique d'Intellij? [fermé]


13

IntelliJ fait un formatage étrange avec du code Javascript et j'essaie de comprendre comment le faire pour arrêter le formatage de cette façon. Chaque fois que je chaîne des fonctions jQuery ensemble, il indente le code créé automatiquement tel que celui-ci:

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

Je veux que ça ressemble à ceci:

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

Comment puis-je changer cela?


les correctifs ici n'ont pas fonctionné pour moi, j'ai donc contacté Jetbrains et ils ont ouvert un problème. Veuillez voter pour cela ici: youtrack.jetbrains.com/issue/WEB-15066
JonnyRaa

4
Je vote pour fermer cette question comme hors sujet car il s'agit d'un outil logiciel, cependant, il est trop ancien pour migrer vers Stack Overflow.

Réponses:


11

Comme le mentionne @intarg, dans les commentaires. Vous pouvez changer File|Settings|Code Style|Generalet sur l'onglet Javascript mis Continuation Indentà 0 pour Javascript.

Cela vous donnera la plupart de ce que vous voulez. le problème est que votre code est en fait toute une longue déclaration.

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

Pas sûr qu'il existe une option appropriée pour empêcher un saut de ligne après focus(

Oh, et assurez-vous que l'onglet exemple de code Javascript est actif lorsque vous modifiez des options - sinon vous ne les modifierez pas pour Javascript.

EDIT: Maintenant que j'ai regardé plus loin. Le formateur Javascript est codé pour ajouter un saut de ligne dans ce cas spécifique, il n'y a pas d'option pour cela.


Cela ne fonctionne pas pour moi - je reçois toujours le fluage latéral comme indiqué ci
JonnyRaa

0

Tous les paramètres dont vous avez besoin pour contrôler la mise en forme du code dans intellij se trouvent dans Fichier> Autres paramètres> Paramètres du modèle.

Si Javascript n'est pas répertorié (c'est-à-dire que vous n'avez pas installé de plugin Javascript), vous pouvez définir la mise en forme du code sous l'onglet Général puis l'onglet Autre. Il y aura des options pour contrôler l'indentation et l'espacement.


Je pense que le problème est qu'il pense que la fonction de .blur () est un retrait de continuation. La seule façon de l'empêcher de le faire est de définir l'indentation de continuation à 0, mais cela fait que les autres codes semblent mauvais aussi. Connaissez-vous un moyen de lui dire qu'il ne s'agit pas d'un tiret de continuation ou s'agit-il de choses internes?
intargc

Avez-vous installé un plugin Javascript dans intellij? Je sais qu'il y en a quelques uns disponibles. Si vous n'en utilisez aucun, l'EDI se contentera de recourir à une indentation / un espacement standard. Vous utiliseriez idéalement un plugin pour rendre l'EDI conscient de ces constructions.
Desolate Planet

Avez-vous essayé le jetbrain? Avez-vous également essayé de le faire avec Eclipse. Je n'ai pas touché à intellij depuis un moment, mais je sais qu'Eclipse a un assez bon support de plugin et qu'il est assez facile de contrôler l'indentation, mais vous ne devriez vraiment pas avoir de problème avec intellij.
Desolate Planet

Étant donné que l'édition communautaire est open source, vous pouvez toujours obtenir le code source, le créer et insérer des points d'arrêt où il effectue le formatage pour exclure tout problème interne. S'il ne fait pas ce que vous voulez, appliquez un correctif et soumettez un correctif à l'un des propriétaires du référentiel, si vous avez le temps et l'envie de le faire :)
Desolate Planet

J'ai le plugin javascript installé. Je vais essayer le jetbrain et voir si quelqu'un là-bas a un indice. Merci.
intargc
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.