Ответ 1
Посмотрите плагин JIndent; он коммерческий, но он может быть способен достичь сложных правил, которые вы ищете.
Инструмент формата Eclipse (Luna) не учитывает
for (...) {
, if (...) {
, } else {
, } catch (...) {
Выполнение 0 пустых строк перед закрытой закрывающей скобкой }
.
Выполнение 1 пустая строка после оси сиротской закрывающей скобки, за исключением случаев, когда за ней следует другая потерянная закрывающая скобка (правило 2, правило 3).
Терминология:
Пример:
...
someCall();
} // ORPHAN CLOSE BRACE - NO BLANK LINE BEFORE OR AFTER
} // ORPHAN CLOSE BRACE – BLANK LINE AFTER
someOtherCall();
} // ORPHAN CLOSE BRACE – NO BLANK LINE BEFORE
...
String result;
int foo = 1000;
// a blank line
for (int x = 0; x < foo; x++) {
// a blank line
if (x < value) {
// a blank line
try {
// a blank line
result = methodCall(x);
result.setBar(outtaReach);
handleResult(x, result);
x = z % 5;
// a blank line
} catch (Exception ex) {
// a blank line
doSomething(x, ex); // no blank line - orphan
}
// a blank line
} else {
// a blank line
otherCall(x); // no blank line - orphan
} // no blank line - orphan
}
// a blank line
...
Мои причины для этого - улучшить читаемость кода; Я позволю JVM справиться с оптимизацией. Мнения относительно моего желаемого стиля форматирования в стороне, есть способ обеспечить соблюдение этого конкретного стиля пустой строки в Eclipse? Возможно, есть плагин для этого, который я еще не нашел, или я бы нужно закодировать один?
Раздел "Пустые строки" форматирования Java-кода Eclipse не обеспечивает возможности принудительного применения или применения этого. Следует отметить, что я не хочу заставлять пустые строки между блоками кода, которые не имеют брекетов (см. Примеры блоков String | int
и result | handleResult()
выше).
Ближайшие настройки для этого:
Пустые строки в блоке компиляции
- Перед объявлением пакета: 0
- После объявления пакета: 1
- Перед импортом: 1
- Между группами импорта: 0
- После объявления импорта: 1
- Между объявлениями класса: 1
Пустые строки в объявлениях классов
- Перед первым объявлением: 1
- Перед объявлениями такого же типа: 1
- Перед объявлением класса участника: 1
- Перед полевыми объявлениями: 0
- Перед объявлением метода: 1
- В начале тела метода: 1
Существующие пустые строки
- Количество пустых строк для сохранения: 1
Посмотрите плагин JIndent; он коммерческий, но он может быть способен достичь сложных правил, которые вы ищете.
Uncrustify
должен быть в состоянии сделать это. К сожалению, он недоступен как плагин Eclipse