如何关闭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易于阅读和维护(IMHO),特别是对于较大的查询。例如,我可以把我的编辑器变成“覆盖”模式并且很容易地修改文本。
 请注意,此问题概括于SQL的特定示例之外。任何使用任何垂直格式编写的代码,特别是表格结构,都易受到漂亮的打印机的破坏。
现在,一些项目成员使用Eclipse编辑器,并且格式化整个源文件时,语义格式通常会被破坏。
 有没有办法指示Eclipse忽略与格式有关的某些来源?
我正在寻找像特殊的注释,切换Eclipse格式化程序。理想情况下,这样的评论可以被配置为我们选择的任何内容,而其他格式化程序也可以被编程为尊重它:

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

显然,一个“解决方案”是让我们的团队成员在JalopyJIndent之间的一些外部格式化器上进行标准化,但这不是这个问题(也不是我对这个项目的决定):我特意看以避免Eclipse格式化程序的临时性。
理想情况下,解决方案将允许我插入Eclipse格式化程序而不需要团队成员使用Eclipse来执行任何IDE重新配置的指令(除了可能选择格式化程序不可知命令注释:STOP-ECLIPSE-FORMATTINGSTOP-FORMATTING)。

回答:

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

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

在Eclipse首选项中必须打开/关闭功能:Java > Code Style > Formatter。点击EditOff/On Tags,启用Enable Off/On tags
也可以在首选项中更改魔术字符串 – check out the Eclipse 3.6 docs here
 更多信息
 Java > Code Style > Formatter > Edit > Off/On Tags
此偏好设置允许您定义一个禁用的标签和一个标签以启用格式化程序(请参阅格式化程序配置文件中的“关闭/开启标签”选项卡):
 enter image description here
您还需要启用Java Formatting中的标志

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How to turn off the Eclipse code formatter for certain sections of Java code?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 68 = 74