Come avere il form wrap code con IntelliJ?


135

Non riesco a formattare il mio codice in IntelliJ.

Riesco a vedere la linea di margine (di default a 120 colonne) ma sembra che l'attivazione dal menu:

Codice -> Riformatta codice

sta semplicemente ignorando questo margine.

Risposte:


91

Vuoi dire che il formatter non rompe le linee lunghe? Controlla Impostazioni / Impostazioni progetto / Stile codice / A capo.

Aggiornamento: nelle versioni successive di IntelliJ, l'opzione è in Impostazioni / Editor / Stile codice. E seleziona Wrap when typing reaches right margin.


1
questa opzione non c'è più, usando la versione 13.0.2, e il problema rimane ..
ipolevoy

34
@ipolevoy il nome dell'opzione è "Assicurati che il margine destro non venga superato"
madhead

13
L'opzione "Assicurati che il margine destro non venga superato" si trova in File / Impostazioni / Editor / Stile codice / Java / Confezione e parentesi graffe / Mantieni durante la riformattazione
Aaron,

questi ragazzi continuano a rinominare i tasti di impostazione per tutto il tempo
ACV

Questo è corretto, ma nelle nuove versioni sono state aggiunte ulteriori opzioni per fornire un controllo più preciso su ciò che può essere spostato. Vedere stackoverflow.com/a/52157389/1104581 per la risposta corrente corretta.
ipetrik

160

IntelliJ IDEA 14, 15, 2016 e 2017

Formatta il codice esistente

  1. Assicurarsi che il margine destro non venga superato

    File> Impostazioni> Editor> Stile codice> Java> A capo e parentesi graffe> Assicurati che il margine destro non venga superato

    Impostazioni file Garantire il giusto margine

  2. Riformattare il codice

    Codice> Riformatta codice ...

    Riformattare il codice

    oppure premi Ctrl+ Alt+L

    avvertimento Se hai qualcosa del genere:

    thisLineIsVeryLongAndWillBeChanged();   // comment
    

    verrà convertito in

    thisLineIsVeryLongAndWillBeChanged();   
    // comment  
    

    invece di

    // comment  
    thisLineIsVeryLongAndWillBeChanged();   
    

    Questo è il motivo per cui seleziono pezzi di codice prima di riformattare se il codice appare come nell'esempio precedente.

Avvolgere quando si digita raggiunge il margine destro

  • IntelliJ IDEA 14 : File> Impostazioni> Editor> Stile codice> A capo quando si digita raggiunge il margine destro

    Avvolgere durante la digitazione

  • IntelliJ IDEA 15, 2016 e 2017 : File> Impostazioni> Editor> Stile codice> Termina sulla digitazione

    Termina la digitazione


5
Sì! Questa è la vera risposta, grazie mille! Il punto è che Wrap when typing reaches right marginarriveranno in enormi problemi una volta che cambi qualcosa su una linea che è già stata chiusa. La tua risposta pulisce solo su invocazione. Combinato con una macro "salva e formatta" questo è oro puro!
Patrick,

1
Vorrei aggiungere una parola chiave qui, che è quello che si potrebbe cercare: questo è ciò che viene chiamato un involucro rigido (al contrario di un avvolgimento morbido : vedere la differenza qui ).
Iled,

1
C'è un modo per avere il numero corretto di linee piuttosto che assicurarsi che non superi il massimo? Es: scrivo una riga lunga, la divide in due righe, quindi elimino qualcosa nella prima riga e unisce nuovamente le due righe in una riga.
user2259659

1
Inoltre: nessuna guida per il 2018.1
8bitjunkie,

1
2017 "A capo automatico" non funziona. il testo oltrepassa ancora la linea e non succede nulla su riformattazione
tylik,

16

Abilitare "Assicurati che il margine destro non venga superato" non funziona per me in Intellij IDEA 2018.2. Ho trovato la soluzione alternativa, dobbiamo modificare tutti gli elementi di seguito da "Non avvolgere" in "Avvolgere se lungo".

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Dopodiché, possiamo vedere in anteprima quale tipo di avvolgimento verrà modificato guardando nel pannello di destra. Se siamo soddisfatti, fai clic su "OK" o "Applica" per applicare le modifiche. Finalmente abbiamo bisogno di un formato manuale usando CTRL+ ALT+ Lin Windows e Command+ Shift+ Lin MacOS.


Questo è stato anche il problema per me. Se la casella di controllo è impostata ma il resto viene lasciato sul valore predefinito IntelliJ tenta di avvolgere le linee, ma non può perché tutto è impostato su "Non avvolgere".
Ladro

12

Oppure puoi usare il collegamento:

Ctrl + Alt + L


4
Potresti pubblicare il nome di questa azione (Impostazioni -> Keymap)? Sulla maggior parte dei Linux la combinazione CTRL + ALT + L viene utilizzata per bloccare il computer. Non riesco nemmeno a usare "Trova azione tramite scorciatoia".
tomrozb,

2
@tomrozb questo collegamento è per Codice -> Riformatta codice.
AtomHeartFather

1
Questo blocca il mio schermo.
8bitjunkie,

3

Puoi creare una macro per Ctrl + Maiusc + S (ad esempio) che faccia tutto questo:

Modifica> Macro> Avvia registrazione macro (la registrazione verrà avviata). Clicca dove ti serve.

Per esempio:

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

Quindi, fai clic sul pulsante rosso in basso a destra dell'IDE per interrompere la registrazione Macro.

Imposta un nome macro.

Vai a File> Impostazioni> Macro> IL TUO NOME MACRO .

Tasto destro del mouse> Aggiungi scorciatoia da tastiera e digita Ctrl + Maiusc + S.


Questa è una funzione IDE di base. Le macro sono OTT e troppo complicate per qualcosa di così semplice.
8bitjunkie,

2

Per avvolgere il testo nell'editor di codice nella comunità IntelliJ IDEA 2020.1, attenersi alla seguente procedura:

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

inserisci qui la descrizione dell'immagine


0

Nell'ultima versione di Intellij 2020, abbiamo un'opzione chiamata soft-wrap questi file. Impostazioni -> Editor -> Generale -> avvolgi questi file. Seleziona questa opzione e aggiungi il tipo di file che devi avvolgere.

opzione Intellij avvolgente

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.