Jak sprawić, by program formatujący zawijał kod za pomocą IntelliJ?


137

Nie mogę sformatować swojego kodu w IntelliJ.

Widzę linię marginesu (domyślnie 120 kolumn), ale wygląda na to, że aktywacja z menu:

Kod -> Sformatuj ponownie kod

po prostu ignoruje ten margines.

Odpowiedzi:


92

Czy masz na myśli to, że formater nie łamie długich linii? Sprawdź Ustawienia / Ustawienia projektu / Styl kodu / Zawijanie.

Aktualizacja: w późniejszych wersjach IntelliJ opcja znajduje się w obszarze Ustawienia / Edytor / Styl kodu. I wybierz Wrap when typing reaches right margin.


1
tej opcji już nie ma, używam wersji 13.0.2 i problem pozostaje ...
— ipolevoy

34
@ipolevoy nazwa opcji to „Upewnij się, że prawy margines nie jest przekroczony”
— szalony

13
Opcja „Upewnij się, że prawy margines nie jest przekroczona” znajduje się w Plik / Ustawienia / Edytor / Styl kodu / Java / Opakowania i nawiasy klamrowe / Zachowaj podczas ponownego formatowania
— Aaron

1
ci faceci cały czas zmieniają nazwy klawiszy ustawień
— ACV

To prawda, ale w nowych wersjach dodano dodatkowe opcje, aby zapewnić lepszą kontrolę nad tym, co można opakować. Zobacz stackoverflow.com/a/52157389/1104581, aby uzyskać poprawną aktualną odpowiedź.
— ipetrik

163

IntelliJ IDEA 14, 15, 2016 i 2017

Sformatuj istniejący kod

  1. Upewnij się, że nie został przekroczony prawy margines

    Plik> Ustawienia> Edytor> Styl kodu> Java> Zawijanie i nawiasy klamrowe> Upewnij się, że prawy margines nie jest przekroczony

    Ustawienia plików Zapewnij właściwy margines

  2. Sformatuj ponownie kod

    Kod> Sformatuj ponownie kod ...

    Sformatuj ponownie kod

    lub naciśnij Ctrl+ Alt+L

    ostrzeżenie Jeśli masz coś takiego:

    thisLineIsVeryLongAndWillBeChanged();   // comment
    

    zostanie przekonwertowany na

    thisLineIsVeryLongAndWillBeChanged();   
    // comment  
    

    zamiast

    // comment  
    thisLineIsVeryLongAndWillBeChanged();   
    

    Dlatego wybieram fragmenty kodu przed ponownym formatowaniem, jeśli kod wygląda tak, jak w poprzednim przykładzie.

Zawijaj, gdy wpisywanie osiągnie prawy margines

  • IntelliJ IDEA 14 : Plik> Ustawienia> Edytor> Styl kodu> Zawijaj, gdy wpisywanie osiągnie prawy margines

    Zawijaj podczas pisania

  • IntelliJ IDEA 15, 2016 i 2017 : Plik> Ustawienia> Edytor> Styl kodu> Zawijaj podczas pisania

    Zawijaj podczas pisania


5
Tak! To jest właściwa odpowiedź, bardzo dziękuję! Chodzi o to, że Wrap when typing reaches right marginbędzie miał ogromne kłopoty, gdy zmienisz coś w linii, która została już zapakowana. Twoja odpowiedź oczyszcza się po wezwaniu. W połączeniu z makrem „zapisz i sformatuj” to czyste złoto!
— avalancha

1
Chciałbym tutaj dodać jedno słowo kluczowe, którego można szukać: tak nazywa się twardy wrap (w przeciwieństwie do miękkiego wrapa - zobacz różnicę tutaj ).
— iled

1
Czy istnieje sposób, aby mieć poprawną liczbę wierszy, zamiast po prostu zapewnić, że nie przekracza maksymalnej? Np .: Wpisuję długą linię, dzieli ją na dwie linie, a następnie usuwam coś w pierwszej linii i łączy dwie linie z powrotem w jedną linię.
— user2259659

1
Ponadto: Brak wskazówek na 2018.1
— 8bitjunkie

1
2017 „Zawijaj podczas pisania” nie działa. tekst nadal przekracza linię i nic się nie dzieje po
— ponownym

17

Włączenie „Upewnij się, że prawy margines nie jest przekroczony” nie działa dla mnie w Intellij IDEA 2018.2. Znalazłem obejście, musimy zmienić wszystkie poniższe elementy z „Nie zawijaj” na „Zawijaj, jeśli długie”.

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

Następnie możemy podejrzeć, jaki rodzaj owinięcia zostanie zmieniony, patrząc w prawy panel. Jeśli jesteśmy zadowoleni, kliknij „OK” lub „Zastosuj”, aby zastosować zmiany. Wreszcie potrzebujemy ręcznego formatu, używając CTRL+ ALT+ Lw Windows i Command+ Shift+ Lw MacOS.


To też był problem dla mnie. Jeśli to pole wyboru jest zaznaczone, ale reszta jest domyślnie ustawiona, IntelliJ próbuje zawijać wiersze, ale nie może, ponieważ wszystko jest ustawione na „Nie zawijaj”.
— Robber

12

Możesz też użyć skrótu:

Ctrl + Alt + L


4
Czy możesz opublikować nazwę tej akcji (Ustawienia -> Mapa klawiszy)? W większości systemów Linux do blokowania komputera używana jest kombinacja CTRL + ALT + L. Nie mogę nawet użyć funkcji „Znajdź działanie za pomocą skrótu”.
— tomrozb

2
@tomrozb ten skrót dotyczy kodu -> przeformatuj kod.
— AtomHeartFather

1
To blokuje mój ekran.
— 8bitjunkie

4

Aby zawinąć tekst w edytorze kodu w społeczności IntelliJ IDEA 2020.1, wykonaj następujące kroki:

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

wprowadź opis obrazu tutaj


3

Możesz utworzyć makro dla Ctrl + Shift + S (na przykład), które robi to wszystko:

Edycja> Makra> Rozpocznij nagrywanie makr (rozpocznie się nagrywanie). Kliknij, gdzie potrzebujesz.

Na przykład:

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

Następnie kliknij czerwony przycisk w prawym dolnym rogu IDE, aby zatrzymać nagrywanie makra.

Ustaw nazwę makra.

Przejdź do Plik> Ustawienia> Makra> TWOJA NAZWA MAKRA .

Kliknij prawym przyciskiem myszy> Dodaj skrót klawiaturowy i naciśnij Ctrl + Shift + S.


To jest podstawowa funkcja IDE. Makra są OTT i są zbyt skomplikowane na coś tak prostego.
— 8bitjunkie

2

W najnowszej wersji Intellij 2020 mamy opcję o nazwie soft-wrap te pliki. Ustawienia -> Edytor -> Ogólne -> miękkie zawijanie tych plików. Zaznacz tę opcję i dodaj typ plików, które chcesz zawinąć.

opcja soft wrap intellij

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.