Есть ли какая-либо переменная во внешнем средстве форматирования (org.eclipse.jdt.core.formatter ......), чтобы обеспечить выполнение каждой переменной перечисления в отдельной строке?
Парамеш Корракути
Ответы:
198
Ответ @wjans отлично работал для обычных перечислений, но не для перечислений с аргументами. Чтобы немного расширить его ответ, вот настройки, которые предоставили мне наиболее разумное форматирование в Eclipse Juno:
Window> Preferences> Java> Code Style>Formatter
Нажмите Edit
Выберите Line Wrappingвкладку
Выберите режим enumобъявления
Установите Line wrapping policyна Wrap all elements, every element on a new line (...)так теперь говорит 3 из 3 в скобках.
Снимите флажок, Force split, even if line shorter than maximum line width (...)чтобы теперь в скобках было 3 из 3.
Выберите Constantstreenode
Проверьте Force split, even if line shorter than maximum line width
Это устанавливает для трех подузлов для enum treenode одну и ту же политику упаковки и одну и ту же политику принудительного разделения, за исключением Constants treenode, поэтому ваши перечисления с аргументами будут отформатированы каждый в отдельной строке. Аргументы будут переноситься только в том случае, если они превышают максимальную ширину строки.
Для меня все еще выглядит неправильно в средстве предварительного просмотра eclipse, но когда я попробовал его на реальном источнике, он работал как шарм. Спасибо.
Бен Терли
50
Вы можете указать это в настройках средства форматирования:
Предпочтения: Java - Стиль кода - Форматирование
Нажмите Edit
Выберите вкладку "Перенос строк".
Выберите объявление enum -> Константы в поле слева
Установите для политики переноса строки значение «Переносить все элементы, каждый элемент на новую строку»
У меня была эта проблема несколько месяцев. То, что я не пробовал, было «силовым разделением». Не уверен, зачем это нужно, так как вы могли подумать, что «обернуть все элементы» на самом деле обернет все элементы! Спасибо за решение.
LegendLength
11
Это тоже немного некрасиво, но если политика вашей компании не позволяет вам изменить средство форматирования, вы можете просто поместить комментарии в конце строк, которые вы не хотите переносить.
Это работает ... вроде как. Теперь компилятор считает, что это ошибка. Помещение их в комментарии преодолевает эту проблему, например // @formatter: off
Боб Кухар
4
Вам необходимо установить политику переноса строк в объявлении enum для «Константы».
Установите для политики упаковки значение
Перенести все элементы, каждый элемент на новую строку
И
Установите флажок "Force Split, даже если строка короче ,,,,,
Ответы:
Ответ @wjans отлично работал для обычных перечислений, но не для перечислений с аргументами. Чтобы немного расширить его ответ, вот настройки, которые предоставили мне наиболее разумное форматирование в Eclipse Juno:
Window
>Preferences
>Java
>Code Style
>Formatter
Edit
Line Wrapping
вкладкуenum
объявленияLine wrapping policy
наWrap all elements, every element on a new line (...)
так теперь говорит 3 из 3 в скобках.Force split, even if line shorter than maximum line width (...)
чтобы теперь в скобках было 3 из 3.Constants
treenodeForce split, even if line shorter than maximum line width
Это устанавливает для трех подузлов для enum treenode одну и ту же политику упаковки и одну и ту же политику принудительного разделения, за исключением
Constants
treenode, поэтому ваши перечисления с аргументами будут отформатированы каждый в отдельной строке. Аргументы будут переноситься только в том случае, если они превышают максимальную ширину строки.Примеры:
@wjans
Решение, описанное выше:
источник
Вы можете указать это в настройках средства форматирования:
источник
Это тоже немного некрасиво, но если политика вашей компании не позволяет вам изменить средство форматирования, вы можете просто поместить комментарии в конце строк, которые вы не хотите переносить.
источник
Это неприятно, но вы можете отключить форматировщик Eclipse для некоторых участков кода ...
эта опция находится в Windows-> Preferences-> Java-> Code Style-> Formatter-> Edit-> Off / On Tags панель
источник
Вам необходимо установить политику переноса строк в объявлении enum для «Константы».
Установите для политики упаковки значение
И
источник
Просто добавляю последнюю версию Eclipse 2018.9
Window > Preferences > Java > Code Style > Formatter
-Edit
Line Wrapping
узел дерева.Wrapping settings
'enum' declaration
Constants
иConstant arguments
.Константы должны быть
Wrap all elements, every element on a new line
. Постоянные аргументы нужныWrap where necessary
.источник