如何关闭Eclipse代码格式化程序以针对Java代码的某些部分?

41 浏览
0 Comments

如何关闭Eclipse代码格式化程序以针对Java代码的某些部分?

我有一些带有Java字符串的SQL语句的Java代码(请不要争论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-FORMATTINGSTOP-FORMATTING

admin 更改状态以发布 2023年5月23日
0
0 Comments

\n\n据我所知,从Eclipse 3.5 M4开始,格式化程序有一个\"永不合并行\"选项,可以保留用户换行。也许这正是你想要的。如果不行,还有这个丑陋的hack:

String query = //
    "SELECT FOO, BAR, BAZ" + //
    "  FROM ABC"           + //
    " WHERE BAR > 4";

0
0 Comments

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

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

开/关功能必须在Eclipse首选项中被打开:“Java>代码样式>格式化器”。单击编辑开/关标签,启用启用开/关标签

您还可以在首选项中更改魔术字符串 - 在这里查看Eclipse 3.6文档

更多信息

Java
>
代码样式
>
格式化器
>
编辑
>
开/关标签

此首选项允许您定义一个标签来禁用格式化以及一个标签来启用格式化(请参见格式化器配置文件中的开/关标签选项卡):

enter image description here

您还需要启用Java格式化选项中的标志。

0