我有一些Java代码,其中的SQL语句编写为Java字符串(请不要使用OR / M烈火,嵌入式SQL就是它-不是个人决定)。 html
为了简化维护,我将SQL语句在几行代码上从语义上分为了多个串联的字符串。 所以,而不是像这样: java
String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";
我有相似的东西: 编程
String query = "SELECT FOO, BAR, BAZ" + " FROM ABC " + " WHERE BAR > 4 ";
这种样式使SQL更易于阅读和维护(IMHO),尤为是对于较大的查询。 例如,我能够将编辑器置于“覆盖”模式并至关容易地就地修改文本。 oracle
请注意,此问题超出了SQL的特定示例的范围。 用任何垂直格式编写的任何代码,特别是表格结构,都容易被漂亮的打印机破坏。 eclipse
如今,一些项目成员使用Eclipse编辑器,而且在格式化整个源文件时经常会破坏语义格式。 编辑器
有没有一种方法能够指示Eclipse在格式化方面忽略某些源代码行? spa
我正在寻找相似特殊注释的东西,以切换Eclipse格式化程序。 理想状况下,这样的注释能够配置为咱们选择的任何格式,而且其余格式化程序也能够编程为尊重它: code
// STOP-ECLIPSE-FORMATTING String query = "SELECT FOO, BAR, BAZ" + " FROM ABC " + " WHERE BAR > 4 "; // START-ECLIPSE-FORMATTING
显然,一个“解决方案”是让咱们的团队成员标准化一些外部格式化程序,例如Jalopy或JIndent ,但这不是这个问题的重点(也是我对这个项目的决定):我正在寻找一种方法避免临时使用Eclipse格式化程序。 orm
理想状况下,一种解决方案将容许我插入Eclipse格式化程序的说明, 而无需使用Eclipse的团队成员进行任何IDE从新配置 (除了可能选择与格式化程序无关的命令注释: STOP-ECLIPSE-FORMATTING
→ STOP-FORMATTING
)。 htm
@xpmatteo能够禁用部分代码,可是除此以外,默认的eclipse设置应该设置为仅格式化已编辑的代码行,而不是整个文件。
Preferences->Java->Editor->Save Actions->Format Source Code->Format Edited Lines
由于您的同事正在从新格式化他们实际上没有更改的代码,因此这首先能够防止它发生。 这是一个很好的作法,能够防止使源代码控件上的差别变得无用的麻烦(当因为格式设置的微小差别而从新格式化整个文件时)。
若是关闭了开/关标签选项,这也将阻止从新格式化。
这个hack的做品:
String x = "s" + //Formatter Hack "a" + // "c" + // "d";
我建议不要使用格式化程序。 错误的代码应该看起来很差而不是人为地好。 好的代码须要时间。 您不能欺骗质量。 格式化是源代码质量的一部分。
格式化程序上的Eclipse 3.5 M4的AFAIK具备一个选项“从不链接线”,它保留用户换行符。 也许这就是您想要的。
不然会有这个丑陋的骇客
String query = // "SELECT FOO, BAR, BAZ" + // " FROM ABC" + // " WHERE BAR > 4";
若是将加号放在行首,则格式会有所不一样:
String query = "SELECT FOO, BAR, BAZ" + " FROM ABC" + " WHERE BAR > 4";
您可使用另外一种解决方案来禁止特定块注释的格式。 在块注释的开头使用/*-
(注意连字符),若是格式化文件的其他部分,则格式不会受到影响。
/*- * Here is a block comment with some very special * formatting that I want indent(1) to ignore. * * one * two * three */
资料来源: Oracle文档 。