首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Eclipse中强制执行围绕非孤立大括号的空行?

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

Stack Overflow用户
提问于 2015-05-29 14:52:29
回答 2查看 858关注 0票数 16

Eclipse格式工具(露娜)没有考虑到

  1. 在非孤立的大括号之前和之后对非函数声明执行1行空白行.

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

  1. 在孤立的结束大括号}之前强制执行0空行。
  2. 在孤立的结束支撑后强制1空行,除非后面跟着另一个孤立的结束支撑(规则2胜过规则3)。

术语:

  • 非孤立=与运算符/关键字配对
  • 非函数=非类或方法声明

示例:

代码语言:javascript
复制
                ...
                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中强制执行这种特定的空行样式?也许有一个插件可以完成这个操作,但我还没有找到,或者我需要编写一个插件呢?

Eclipse的Java代码格式化程序的“空白线”部分没有提供执行或应用此功能的能力。注意,我不想在没有大括号的代码块之间强制使用空行(参见上面的String | intresult | handleResult()代码块作为示例)。

我最近的设置是:

编译单元中的空行

  • 包声明前:0
  • 货包申报后:1
  • 进口前报关前:1
  • 进口组间:0
  • 进口报关后:1
  • 类间声明:1

类声明中的空行

  • 在第一次声明之前:1
  • 在同一类声明之前:1
  • 在成员类别声明之前:1
  • 字段声明前:0
  • 方法声明前:1
  • 在方法体的开头:1

现有空白行

  • 要保留的空行数:1
EN

回答 2

Stack Overflow用户

发布于 2015-06-03 13:19:54

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

票数 1
EN

Stack Overflow用户

发布于 2015-06-08 17:40:52

Uncrustify应该能够做到这一点。不幸的是,它不能作为Eclipse插件使用

http://uncrustify.sourceforge.net/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30532711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档