Reformatage Intellij lors de l'enregistrement du fichier


353

Je me souviens avoir vu dans IntelliJ ou Eclipse le paramètre de reformater (nettoyer) les fichiers chaque fois qu'ils sont enregistrés. Comment le trouver (je ne l'ai pas trouvé dans les paramètres)

Réponses:


236

Je suggère le plugin de sauvegarde des actions . Il prend également en charge l'optimisation des importations et la réorganisation du code.

Fonctionne bien en combinaison avec le plugin de formateur eclipse .

Recherchez et activez le plugin:

entrez la description de l'image ici

Configurez-le:

entrez la description de l'image ici

Edit: il semble que la version récente d'Intellij le plugin d'action de sauvegarde est déclenchée par la sauvegarde automatique d'Intellij. Cela peut être assez ennuyeux quand il frappe pendant l'édition.

Ce problème github du plugin donne un indice sur quelques solutions possibles:

https://github.com/dubreuia/intellij-plugin-save-actions/issues/63

J'ai en fait essayé d'affecter le reformatage à Ctrl+ Set cela a bien fonctionné - l'enregistrement se fait automatiquement maintenant.


Je l'ai utilisé mais après la mise à jour vers Android Studio 1.5.1, je ne le trouve plus.
r1k0

1
Le plugin a été (à ce jour) mis à jour le 10.02.2016 et dit que Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).je ne sais pas sur quelle version d'IntelliJ Android Studio est basé. Pouvez-vous vérifier cela?
Benjamin Peter

Au sommet tu vas!
Nick Grealy

Presque travaillé pour moi. Malheureusement, le "code de reformatage" ne ferait qu'un sous-ensemble des choses que fait "Code> Code de reformatage" (au moins pour le code Scala). Pourquoi donc?
Thilo

J'ai essayé, mais IntelliJ économise trop souvent. L'organisation des importations apparaît toujours 2-3 touches.
Ashley

443

