Intellij riformatta sul salvataggio dei file


353

Ricordo di aver visto in IntelliJ o Eclipse l'impostazione per riformattare (ripulire) i file ogni volta che vengono salvati. Come lo trovo (non l'ho trovato nelle impostazioni)

Risposte:


236

Suggerisco il plug-in delle azioni di salvataggio . Supporta inoltre l'ottimizzazione delle importazioni e la riorganizzazione del codice.

Funziona bene in combinazione con il plugin formatter di eclipse .

Cerca e attiva il plug-in:

inserisci qui la descrizione dell'immagine

Configuralo:

inserisci qui la descrizione dell'immagine

Modifica: sembra che sia la versione recente di Intellij che il plug-in salva azione è attivato dal salvataggio automatico di Intellij. Questo può essere abbastanza fastidioso quando colpisce mentre si continua a modificare.

Questo problema github del plugin fornisce un suggerimento per alcune possibili soluzioni:

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

In realtà ho provato ad assegnare il riformattazione a Ctrl+ Se ha funzionato bene - il salvataggio viene eseguito automaticamente ora.


L'ho usato ma dopo l'aggiornamento ad Android Studio 1.5.1, non riesco più a trovarlo.
r1k0

1
Il plug-in è stato (per ora) aggiornato il 10.02.2016 e dice Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).che non so su quale versione di IntelliJ Android Studio sia basato. Puoi controllare questo?
Benjamin Peter,

Vai in cima!
Nick Grealy,

Quasi ha funzionato per me. Sfortunatamente, il "codice riformattato" farebbe solo un sottoinsieme delle cose che fa "Codice> Riformatta codice" (almeno per il codice Scala). Perché?
Thilo,

Ho provato questo, ma IntelliJ risparmia molto spesso. L'organizzazione delle importazioni si apre ogni 2-3 sequenze di tasti.
Ashley,

443

Questa soluzione ha funzionato meglio per me:

  1. Crea una macro (ho usato Organizza le importazioni, Formatta codice, Salva tutto)
  2. Assegnalo a una sequenza di tasti (ho scavalcato Ctrl + S)

Nota: è necessario selezionare la casella "Non mostrare più questo messaggio" la prima volta per le importazioni organizzate, ma funziona come previsto in seguito.

Procedura dettagliata per IntelliJ 10.0:

  1. Codice -> "Ottimizza importazioni ...", se viene visualizzata una finestra di dialogo, seleziona la casella "Non mostrare più questo messaggio", quindi fai clic su "Esegui".
  2. Strumenti -> "Avvia registrazione macro"
  3. Codice -> "Ottimizza importazioni ..."
  4. Codice -> "Riformatta codice ..."
  5. File -> "Salva tutto"
  6. Strumenti -> "Interrompi registrazione macro"
  7. Assegna un nome alla macro (qualcosa come "salvataggio formattato")
  8. In File -> Impostazioni -> Keymap, seleziona la tua macro situata in "Menu principale -> Strumenti ->" salvataggio formattato "
  9. Fai clic su "Aggiungi scorciatoia da tastiera", quindi esegui la sequenza desiderata. Se scegli Ctrl+ Scome me, ti chiederà cosa fare con il precedente Ctrl+S scorciatoia. Rimuoverlo. Puoi sempre riassegnarlo in seguito, se lo desideri.
  10. Godere!

Per IntelliJ 11, sostituire

passaggio 2. con: Modifica -> Macro -> "Avvia registrazione macro"
passaggio 6. con: Modifica -> Macro -> "Arresta registrazione macro"

Tutto il resto rimane lo stesso.

IntelliJ 12

8. Le Preferenze contengono le impostazioni della Keymap. Utilizzare il campo di input per filtrare il contenuto, come mostrato nella schermata.

Intellij / Preferenze / Keymap / Macro


4
In IntelliJ 11: 1: avvia la registrazione macro: Modifica -> Macro -> Avvia registrazione macro. 2: seguire le istruzioni sopra. 3: Interrompi registrazione macro: Modifica -> Macro -> Interrompi registrazione macro. Nella Keymap la macro viene salvata nella cartella Macro anziché nel menu principale -> cartella Strumenti.
Markus K,

3
Se sei soddisfatto di come viene riformattato il codice, questo approccio funziona molto meglio se scegli di riformattare tutto il codice nel progetto e salvare tutto. Altrimenti, quando si eseguono modifiche su più file, solo quella attiva viene riformattata prima di salvare tutte le modifiche.
Drew Noakes,

86

Di seguito è stata aggiornata la risposta di Neil.

IntelliJ 13 passi:

  1. Codice -> Riformatta codice inserisci qui la descrizione dell'immagine
  2. Modifica -> Macro -> Avvia registrazione macro
  3. Codice -> Riformatta codice
  4. File -> Salva tutto
  5. Modifica -> Macro -> Interrompi registrazione macro
  6. Assegna un nome alla macro (qualcosa come "salvataggio formattato")
  7. File -> Impostazioni -> Keymap
  8. Fare clic con il tasto destro sulla macro. Aggiungi scorciatoia da tastiera. Imposta la scorciatoia da tastiera su Control + S. inserisci qui la descrizione dell'immagine
  9. IntelliJ ti informerà di un conflitto di tasti di scelta rapida. Seleziona "rimuovi" per rimuovere altri incarichi.

Ma questo rimuove l'azione "Salva". Quello che ha visto il poster è che in Eclipse abbiamo la possibilità di formattare il codice e organizzare l'importazione automatica quando un file viene salvato. Questa opzione è (presumo) assente nell'idea di IntelliJ. Questa è una soluzione che comporta l'associazione della chiave di salvataggio alla chiave di formattazione.
Ganesh Krishnan,

