如何让Eclipse不格式化代码部分?
如何让Eclipse不格式化代码部分?
我有一些包含SQL语句的Java代码,这些语句是用Java字符串编写的(请不要争论OR / M问题,嵌入的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-FORMATTING
→ STOP-FORMATTING
)。
Eclipse 3.6 允许您通过放置特殊注释来关闭格式化,例如
// @formatter:off ... // @formatter:on
在Eclipse首选项中需要打开“开/关”功能:Java >Code Style >Formatter。点击Edit,Off/On Tags,启用Enable Off/On tags。
还可以在首选项中更改魔术字符串 - 在此查看Eclipse 3.6文档。
更多信息
Java >Code Style >Formatter >Edit >Off/On Tags
此首选项允许您定义一个标签以禁用,并定义一个标签以启用格式化程序(请参阅格式化程序文件档案中的Off/On Tags选项卡):
您还需要启用Java Formatting标志。