Cette solution a mieux fonctionné pour moi:

  1. Créer une macro (j'ai utilisé Organiser les importations, Formater le code, Enregistrer tout)
  2. Attribuez-lui une touche (je suis passé outre Ctrl+ S)

Remarque: Vous devrez cocher la case "Ne plus afficher ce message" la première fois pour les importations organisées, mais cela fonctionne comme prévu après cela.

Étape par étape pour IntelliJ 10.0:

  1. Code -> "Optimiser les importations ...", si une boîte de dialogue apparaît, cochez la case "Ne plus afficher ce message", puis cliquez sur "Exécuter".
  2. Outils -> "Démarrer l'enregistrement de macro"
  3. Code -> "Optimiser les importations ..."
  4. Code -> "Reformater le code ..."
  5. Fichier -> "Enregistrer tout"
  6. Outils -> "Arrêter l'enregistrement de macro"
  7. Nommez la macro (quelque chose comme "sauvegarde formatée")
  8. Dans Fichier -> Paramètres -> Keymap, sélectionnez votre macro située dans "Menu principal -> Outils ->" sauvegarde formatée "
  9. Cliquez sur "Ajouter un raccourci clavier", puis effectuez la frappe souhaitée. Si vous choisissez Ctrl+ Scomme moi, il vous demandera quoi faire avec le raccourci Ctrl+ précédent S. Retirez-le. Vous pouvez toujours le réaffecter plus tard si vous le souhaitez.
  10. Prendre plaisir!

Pour IntelliJ 11, remplacez

étape 2. avec: Édition -> Macros -> "Démarrer l'enregistrement de macro"
étape 6. avec: Édition -> Macros -> "Arrêter l'enregistrement de macro"

Tout le reste reste le même.

IntelliJ 12

8. Les Préférences contiennent les paramètres de Keymap. Utilisez le champ de saisie pour filtrer le contenu, comme indiqué dans la capture d'écran.

Intellij / Préférences / Keymap / Macros


4
Dans IntelliJ 11: 1: Démarrer l'enregistrement de macro: Edition -> Macros -> Démarrer l'enregistrement de macro. 2: Suivez les instructions ci-dessus. 3: Arrêter l'enregistrement de macro: Edition -> Macros -> Arrêter l'enregistrement de macro. Dans le Keymap, la macro est enregistrée dans le dossier Macros au lieu du menu principal -> dossier Outils.
Markus K

3
Si vous êtes satisfait de la façon dont le code est reformaté, cette approche fonctionne beaucoup mieux si vous choisissez de reformater tout le code dans le projet et de tout enregistrer. Sinon, lorsque vous effectuez des modifications sur plusieurs fichiers, seule la modification active est reformatée avant que toutes les modifications ne soient enregistrées.
Drew Noakes

86

Ci-dessous, la réponse de Neil mise à jour.

IntelliJ 13 étapes:

  1. Code -> Reformater le code entrez la description de l'image ici
  2. Édition -> Macros -> Démarrer l'enregistrement de macro
  3. Code -> Reformater le code
  4. Fichier -> Tout enregistrer
  5. Édition -> Macros -> Arrêter l'enregistrement de macro
  6. Nommez la macro (quelque chose comme "sauvegarde formatée")
  7. Fichier -> Paramètres -> Keymap
  8. Faites un clic droit sur la macro. Ajouter un raccourci clavier. Définissez le raccourci clavier sur Control + S. entrez la description de l'image ici
  9. IntelliJ vous informera d'un conflit de raccourcis clavier. Sélectionnez "supprimer" pour supprimer d'autres affectations.

Mais cela supprime l'action "Enregistrer". Ce que l'affiche a vu, c'est que dans Eclipse, nous avons la possibilité de formater le code et d'organiser l'importation automatiquement lorsqu'un fichier est enregistré. Cette option est (je suppose) absente dans l'idée IntelliJ. Il s'agit d'un travail qui implique de lier la clé de sauvegarde à la clé de reformatage.
Ganesh Krishnan

3
Je ne suis pas d'accord, @GaneshKrishnan. Cette solution de contournement ne lie pas la «clé de sauvegarde» à la «clé de reformatage». Il le lie à une macro qui "reformate et enregistre", ce qui est exactement ce qui était demandé par OP et ce qui est implémenté dans Eclipse, mais déclenché avec une case à cocher.
dbm

1
Je pense que peut-être pour l'étape 1, vous voulez dire "Code -> Afficher la boîte de dialogue de fichier de reformatage" pour définir les valeurs par défaut pour la boîte de dialogue de fichier de reformatage (afin qu'elles soient correctement définies pour l'étape 3 - Reformater le code)?
studgeek

61

Je l'ai réglé pour nettoyer automatiquement lors de l'enregistrement, ce qui est généralement assez bon pour moi. Si quelque chose est trop moche, je vais juste appuyer sur le raccourci ( Ctrl- Alt- L, Return). Et je vois qu'ils ont une option pour le formatage automatique du code collé, même si je ne l'ai jamais utilisé.


12
Vous pouvez également utiliser Ctrl-Maj-F pour formater. Cela fonctionne beaucoup mieux pour moi, car Ctrl-Alt-L est la commande d'écran de verrouillage sur Ubuntu.
Jason McVetta

22
Ctrl + Maj + F est Rechercher dans le chemin .
pile

5
Comment configurez-vous quelque chose à faire lors de l'enregistrement?
voler

2
Est-ce que cela fonctionne si vous ne vous connectez pas à l'aide d'intelliJ, c'est-à-dire que je pense que cela ne fonctionnera pas si vous vous connectez à l'aide de l'outil de ligne de commande.

Comment cela répond-il à la question?
Ben

19

Ctrl+ Alt+ Lest un fichier de format (inclut les deux ci-dessous)

Ctrl+ Alt+ Oc'est optimiser les importations

Ctrl+ Alt+ Ifixera l'indentation sur une ligne particulière

Je lance habituellement Ctrl+ Alt+ Lplusieurs fois avant de commettre mon travail. Je préfère qu'il fasse le nettoyage / reformatage à ma commande plutôt que automatiquement.


Remplacer Ctrl par Cmd pour Mac
Gerard

12
Attention sur Linux comme Ctrl + Alt + Lc'est généralement Lock Session. Vous auriez besoin de remapper l'une des fonctions.
indivisible le

18

Si vous avez InteliJ Idea Community 2018.2, les étapes sont les suivantes:

  1. Dans le menu supérieur, vous cliquez sur: Edition> Macros> Démarrer les enregistrements de macro (vous verrez une fenêtre en bas à droite de votre écran confirmant que les macros sont enregistrées)
  2. Dans le menu supérieur, vous cliquez sur: Code> Reformater le code (vous verrez l'option sélectionnée dans le coin inférieur droit)
  3. Dans le menu supérieur, vous cliquez sur: Code> Optimiser les importations (vous verrez l'option sélectionnée dans le coin inférieur droit)
  4. Dans le menu supérieur, vous cliquez sur: Fichier> Enregistrer tout
  5. Dans le menu supérieur, vous cliquez sur: Edition> Macros> Arrêter l'enregistrement de macro
  6. Vous nommez la macro: "Formater le code, organiser les importations, enregistrer"
  7. Dans le menu supérieur, vous horloge: Fichier> Paramètres. Dans les fenêtres de paramètres, vous cliquez sur Keymap
  8. Dans la zone de recherche à droite, vous recherchez "enregistrer". Vous trouverez Enregistrer tout (Ctrl + S). Faites un clic droit dessus et sélectionnez "Supprimer Ctrl + S"
  9. Retirez votre texte de recherche de la boîte, appuyez sur le bouton Réduire tout (deuxième bouton en haut à gauche)
  10. Allez dans les macros, appuyez sur la flèche pour développer vos macros, trouvez votre macro enregistrée et faites un clic droit dessus. Sélectionnez Ajouter un raccourci clavier et appuyez sur Ctrl + S et d'accord.

Redémarrez votre IDE et essayez-le.

Je sais ce que tu vas dire, les gars avant moi ont écrit la même chose. Mais je me suis trompé en utilisant les étapes ci-dessus, et je voulais écrire une version stupide pour les personnes qui ont la dernière version de l'IDE.


13

Si vous développez dans Flutter, il existe une nouvelle option expérimentale à partir du 01/05/2018 qui vous permet de formater le code lors de la sauvegarde. Réglages


9

J'ai fini par relier l' Reformat code...action à Ctrl- S, en remplaçant la liaison par défaut pour Save All.

Cela peut sembler fou au premier abord, mais IntelliJ semble économiser sur pratiquement toutes les actions: exécution de tests, construction du projet, même lors de la fermeture d'un onglet de l'éditeur. J'ai l'habitude de frapper Ctrl- Sassez souvent, donc cela fonctionne très bien pour moi. Il est certainement plus facile à taper que la liaison par défaut pour le reformatage.


5

IntellIJ 14 && 15: Lorsque vous archivez du code dans la boîte de dialogue Valider les modifications, cochez la case Reformater le code, puis IntelliJ reformatera tout le code que vous archivez.

Source: www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours


2
Qu'est-ce que j'ai dit ici
Tushar

4
Attention, la promotion excessive d'une ressource peut être interprétée par la communauté comme du spam. Vous devez publier de bonnes réponses pertinentes, et si un ou deux d'entre eux mentionnent ce cours, c'est bien - mais si vous le postez dans chaque réponse, cela va être signalé et supprimé.
ArtOfCode

2

Je pensais qu'il y avait quelque chose comme ça dans IntelliJ, mais je ne le trouve pas. Le seul nettoyage qui se produit lors de la sauvegarde est que l'espace blanc aux extrémités des lignes est supprimé. Je pensais que je devais spécifier ce comportement à un moment donné, mais je ne vois rien de lié à ce stade.


2

S'il s'agit de Prettier, utilisez simplement un File Watcher:

références => Outils => File Watchers => cliquez sur + pour ajouter un nouvel observateur => Prettier

https://prettier.io/docs/en/webstorm.html#running-prettier-on-save-using-file-watcher


2
Plus joli est génial mais cela ne fonctionne pas pour les langues / formats en dehors du Web. Il formatera js, ts, css, json, etc. mais est inutile pour C, C #, Java, Python, etc. - à l'exception de quelques premières tentatives de plugins.
Mattia

0

Depuis la version 2020.1, vous pouvez activer Run on save for files directement dans les Préférences du plugin Prettier :

Préférences pour le plugin Prettier

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.