3
Non sono d'accordo, @GaneshKrishnan. Questa soluzione alternativa non associa la "chiave di salvataggio" alla "chiave di formattazione". Lo lega a una macro che "riformatta e salva", che è esattamente ciò che è stato richiesto da OP e ciò che è implementato in Eclipse, ma attivato con una casella di controllo.
dbm

1
Penso che forse per il passaggio 1 intendi "Codice -> Mostra finestra di dialogo Riformatta file" per impostare i valori predefiniti per la finestra di dialogo Riformatta file (in modo che siano impostati correttamente per il passaggio 3 - Codice Riformatta)?
Studgeek

61

L'ho impostato per la pulizia automatica al momento del check-in, che di solito è abbastanza buono per me. Se qualcosa è troppo brutto, mi limiterò a premere il collegamento ( Ctrl- Alt- L, Return). E vedo che hanno un'opzione per la formattazione automatica del codice incollato, anche se non l'ho mai usato.


12
Puoi anche usare Ctrl-Maiusc-F per formattare. Per me funziona meglio, dato che Ctrl-Alt-L è il comando di blocco schermo su Ubuntu.
Jason McVetta,

22
Ctrl + Maiusc + F è Trova nel percorso .
pila

5
Come si imposta qualcosa che accadrà al check-in?
rapina l'

2
Funziona se non esegui il check-in usando intelliJ, cioè penso che non funzionerà se esegui il check-in utilizzando lo strumento da riga di comando.

Come risponde alla domanda?
Ben

19

Ctrl+ Alt+ Lè un file di formato (include i due seguenti)

Ctrl+ Alt+ Oè ottimizzare le importazioni

Ctrl+ Alt+I risolverà il rientro su una riga particolare

Di solito corro Ctrl+ Alt+ Lalcune volte prima di impegnarmi. Preferirei fare la pulizia / riformattazione al mio comando invece che automaticamente.


Sostituisci Ctrl con Cmd per Mac
Gerard

12
Attento su Linux come Ctrl + Alt + Lcomunemente è Lock Session. Dovresti rimappare una delle funzioni.
indivisibile il

18

Se hai InteliJ Idea Community 2018.2 i passaggi sono i seguenti:

  1. Nel menu in alto fai clic su: Modifica> Macro> Avvia registrazioni macro (vedrai una finestra nell'angolo in basso a destra dello schermo che conferma che le macro vengono registrate)
  2. Nel menu in alto fai clic su: Codice> Riformatta codice (vedrai l'opzione selezionata nell'angolo in basso a destra)
  3. Nel menu in alto fai clic su: Codice> Ottimizza importazioni (vedrai l'opzione selezionata nell'angolo in basso a destra)
  4. Nel menu in alto fai clic su: File> Salva tutto
  5. Nel menu in alto fai clic su: Modifica> Macro> Ferma registrazione macro
  6. Si assegna il nome alla macro: "Formato codice, Organizza importazioni, Salva"
  7. Nel menu in alto si orologio: File> Impostazioni. Nella finestra delle impostazioni fai clic su Keymap
  8. Nella casella di ricerca sulla destra cerchi "salva". Troverai Salva tutto (Ctrl + S). Fai clic destro su di esso e seleziona "Rimuovi Ctrl + S"
  9. Rimuovi il testo di ricerca dalla casella, premi il pulsante Comprimi tutto (secondo pulsante in alto a sinistra)
  10. Vai alle macro, premi sulla freccia per espandere le macro, trova la macro salvata e fai clic con il tasto destro su di essa. Seleziona Aggiungi scorciatoia da tastiera e premi Ctrl + S e ok.

Riavvia il tuo IDE e provalo.

So cosa dirai, i ragazzi prima di me hanno scritto la stessa cosa. Ma mi sono confuso usando i passaggi sopra questo post e volevo scrivere una versione stupida per le persone che hanno l'ultima versione dell'IDE.


13

Se stai sviluppando in Flutter, c'è una nuova opzione sperimentale a partire dal 5/1/2018 che ti consente di formattare il codice al momento del salvataggio. impostazioni


9

Ho finito per ricollegare l' Reformat code...azione a Ctrl- S, sostituendo l'associazione predefinita per Save All.

All'inizio può sembrare folle, ma IntelliJ sembra risparmiare praticamente su ogni azione: eseguire test, costruire il progetto, anche quando si chiude una scheda dell'editor. Ho l'abitudine di colpire Ctrl- Sabbastanza spesso, quindi in realtà funziona abbastanza bene per me. È certamente più facile da digitare rispetto al bind predefinito per la riformattazione.


5

IntellIJ 14 && 15: quando si esegue il check-in del codice nella finestra di dialogo Commit change, selezionare la casella di controllo Riformatta codice, quindi IntelliJ riformatterà tutto il codice che si sta effettuando il check-in.

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


2
Cosa ho detto qui
Tushar,

4
Attenzione che la promozione eccessiva di una risorsa può essere interpretata dalla comunità come spam. Dovresti pubblicare risposte valide e pertinenti e se uno o due citano questo corso, va bene, ma se lo pubblichi in ogni risposta, verrà contrassegnato ed eliminato.
ArtOfCode

2

Ho pensato che ci fosse qualcosa del genere in IntelliJ, ma non riesco a trovarlo. L'unica pulizia che si verifica al salvataggio è che lo spazio bianco alle estremità delle linee viene rimosso. Pensavo di dover specificare quel comportamento ad un certo punto, ma non vedo nulla di correlato a questo punto.



0

Dalla versione 2020.1, è possibile attivare Esegui sul salvataggio dei file direttamente nelle Preferenze del plugin Prettier :

Preferenze per il plugin Prettier

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.