小编典典

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

all

我有一些 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 更易于阅读和维护(恕我直言),尤其是对于较大的查询。例如,我可以将我的编辑器置于“覆盖”模式并相当容易地就地修改文本。

请注意,此问题泛化到 SQL 的特定示例之外。 使用任何垂直格式编写的任何代码,尤其是表格结构,都容易被漂亮的打印机破坏。

现在,一些项目成员使用 Eclipse 编辑器,当他们格式化整个源文件时,语义格式化经常被破坏。

有没有办法指示 Eclipse 在格式方面忽略某些源代码行?

我正在寻找类似于切换 Eclipse
格式化程序的特殊注释之类的东西。理想情况下,这样的注释可以配置为我们选择的任何内容,并且其他格式化程序也可以编程以尊重它:

// STOP-ECLIPSE-FORMATTING
String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";
// START-ECLIPSE-FORMATTING

显然,一个“解决方案”是让我们的团队成员标准化一些外部格式化程序,如JalopyJIndent,但这不是这个问题的目的(也不是我对这个项目的决定):我正在专门寻找一种方法来临时避免使用
Eclipse 格式化程序。

理想情况下,一个解决方案将允许我为 Eclipse 格式化程序插入指令, 而无需使用 Eclipse 的团队成员进行任何 IDE 重新配置
(除了可能选择与格式化程序无关的命令注释:STOP-ECLIPSE-FORMATTINGSTOP-FORMATTING)。


阅读 201

收藏
2022-03-11

共1个答案

小编典典

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

此首选项允许您定义一个标签来禁用和一个标签来启用格式化程序(请参阅格式化程序配置文件中的关闭/打开标签选项卡):

在此处输入图像描述

您还需要启用以下标志Java Formatting

2022-03-11