Можно ли настроить форматировщик Eclipse для правильного отступа нескольких строк между скобками?
Можно ли настроить (или расширить) модуль форматирования затмения и очистки кода, чтобы добавить отступ, который я ожидаю в следующих примерах:
public static void main(String[] args) {
String[] numbers = new String[] {
"one",
"two",
"three",
"four",
};
new MessageFormat("{0} {1} {2} {3}").format(
"this is string one",
"this is string two",
"this is string three"
);
System.out.println(
new MessageFormat("{0} {1} {2} {3}").format(
new String[]{
"this is string zero",
"this is string one",
"this is string two",
"this is string three"
}
)
);
}
Я поиграл со всеми настройками, которые я могу найти. Опция «никогда не объединять строки» не позволяет полностью разделить код, но даже в этом случае отступы удаляются, и код получается так:
String[] numbers = new String[] {
"one",
"two",
"three",
"four",
};
new MessageFormat("{0} {1} {2} {3}").format(
"this is string one",
"this is string two",
"this is string three"
);
System.out.println(
new MessageFormat("{0} {1} {2} {3}").format(
new String[] {
"this is string zero",
"this is string one",
"this is string two",
"this is string three"
}
)
);
Я обнаружил возможность отключать форматирование вокруг таких блоков, как это:
// @formatter:off
String[] numbers = new String[] {
"one",
"two",
"three",
"four",
};
// @formatter:on
Это неплохая работа, за исключением того, что мой код в конечном итоге завален ими, а часть «правильного отступа» при очистке кода игнорирует директиву и в любом случае портит отступ.
Редактировать: я нашел настройки для «Перенос строки» -> «По умолчанию отступ для обернутых строк» и «По умолчанию отступ для инициализации массива» и установил их в «1» вместо «0». Это лучше для инициализаторов массива, но по-прежнему не имеет отступа закрывающего parethesis, чтобы соответствовать открывающей скобке так, как я хочу:
public static void main(String[] args) {
String[] numbers = new String[] {
"one",
"two",
"three",
"four",
};
new MessageFormat("{0} {1} {2} {3}").format(
"this is string one",
"this is string two",
"this is string three"
);
System.out.println(
new MessageFormat("{0} {1} {2} {3}").format(
new String[] {
"this is string zero",
"this is string one",
"this is string two",
"this is string three"
}
)
);
}