如何关闭某些Java代码段的Eclipse代码格式化程序?

我有一些Java代码,用SQL语句写成Java字符串(请不要使用OR / M flamewars,嵌入式SQL就是这样 - 不是我的决定)。

为了便于维护,我已将SQL语句语义分解为多行代码中的几个连接字符串。 所以不是这样的:

String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";

我有这样的东西:

String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";

这种风格使SQL更易于阅读和维护(恕我直言),特别是对于大型查询。 例如,我可以让我的编辑器进入“覆盖”模式,并相当容易地就地修改文本。

请注意,此问题在SQL的特定示例之外进行了概括。 任何使用垂直格式编写的代码,特别是表格结构,都容易被漂亮的打印机破坏。

现在,一些项目成员使用Eclipse编辑器,并且格式化整个源文件时常常销毁语义格式。

有没有办法指示Eclipse忽略格式化方面的某些源代码行?

我正在寻找一些特殊的评论来切换Eclipse格式化程序。 理想情况下,这样的评论可以根据我们的选择进行配置,其他格式化程序也可以通过编程来尊重它:

// STOP-ECLIPSE-FORMATTING
String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";
// START-ECLIPSE-FORMATTING

很明显,一个“解决方案”是让我们的团队成员在Jalopy或JIndent等外部格式化器上实现标准化,但这不是这个问题所关心的问题(也不是我对这个项目的决定):我专门寻找一种方法避免Eclipse格式化器临时使用。

理想情况下,解决方案将允许我为Eclipse格式化程序插入指令, 而无需团队成员使用Eclipse来执行任何IDE重新配置 (除了可能选择格式化程序不可知的命令注释: STOP-ECLIPSE-FORMATTINGSTOP-FORMATTING )。


Eclipse 3.6允许您通过放置特殊注释来关闭格式化

// @formatter:off
...
// @formatter:on

在Eclipse首选项中必须打开/关闭功能:Java> Code Style> Formatter。 点击编辑,关/开标签,启用启用关/开标签。

也可以在首选项中更改魔术字符串 - 在此查看Eclipse 3.6文档。

更多信息

Java>代码样式>格式化>编辑>关闭/打开标签

此首选项允许您定义一个禁用标签和一个标签以启用格式化程序(请参阅格式程序配置文件中的关/开标签选项卡):

在这里输入图像描述

您还需要启用Java格式化中的标志


来自Eclipse 3.5 M4的AFAIK在格式化程序中有一个选项“Never Join Lines”,它保留了用户换行符。 也许那是你想要的。

否则有这个丑陋的黑客

String query = //
    "SELECT FOO, BAR, BAZ" + //
    "  FROM ABC"           + //
    " WHERE BAR > 4";

不要关闭格式,您可以将其配置为不加入已包装的行。 类似于Jitter的回应,这里是Eclipse STS:

属性→Java代码样式→格式化程序→启用项目特定设置或配置工作区设置→编辑→换行(选项卡)→选中“永不加入已包装的行”

保存,应用。

在这里输入图像描述

链接地址: http://www.djcxy.com/p/16097.html

上一篇: How to turn off the Eclipse code formatter for certain sections of Java code?

下一篇: How can I show line numbers in Eclipse?