Как остановить Eclipse formatter от размещения всех перечислений на одной строке


у меня есть перечисления, такие как:

public static enum Command
{
login,
register,
logout,
newMessage
}

при форматировании файла вывод становится:

public static enum Command 
{
login, register, logout, newMessage
}
5 97

5 ответов:

ответ @wjans отлично работал для обычных перечислений, но не для перечислений с аргументами. Чтобы немного расширить его ответ, вот настройки, которые обеспечили наиболее разумное форматирование для меня в Eclipse Juno:

  1. Window>Preferences>Java>Code Style>Formatter
  2. клик Edit
  3. выберите Line Wrapping tab
  4. выберите enum объявление treenode
  5. Set Line wrapping policy до Wrap all elements, every element on a new line (...) так что теперь он говорит 3 из 3 в скобках.
  6. убрать Force split, even if line shorter than maximum line width (...) так что теперь он говорит 3 из 3 в скобках.
  7. выберите Constants treenode
  8. Регистрация Force split, even if line shorter than maximum line width

это устанавливает 3 подузла для перечисления treenode в ту же политику обертывания и ту же политику разделения силы, за исключением Constants treenode, поэтому ваши перечисления с аргументами будут отформатированы каждый на своей собственной строке. Аргументы будут только если они превышают максимального ширина.

примеры:

@wjans

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(
        0,
        255,
        0),
    RED(
        255,
        0,
        0)
}

описанное выше решение:

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(0, 255, 0),
    RED(255, 0, 0)
}

вы можете указать это в настройках форматирования:

  • Настройки: Java -- Стиль Кода -- Formatter
  • Нажать Редактировать
  • выберите вкладку "перенос строки"
  • выберите объявление' enum ' - > константы в поле слева
  • установите политику обертывания строк ,чтобы "обернуть все элементы, каждый элемент на новой строке"
  • проверить силу раскола...-

это тоже немного некрасиво, но если ваша политика компании мешает вам изменить форматер, вы можете просто поместить комментарии в конце строк, которые вы не хотите обернуть.

public static enum Command 
{
    login,//
    register,//
    logout,//
    newMessage//
};

это не очень хорошо, но вы можете отключить Eclipse formatter для некоторых разделов кода...

// @formatter:off
public static enum Command {
    login,
    register,
    logout,
    newMessage
};
// @formatter:on

опция находится в панели Windows - > настройки - > Java - >стиль кода - >форматер - >редактировать - >Off / On Tags

вам нужно установить политику переноса строк в объявлении перечисления для " констант."

установите политику обертывания в

  • обернуть все элементы, каждый элемент на новой строке

и

  • установите флажок " разделение силы, даже если строка короче, чем,,,,,