2009-06-03 6 views
219

Ricordo di aver visto in IntelliJ o Eclipse l'impostazione per riformattare i file (puliti) ogni volta che vengono salvati. Come trovarlo (non lo trova nelle impostazioni)Intellij reformat on file save

risposta

87

Suggerisco il save actions plugin. Supporta inoltre l'ottimizzazione delle importazioni e il riorganizzazione del codice.

Funziona bene in combinazione con eclipse formatter plugin.

ricerca e attivare il plugin:

enter image description here

configurarla:

enter image description here

Edit: sembra che la versione recente del Intellij plugin azione salvare viene attivato dal salvataggio automatico di Intellij. Questo può essere abbastanza fastidioso quando colpisce mentre si sta ancora modificando.

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

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

realtà ho cercato di assegnare riformattare per Ctrl + S e ha funzionato bene - salvataggio avviene automaticamente adesso.

+0

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

+0

Il plugin è stato (a partire da ora) ultimo aggiornamento _10.02.2016_ e dice 'Compatibilità Questo plugin funziona con Java 6+ e IntelliJ IDEA Community Edition dopo 131 (circa la versione 13) .' Non so quale versione di IntelliJ Android Studio è basato su. Puoi controllare questo? –

+0

Vai in cima! –

2

Ho pensato che c'era qualcosa di simile in IntelliJ, ma non riesco a trovarlo. L'unica operazione di pulizia che avviene con il salvataggio è la rimozione dello spazio bianco all'estremità delle linee. Ho pensato di dover specificare quel comportamento a un certo punto, ma a questo punto non vedo nulla di simile.

60

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 colpito la scorciatoia (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

È possibile anche usare Ctrl-shift-F in formato. Funziona molto meglio per me, dal momento che Ctrl-Alt-L è il comando di blocco schermo su Ubuntu. –

+21

Ctrl + Shift + F è * Cerca nel percorso *. – stackular

+5

Come si imposta qualcosa sul check-in? – rob

15

Ctrl + Alt + L è formato di file (include le due di seguito)

Ctrl + Alt + O è ottimizzare le importazioni

Ctrl + Alt + I risolverà rientro su una particolare linea

Io di solito corro Ctrl +Alt +L un paio di volte prima di commettere il mio lavoro. Preferirei eseguire la pulizia/riformattazione al mio comando invece che automaticamente.

+0

Sostituisci Ctrl con Cmd per Mac – Gerard

+10

Attento su Linux come 'Ctrl + Alt + L' è comunemente Lock Session. Dovresti rimappare una delle funzioni. – indivisible

362

Questa soluzione ha funzionato meglio per me:

  1. Fai un macro (io ho usato Organizzare Le importazioni, codice di formato, Salva tutto)
  2. assegnare una combinazione di tasti (I calpestato Ctrl + s)

Nota: si dovrà selezionare la casella "non mostrare più questo messaggio" la prima volta per le importazioni organizzati, ma funziona come previsto dopo.

Step-by-step per IntelliJ 10.0:

  1. Codice -> "Ottimizza Le importazioni ...", se viene visualizzata una finestra di dialogo, selezionare la casella che dice "Non mostrare più questo messaggio." , quindi fare clic su "Esegui".
  2. Strumenti -> "Start Recording Macro"
  3. Codice -> "Ottimizza Le importazioni ..."
  4. Codice -> "Codice Riformatta ..."
  5. File -> "Salva tutto"
  6. Strumenti -> "Stop Registrazione macro"
  7. Nome della macro (qualcosa come "formattati salvare")
  8. In File -> Impostazioni -> Keymap, selezionare il macro situata in "Menu principale -> Strumenti ->" Salva formattato "
  9. Fare clic su" Aggiungi scorciatoia da tastiera ", quindi eseguire la sequenza di tasti desiderata. Se si sceglie Ctrl +s come me, vi chiederà cosa fare con il precedente Ctrl +s di scelta rapida. Rimuoverla. Puoi sempre riassegnarlo in seguito, se lo desideri.
  10. Buon divertimento!

per IntelliJ 11, sostituire

punto 2. con: Modifica -> Macro -> "Start Recording Macro"
punto 6. con: Modifica -> Macro -> "Stop Recording Macro"

Tutto il resto rimane lo stesso.

-Neil

IntelliJ 12

8. Le preferenze contengono le impostazioni Keymap. Usa il campo di input per filtrare il contenuto, come mostrato nello screenshot.

Intellij/Preferences/Keymap/Macros

+2

In IntelliJ 11: 1: avviare la registrazione macro: Modifica -> Macro -> Avvia registrazione macro. 2: Seguire le istruzioni sopra. 3: interrompe la registrazione macro: Modifica -> Macro -> Interrompe registrazione macro. Nella mappa tasti la macro viene salvata nella cartella Macro anziché nel menu principale -> cartella Strumenti. –

+2

Se sei soddisfatto di come il codice viene riformattato, questo approccio funziona molto meglio se scegli di riformattare ** tutto ** il codice nel progetto e salva tutto.In caso contrario, quando si apportano modifiche multi-file, solo quella attiva viene riformattata prima di salvare tutte le modifiche. –

+0

questo funziona anche per me in PyCharm;) – cwhisperer

