我有一些Java代码,其中包含作为Java字符串编写的SQL语句(请不要进行ORM争论,嵌入式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
)。