一尘不染

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

java

我有一些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)。


阅读 402

收藏
2020-03-02

共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

此首选项允许你定义一个禁用标签和一个启用格式化程序的标签(请参阅格式化程序配置文件中的“ Off / On Tags”标签):

你还需要启用来自 Java Formatting

2020-03-02