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

299

Я хотел бы выборочно отключить средство форматирования кода IntelliJ IDEA для части кода, как я могу в Eclipse . Поддерживает ли IntelliJ эту функцию, и если да, то как ее использовать?

Грег Маттес
источник
1
Официальная документация для пропуска некоторой части кода с использованием комментариев: jetbrains.com/help/idea/…
Mayank Patel

Ответы:

542

Начиная с версии 13, код можно обернуть

// @formatter:off
...
// @formatter:on 

IntelliJ IDEA v.14 +:

Настройки> Редактор> Стиль кода> Элемент управления форматирования

IntelliJ IDEA v.2016 +:

Настройки> Редактор> Стиль кода

IntelliJ IDEA v.2018 +:

Файл> Настройки> Редактор> Стиль кода

Вы можете изменить маркеры управления форматером, если они находятся в комментариях.

Карлос Фонсека
источник
1
В настоящее время @formatter:on(или как вы определяете) ничего не делает, если @formatter:offуже не присутствовал. Возможно, есть другие способы отключить переформатирование - или заставить редактор не переформатировать ваш код автоматически. Поиск ваших предпочтений. Этот параметр предназначен для управления разделами, которые не следует переформатировать, например, при ручном выполнении «Переформатирования».
Луи Сент-Амур
85
Вы должны перейти к Preferences-> Code Style-> General-> Formatter Controlи проверить, Enable formatter markers in commentsчтобы это работало.
Хит Границы
13
В 14 это находится в Предпочтения> Редактор> Стиль кода> Управление форматированием
Emerson Farrugia
3
В версии 2016.x он находится в меню «Настройки»> «Редактор»> «Стиль кода».
Филипп
9
Почему эта опция отключена по умолчанию? Кажется очень полезным помещать маркеры в код и ограничивать форматирование для всей команды.
Тимур Ярош
173

Обратите внимание, что для ответа Карлоса @formatter:offи @formatter:onдля работы вам может понадобиться сначала включить настройку:

В настройках IntelliJ в разделе Стиль кода, Общие, Контроль форматирования есть флажок «Включить маркеры форматирования в комментариях».

Обнаружено через Как настроить intellij-идею, не форматируя некоторую часть кода?

IDEA-56995 Отключено форматирование кода для региона с помощью комментариев

Луи Сен-Амур
источник
7
Я хочу отключить это для всего проекта
ммм
4
Выполните поиск в настройках «Переформатировать», чтобы увидеть флажки для нескольких способов, которыми IntelliJ автоматически переформатирует код: при вставке, при вводе закрывающей фигурной скобки, из шаблонов ... Вы действительно можете покопаться, если хотите изменить функциональность. Не то чтобы это всегда имело смысл. Используйте поддержку IntelliJ, если задаете вопрос, или их трекер ошибок, если делаете предложение.
Луи Сент-Амур
1
В равной степени возможно, что включение регулярных выражений с последующим использованием в .качестве инструкции выключения форматера может сработать. Пока первая строка в вашем файле может быть переформатирована. Хотя никаких гарантий. :)
Луи Сент-Амур
26

В XML-файлах используйте:

<!-- @formatter:off -->
<!-- @formatter:on -->
olsli
источник
2
Не работает в XML-файлах. Android Studio 3.4.1 на базе Intelli-J.
Вито Валов
Он не работает в IntelliJ IntelliJ IDEA 2020.1.2, если вы не включите его в разделе «Файл / Настройки / Редактор / Стиль кода» в разделе «Управление форматером».
Тони Фалабелла
9

Устаревший ответ с 2010 года:

Нет, сейчас это невозможно, я отправил новый номер, который вы можете отследить.

В качестве временного решения вы можете использовать внешний модуль форматирования для IDEA, который может использовать форматировщик кода Eclipse (я не проверял, поддерживается ли эта конкретная опция).

CrazyCoder
источник
2
Ты за подачу заявки, даже когда это было 5 лет назад - сегодня мне это помогло :-)
Gizzmo