2015-05-15 4 views
7

Когда рефакторинга кода (например .: Refactor ->Rename) IntelliJ IDEA 14.x также rewraps (переформатирует) мой код, чтобы вписаться в лимит 80 столбцов.Как остановить IDEA от переформатирования моего кода при рефакторинге?

Пример: вот код перед рефакторинга: enter image description here

Рефакторинг в процессе: enter image description here

... и код повторно обернута раз жму Enter: enter image description here

Что наиболее раздражает, даже классы Java, которые в настоящее время не открыты в редакторе (но подвержены рефакторингу), переформатируются, что увеличивает вероятность того, что forma Изменения tting распространяются в мой VCS незаметно.

То, что я хочу достичь, это:

  • сохранить первоначальный запас печати в 80 колонок, но до сих пор
  • есть IDEA сохранить свое оригинальное форматирование при переименовании переменных/классов/методов.

Как это достичь?

+2

Я никогда не замечал эту проблему сам. Мне интересно, может ли быть ваша проблема в настройках-> Редактор-> Стиль кода-> Java-> Обертка и брекеты? – Travis

+0

Эти настройки должны влиять только на * ручной * форматирование (т. Е. Вызывается через * Код * -> * Код реформата ... *). Я говорю о неявном переформатировании - дело не в том, что «форматирование ведет себя неправильно»: вместо этого форматирование никогда не должно происходить. – Bass

+0

https://www.jetbrains.com/idea/webhelp10.5/wrapping-and-braces.html –

ответ

0

Поскольку я не использую автоматическое форматирование и, в основном, переношу свои длинные строки вручную, я понял другое решение.

Под "Файл -> Настройки -> Редактор -> Code Style -> Java -> Упаковочная и брекеты", Я отключил автоматическое обертывание полностью (т.е. установить все, чтобы "Не обернуть" в случае необходимости , за исключением аннотаций класса, метода и поля, которые установлены на «Поворот всегда» по умолчанию).

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

0

Если вы делаете реальную «Рефакторинга -> Переименовать», например, с SHIFT + F6 вы редактируете каждый файл, который имеет ссылку на это переменное имя ли они или нет в настоящее время открыты в редактор не имеет значения, если вы измените что-то, все редактируемые файлы отредактированы, и любой VCS рассмотрит их изменен.

Поведение переформатирования всего файла при рефакторинге было в Идеи долгое время, и все ошибки, которые были поданы против этого поведения, устанавливались в неназначенном состоянии навсегда. Here is one example.

Я сомневаюсь, что это поведение изменится, я надеюсь, что это не так.

Если вы хотите смехотворно долгое имя переменной, вам необходимо либо отменить правое поле, либо сделать его смехотворным долго. Или изменить любую конфигурацию, чтобы вещи были отформатированы по-разному.

Лично я установил все соответствующие вещи в ALWAYS, так что у меня нет каких-то форматированных в некотором роде вещей, а что-то отформатировано по-другому. Консистенция важнее всего в большой базе кода.

Инструменты VCS в Idea чрезвычайно мощные и непревзойденные в любой другой среде IDE. Вы можете легко увидеть, что изменилось и исключить их из любых коммитов или исправить их, как вы хотите.

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

+0

Спасибо. Ни Eclipse, ни IDEA не применяют какую-либо политику «формата при сохранении», и я очень редко видел «политику форматирования по фиксации» VCS. Таким образом, это безусловное поведение означает меньшую свободу для разработчиков и, как ни странно, странно. Если длинная строка немного превышает границу печати, я бы предпочел, чтобы она была развернута. – Bass

Смежные вопросы