我有一些Java代码,其中的SQL语句编写为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更易于阅读和维护(IMHO),尤其是对于较大的查询。 例如,我可以将编辑器置于“覆盖”模式并相当容易地就地修改文本。
请注意,此问题超出了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
)。
#1楼
@xpmatteo可以禁用部分代码,但是除此之外,默认的eclipse设置应该设置为仅格式化已编辑的代码行,而不是整个文件。
Preferences->Java->Editor->Save Actions->Format Source Code->Format Edited Lines
因为您的同事正在重新格式化他们实际上没有更改的代码,所以这首先可以防止它发生。 这是一个很好的做法,可以防止使源代码控件上的差异变得无用的麻烦(当由于格式设置的微小差异而重新格式化整个文件时)。
如果关闭了开/关标签选项,这也将阻止重新格式化。
#2楼
这个hack的作品:
String x = "s" + //Formatter Hack
"a" + //
"c" + //
"d";
我建议不要使用格式化程序。 错误的代码应该看起来不好而不是人为地好。 好的代码需要时间。 您不能欺骗质量。 格式化是源代码质量的一部分。
#3楼
格式化程序上的Eclipse 3.5 M4的AFAIK具有一个选项“从不连接线”,它保留用户换行符。 也许这就是您想要的。
否则会有这个丑陋的骇客
String query = //
"SELECT FOO, BAR, BAZ" + //
" FROM ABC" + //
" WHERE BAR > 4";
#4楼
如果将加号放在行首,则格式会有所不同:
String query =
"SELECT FOO, BAR, BAZ"
+ " FROM ABC"
+ " WHERE BAR > 4";
#5楼
您可以使用另一种解决方案来禁止特定块注释的格式。 在块注释的开头使用/*-
(注意连字符),如果格式化文件的其余部分,则格式不会受到影响。
/*-
* Here is a block comment with some very special
* formatting that I want indent(1) to ignore.
*
* one
* two
* three
*/
资料来源: Oracle文档 。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3160425