Comment faire envelopper le code du formateur avec IntelliJ?


135

Je ne parviens pas à formater mon code dans IntelliJ.

Je peux voir la ligne de marge (par défaut à 120 colonnes) mais il semble que l'activation depuis le menu:

Code -> Reformater le code

ignore simplement cette marge.

Réponses:


91

Voulez-vous dire que le formateur ne rompt pas les longues lignes? Vérifiez Paramètres / Paramètres du projet / Style de code / Habillage.

Mise à jour: dans les versions ultérieures d'IntelliJ, l'option se trouve sous Paramètres / Editeur / Style de code. Et sélectionnez Wrap when typing reaches right margin.


1
cette option n'est plus là, en utilisant la version 13.0.2, et le problème demeure ..
ipolevoy

34
@ipolevoy le nom de l'option est "Assurez-vous que la marge droite n'est pas dépassée"
madhead

13
L'option «S'assurer que la marge droite n'est pas dépassée» se trouve dans Fichier / Paramètres / Éditeur / Style de code / Java / Emballage et accolades / Conserver lors du reformatage
Aaron

ces gars continuent à renommer les clés de réglage tout le temps
ACV

C'est correct, mais dans les nouvelles versions, des options supplémentaires ont été ajoutées pour fournir un contrôle plus fin sur ce qui peut être encapsulé. Voir stackoverflow.com/a/52157389/1104581 pour la bonne réponse actuelle.
ipetrik

160

IntelliJ IDEA 14, 15, 2016 et 2017

Formater le code existant

  1. Assurez-vous que la marge droite n'est pas dépassée

    Fichier> Paramètres> Editeur> Style de code> Java> Habillage et accolades> Assurez-vous que la marge droite n'est pas dépassée

    Paramètres de fichier Assurer la bonne marge

  2. Reformater le code

    Code> Reformater le code ...

    Reformater le code

    ou appuyez sur Ctrl+ Alt+L

    avertissement Si vous avez quelque chose comme ça:

    thisLineIsVeryLongAndWillBeChanged();   // comment
    

    il sera converti en

    thisLineIsVeryLongAndWillBeChanged();   
    // comment  
    

    au lieu de

    // comment  
    thisLineIsVeryLongAndWillBeChanged();   
    

    C'est pourquoi je sélectionne des morceaux de code avant de reformater si le code ressemble à l'exemple précédent.

Envelopper lorsque la saisie atteint la marge droite

  • IntelliJ IDEA 14 : Fichier> Paramètres> Éditeur> Style de code> Envelopper lorsque la saisie atteint la marge droite

    Envelopper lors de la saisie

  • IntelliJ IDEA 15, 2016 et 2017 : Fichier> Paramètres> Éditeur> Style de code> Envelopper lors de la saisie

    Envelopper sur la frappe


5
Oui! C'est la vraie réponse, merci beaucoup! Le fait est que le Wrap when typing reaches right marginva avoir d'énormes problèmes une fois que vous modifiez quelque chose sur une ligne qui a déjà été enveloppée. Votre réponse nettoie juste lors de l'invocation. Combiné avec une macro "enregistrer et formater" c'est de l'or pur!
Patrick du

1
Je voudrais ajouter un mot-clé ici, qui est ce que l'on peut rechercher: c'est ce qu'on appelle un enveloppement dur (par opposition à un emballage souple - voyez la différence ici ).
iled

1
Y a-t-il un moyen d'avoir le nombre correct de lignes plutôt que de simplement s'assurer qu'il ne dépasse pas le maximum? Ex: je tape une longue ligne, elle la divise en deux lignes, puis je supprime quelque chose dans la première ligne, et elle fusionne les deux lignes en une seule ligne.
user2259659

1
Aussi: Aucune indication pour 2018.1
8bitjunkie

1
2017 «Wrap on typing» ne fonctionne pas. le texte traverse toujours la ligne et rien ne se passe sur le reformatage
tylik

16

Activer "S'assurer que la marge droite n'est pas dépassée" ne fonctionne pas pour moi dans Intellij IDEA 2018.2. J'ai trouvé la solution de contournement, nous devons changer tous les éléments ci-dessous de "Ne pas envelopper" à "Envelopper si long".

entrez la description de l'image ici entrez la description de l'image ici

Après cela, nous pouvons prévisualiser le type de type d'habillage qui sera modifié en regardant dans le panneau de droite. Si nous sommes satisfaits, cliquez sur "OK" ou "Appliquer" pour appliquer les modifications. Enfin, nous avons besoin d'un format manuel en utilisant CTRL+ ALT+ Lsous Windows et Command+ Shift+ Lsous MacOS.


C'était aussi le problème pour moi. Si cette case est cochée mais que le reste est laissé par défaut, IntelliJ essaie d'encapsuler les lignes, mais ne le peut pas car tout est défini sur "Ne pas encapsuler".
Voleur

12

Ou vous pouvez utiliser le raccourci:

Ctrl + Alt + L


4
Pourriez-vous publier le nom de cette action (Paramètres -> Keymap)? Sur la plupart des Linux, la combinaison CTRL + ALT + L est utilisée pour bloquer l'ordinateur. Je ne peux même pas utiliser l'option "Rechercher une action par raccourci".
tomrozb

2
@tomrozb ce raccourci est pour Code -> Reformat Code.
AtomHeartFather

1
Cela verrouille mon écran.
8bitjunkie

3

Vous pouvez créer une macro pour Ctrl + Maj + S (par exemple) qui fait toutes ces choses:

Édition> Macros> Démarrer l'enregistrement de macro (l'enregistrement démarre). Cliquez là où vous en avez besoin.

Par exemple:

Code > Reformat Code
Code > Auto-Indent Lines
Code > Optimize Imports
Code > Rearrange Code
File > Save All
... (all that you want)

Ensuite, cliquez sur le bouton rouge en bas à droite de l'EDI pour arrêter l'enregistrement de la macro.

Définissez un nom de macro.

Allez dans Fichier> Paramètres> Macros> VOTRE NOM DE MACRO .

Cliquez avec le bouton droit> Ajouter un raccourci clavier et tapez Ctrl + Maj + S.


Il s'agit d'une fonctionnalité IDE de base. Les macros sont OTT et trop compliquées pour quelque chose d'aussi simple.
8bitjunkie

2

Pour envelopper le texte dans l'éditeur de code de la communauté IntelliJ IDEA 2020.1, procédez comme suit:

Ctrl + Shift + "A" OR Help -> Find Action
Enter: "wrap" into the text box
Toggle: View | Active Editor Soft-Wrap "ON"

entrez la description de l'image ici


0

Dans la dernière version d'Intellij ver 2020, nous avons une option appelée enveloppement souple de ces fichiers. Paramètres -> Editeur -> Général -> enveloppez ces fichiers. Cochez cette option et ajoutez le type de fichiers dont vous avez besoin.

option intellij enveloppe douce

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.