Как принудительно использовать пустые строки вокруг не-осиных фигурных скобок в Eclipse?

Инструмент формата Eclipse (Luna) не учитывает

  • Выполнение 1 пустой строки до и после не-осиной фигурной скобки при объявлении нефункции.

for (...) {, if (...) {, } else {, } catch (...) {

  1. Выполнение 0 пустых строк перед закрытой закрывающей скобкой }.

  2. Выполнение 1 пустая строка после оси сиротской закрывающей скобки, за исключением случаев, когда за ней следует другая потерянная закрывающая скобка (правило 2, правило 3).

Терминология:

  • non-orphaned = в паре с оператором/ключевым словом
  • non-function = не объявление класса или метода

Пример:

                ...
                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

Ответы

Ответ 1

Посмотрите плагин JIndent; он коммерческий, но он может быть способен достичь сложных правил, которые вы ищете.

Ответ 2

Uncrustify должен быть в состоянии сделать это. К сожалению, он недоступен как плагин Eclipse

http://uncrustify.sourceforge.net/