7

Finii rebinding l'azione Reformat code...-Ctrl - S, sostituendo l'associazione per Save All default.

All'inizio può sembrare strano, ma IntelliJ sembra salvare praticamente ogni azione: eseguire test, creare il progetto, anche chiudendo una scheda di un editor. Ho l'abitudine di colpire Ctrl - S abbastanza spesso, quindi questo in realtà funziona abbastanza bene per me. È sicuramente più facile da digitare rispetto al bind predefinito per la riformattazione.

67

Di seguito viene aggiornata la risposta di Neil.

IntelliJ 13 Passi:

  1. Codice -> Codice Riformatta enter image description here
  2. Modifica -> Macro -> Start Registrazione macro
  3. Codice -> Codice Riformatta
  4. File -> Salva tutta
  5. Modifica -> Macro -> Arresta registrazione macro
  6. Nome della macro (qualcosa come "salvataggio formattato")
  7. File -> Impostazioni -> Keymap
  8. Fare clic con il pulsante destro del mouse sulla macro. Aggiungi scorciatoia da tastiera. Imposta la scorciatoia da tastiera su Control + S. enter image description here
  9. IntelliJ vi informerà di un conflitto di tasti di scelta rapida. Seleziona "Rimuovi" per rimuovere altri compiti.
+0

Ma questo rimuove l'azione "Salva". Ciò che il poster ha visto è che in Eclipse abbiamo la possibilità di formattare il codice e organizzare l'importazione automaticamente quando un file viene salvato. Questa opzione è (presumo) assente nell'idea IntelliJ. Questo è un lavoro su cui è necessario legare la chiave di salvataggio alla chiave di riformattazione. –

+1

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

+1

Penso che per il passaggio 1 intendi "Codice -> Mostra finestra di dialogo dei file riformattati" per impostare i valori predefiniti per la finestra di dialogo dei file riformattati (in modo che siano impostati correttamente per il passaggio 3 - Codice riformattato)? – studgeek

2

IntelliJ 14 & & 15: Quando si sta verificando nel codice in Impegnarsi dialogo modifiche, spuntare la casella di controllo codice di riformattazione, quindi IntelliJ sarà riformattare tutto il codice che si sta verificando in

.

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

+2

Cosa ho detto [qui] (http://stackoverflow.com/questions/3754333/what-is-the-shortcut-in-intellij-idea-to-find-method-functions/ 36825075 # comment61221258_36825075) – Tushar

+4

Attenzione che l'eccessiva promozione di una risorsa può essere interpretato dalla comunità come spam. Si consiglia di inviare buoni, relative risposte, e se uno o due capita di parlare di questo corso, va bene - ma se si sta affissione in ogni risposta, si sta per ottenere contrassegnato e cancellato. – ArtOfCode