Параметры Eclipse Formatter для '.' Выравнивание (Java) - программирование
Подтвердить что ты не робот

Параметры Eclipse Formatter для '.' Выравнивание (Java)

Я хотел бы, чтобы Eclipse отформатировал код, который вызывает строитель следующим образом:

final Item item = new Item.Builder()
                          .name("something")
                          .field("a value")
                          .build();

то есть. выравнивание по '.' символ из первой строки. Я могу вручную убедить Eclipse сделать это, совместив вторую строку (.name( "что-то" )), но любое автоматическое форматирование уничтожает это.

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

4b9b3361

Ответ 1

Выравнивание точно в точке точки невозможно, но разрывы строк для каждого вызова метода могут выполняться автоматически. Я создал этот вывод

void format() {
    Test test = new Test()
            .a()        // this call can also be configured to be one line above
            .b()
            .c();
}

выбрав вкладку "Укладка линии" в настройках форматирования, выбрав "Функциональные вызовы", "Квалифицированные вызовы", переключив политику переноса строк в поле со списком на Оберните все элементы, каждый элемент в новой строке и, наконец, проверка флажка Force split, даже если линия меньше максимальной ширины линии.

Вы можете получить первый вызов метода в первой строке, выбрав вместо этого политику "... кроме первого элемента".

Ответ 2

Создайте новый форматир:

Properties -> Formater -> Configure Workspace Settings -> New

то на вкладке Off/On Tags установите Enable Off/On tags

А затем просто окружайте свой код следующим образом:

/* @formatter:off */
final Item item = new Item.Builder()
                          .name("something")
                          .field("a value")
                          .build();
/* @formatter:on */

Ответ 3

Я думаю, вы можете добиться этого, используя "jalopy". Для Maven есть плагин, если вы используете Maven.

В случае, если вы хотите использовать jalopy, тогда параметр, который вас интересует, будет <methodCallChain> в элементе alignment, значение которого вы должны установить на true.

Отредактировано: плагин maven jalopy. Убедитесь, что вы нацеливаете фазу clean и используете цель format