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

标签 java eclipse code-formatting pretty-print eclipse-formatter

我有一些 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 的特定示例。任何使用任何垂直格式编写的代码,尤其是表格结构,都容易被 pretty-print 破坏。

现在,一些项目成员使用 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)。

最佳答案

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

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

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

也可以在首选项中更改魔法字符串 - check out the Eclipse 3.6 docs here .

更多信息

Java > 代码风格 > 格式化程序 > 编辑 > 关闭/打开标签

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

enter image description here

您还需要启用 Java Formatting 中的标志

关于java - 如何关闭 Java 代码某些部分的 Eclipse 代码格式化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920840/

相关文章:

java - 在java中绘制极坐标图

java - 创建多重继承的java代理时出现ClassFormatError?

javascript - Extjs找不到资源

code-formatting - 如何配置 black 以对不同的文件扩展名使用不同的格式规则?

java - Javascript 的最佳源代码格式化程序?

java - 我的缩进有问题吗?

java - 解决-与TP相关的问题必须调用Libgdx SpriteBatch.end ...不要捕获错误

java - 使用处理从 Twitter 获取位置信息

java - 异常在线程 "IDL"java.lang.UnsatisfiedLinkError : no idl_ips in java. library.path

eclipse - 如何重新生成 .apt_generate 文件夹