Можно ли настроить (или расширить) средство форматирования 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». Это лучше для инициализаторов массива, но по-прежнему не смещает закрывающий паретез, чтобы он соответствовал открывающей скобке, как я хочу:
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"
}
)
);
}