我可以定义Eclipse清理规则的例外吗?

时间:2008-10-06 09:15:30

标签: java eclipse

Eclipse中的清理规则(首选项> Java>代码风格>清理)通常可以完美地工作并创建漂亮的代码。

但有时候,特别是对于注释和连接的字符串片段(如内联SQL查询),清理工作会使事情变得混乱,并破坏我的格式。

有没有办法对Eclipse 说“不要触摸这个文本块!我已经按照我喜欢的方式对其进行了格式化,你会使它的可读性降低”

7 个答案:

答案 0 :(得分:5)

我认为你并不是指“清理”,而是隐藏在“格式源代码”选项中。它在Preferences>中配置。 Java>代码风格>格式化。事实上,有一个名为“开/关标签”的选项。可悲的是,它默认是关闭的。你现在就这样写:

// @formatter:off
StringBuilder sql = new StringBuilder()
    .append("SELECT whatever \n")
    .append("FROM some_table");
// @formatter:on

在撰写本文时,接受的答案很可能是正确的,但是,如果我没有弄错的话,这是在Eclipse 3.5中引入的。

答案 1 :(得分:2)

我遇到了同样的问题,虽然我没有解决方案,但我可以告诉你我是如何解决这个问题的。

由于格式化的工作原理,我故意避免使用过长的代码行。一般来说,当我保持简短的线条时,它会更好地决定如何格式化代码。这甚至可以用于SQL语句,例如:

public static final String SELECT_SOMETHING = "SELECT"
        + "OBJECTID, THIS, THAT, THEOTHER, THING"
        + " FROM DBNAME.DBSCHEMA.TABLE_T"
        + " WHERE ID = ?";

此声明的格式合理,因为可能的项目被拆分并连接在一起。当我不这样做时,我得到了不可预知的结果:

public static final String SELECT_SOMETHING = "SELECT OBJECTID, SOMETHING FROM DBNAME.DBSCHEMA.TABLE_T WHERE ID = ?";

对于评论,我尽可能将它们全部放在一行,并允许它在进行格式化时自动换行。

此外,可以使用代码格式化程序更改样式,以使您的编码风格更好地工作。您可能希望团队中的每个人都使用相同的格式,以避免冲突。因为更容易与其他开发人员或使用源代码控制工具的先前版本进行比较,即使它使部分代码的可读性降低,使用格式化程序仍然对我有利。

但是,当格式化程序做出错误的决定时,我理解你的沮丧!

答案 2 :(得分:1)

感觉不好回答我自己的问题,但我现在有一个解决方法(注意:我将这些清理规则作为保存操作):

保存(使用Ctrl / Cmd-S,不知道你是如何保存的)代码,让Eclipse弄乱你的格式。然后只需按Ctrl / Cmd-Z即可撤消,然后立即重新保存。格式恢复为原始格式,似乎按预期保存。

答案 3 :(得分:1)

对于代码中的SQL语句,可以在每行的末尾添加单行注释字符。然后格式化程序无法重新格式化它。它不是必须这么做,但它比Eclipse格式化它更漂亮。

StringBuffer sql = new StringBuffer() //
   .append("SELECT whatever \n") //
   .append("FROM some_table");

答案 4 :(得分:0)

没有。 (据我所知,我遇到了同样的问题,看起来很多次很难......)

答案 5 :(得分:0)

(仅限Javadoc评论)

如果我有一个按照我喜欢的方式格式化的文本块,我会用< pre>< / pre>将它们括起来。标签

答案 6 :(得分:0)

如果你不想让一个字段成为最终字段(i.i:因为你想在调试时改变它),你只需在构造函数中将它分配给它自己。这将得到日食警告,但你的领域将保持非最终状态。