如何在Eclipse中的非孤立大括号周围强制执行空行?

Jos*_*hDM 16 java eclipse code-formatting

Eclipse格式工具(Luna)不考虑

  1. 在非功能声明上执行非孤立括号之前和之后的1个空行.

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

  1. 在孤立的右大括号前强制执行0个空白行}.

  2. 在孤立的闭合支撑后执行1个空行,除非后面是另一个孤立的闭合支撑(规则2特朗普规则3).

术语:

  • non-orphaned =与operator/keyword配对
  • 非函数=不是类或方法声明

例:

                ...
                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
    ...
Run Code Online (Sandbox Code Playgroud)

我的理由是提高代码的可读性; 我会让JVM处理优化.关于我想要的格式化风格的意见除外,有没有办法在Eclipse中强制执行这种特殊的空白线条样式? 也许有一个我尚未找到的插件,或者我需要编写一个插件吗?

Eclipse的Java代码格式化程序的"空行"部分不提供强制执行或应用它的功能.值得注意的是,我不希望强制代码块之间的空行没有括号(见的String | intresult | handleResult()上面的代码块作为例子).

我最近的设置是:

编译单元中的空行

  • 包声明前:0
  • 包裹声明后:1
  • 进口申报前:1
  • 导入组之间:0
  • 进口申报后:1
  • 在类声明之间:1

类声明中的空行

  • 在第一次申报之前:1
  • 在宣布同类之前:1
  • 在成员类声明之前:1
  • 在字段声明之前:0
  • 在方法声明之前:1
  • 方法体初:1

现有空白行

  • 要保留的空行数:1

E-R*_*Riz 1

看看JIndent 插件;它是商业性的,但它可能能够实现您正在寻找的复杂规则。