Как получить код обертывания форматтера с помощью IntelliJ?


135

Я не могу отформатировать свой код в IntelliJ.

Я вижу линию полей (по умолчанию 120 столбцов), но кажется, что активация из меню:

Код -> Переформатировать код

просто игнорирует эту маржу.

Ответы:


91

Вы имеете в виду, что форматер не разбивает длинные строки? Проверьте Настройки / Настройки проекта / Стиль кода / Обтекание.

Обновление: в более поздних версиях IntelliJ этот параметр находится в разделе «Настройки» / «Редактор» / «Стиль кода». И выберите Wrap when typing reaches right margin.


1
этой опции больше нет, используя версию 13.0.2, и проблема осталась ..
ipolevoy

34
@ipolevoy имя опции: «Убедитесь, что правое поле не превышено»
безумный

13
Параметр «Убедитесь, что правое поле не превышено» находится в Файл / Настройки / Редактор / Стиль кода / Java / Обтекание и фигурные скобки / Сохранить при переформатировании
Аарон

эти ребята все время переименовывают ключи настроек
ACV

Это правильно, но в новых версиях были добавлены дополнительные параметры для более точного контроля над тем, что можно обернуть. См. Stackoverflow.com/a/52157389/1104581 для правильного текущего ответа.
ipetrik

160

IntelliJ IDEA 14, 15, 2016 и 2017

Форматировать существующий код

  1. Убедитесь, что правое поле не превышено

    Файл> Настройки> Редактор> Стиль кода> Java> Обтекание и фигурные скобки> Убедитесь, что правое поле не превышено

    Настройки файла Убедитесь, что поле справа

  2. Переформатировать код

    Код> Переформатировать код ...

    Переформатировать код

    или нажмите Ctrl+ Alt+L

    предупреждение Если у вас есть что-то вроде этого:

    thisLineIsVeryLongAndWillBeChanged();   // comment
    

    он будет преобразован в

    thisLineIsVeryLongAndWillBeChanged();   
    // comment  
    

    вместо того

    // comment  
    thisLineIsVeryLongAndWillBeChanged();   
    

    Вот почему я выбираю фрагменты кода перед переформатированием, если код выглядит так, как в предыдущем примере.

Переносить при вводе до правого поля

  • IntelliJ IDEA 14 : Файл> Настройки> Редактор> Стиль кода> Обтекание при вводе до правого поля

    Переносить при наборе текста

  • IntelliJ IDEA 15, 2016 и 2017 : Файл> Настройки> Редактор> Стиль кода> Перенос при вводе

    Обертывание при наборе текста


5
Да! Это настоящий ответ, большое вам спасибо! Дело в том, что у него Wrap when typing reaches right marginвозникнут огромные проблемы, если вы измените что-то в строке, которая уже была обернута. Ваш ответ просто очищается при вызове. В сочетании с макросом «сохранить и отформатировать» это чистое золото!
Патрик

1
Я хотел бы добавить здесь одно ключевое слово, которое, возможно, нужно искать: это то, что называется жесткой пленкой (в отличие от мягкой - см. Разницу здесь ).
ILED

1
Есть ли способ иметь правильное количество строк, а не просто гарантировать, что оно не превышает максимальное? Пример: я набираю длинную строку, она разбивает ее на две строки, затем я удаляю что-то в первой строке, и она объединяет две строки обратно в одну.
user2259659

1
Также: Нет указаний на 2018.1
8bitjunkie

1
2017 «Перенос текста» не работает. текст по-прежнему пересекает черту, и при переформатировании ничего не происходит
tylik

16

Включение «Убедитесь, что правое поле не превышено» у меня не работает в Intellij IDEA 2018.2. Я нашел обходной путь, нам нужно изменить все элементы ниже с «Не переносить» на «Переносить, если долго».

введите описание изображения здесь введите описание изображения здесь

После этого мы можем предварительно просмотреть, какой тип обтекания будет изменен, посмотрев на правую панель. Если мы удовлетворены, нажмите «ОК» или «Применить», чтобы применить изменения. Наконец, нам нужен ручной формат с использованием CTRL+ ALT+ Lв Windows и Command+ Shift+ Lв MacOS.


Это тоже было проблемой для меня. Если этот флажок установлен, но остальное оставлено по умолчанию, IntelliJ пытается обернуть строки, но не может, потому что все установлено на «Не переносить».
Грабитель

12

Или вы можете использовать ярлык:

Ctrl + Alt + L


4
Не могли бы вы опубликовать название этого действия (Настройки -> Раскладка)? В большинстве Linux комбинация CTRL + ALT + L используется для блокировки компьютера. Я даже не могу использовать "Найти действие по ярлыку".
tomrozb 02

2
@tomrozb - это ярлык для Code -> Reformat Code.
AtomHeartFather 01

1
Это блокирует мой экран.
8bitjunkie

3

Вы можете создать макрос для Ctrl + Shift + S (например), который делает все это:

Правка> Макросы> Начать запись макроса (начнется запись). Щелкните там, где вам нужно.

Например:

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

Затем нажмите красную кнопку в правом нижнем углу среды IDE, чтобы остановить запись макроса.

Задайте имя макроса.

Перейдите в Файл> Настройки> Макросы> НАЗВАНИЕ ВАШЕГО МАКРОСА .

Щелкните правой кнопкой мыши> Добавить сочетание клавиш и введите Ctrl + Shift + S.


Это базовая функция IDE. Макросы - это OTT, и они слишком сложны для чего-то столь простого.
8bitjunkie

2

Чтобы обернуть текст в редакторе кода в сообществе IntelliJ IDEA 2020.1, выполните следующие действия:

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

введите описание изображения здесь


0

В последней версии Intellij ver 2020 у нас есть опция под названием soft-wrap этих файлов. Настройки -> Редактор -> Общие -> мягко оберните эти файлы. Отметьте эту опцию и добавьте тип файлов, которые вам нужно обернуть.

опция soft wrap intellij

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.