如何让Eclipse不格式化代码部分?

21 浏览
0 Comments

如何让Eclipse不格式化代码部分?

我有一些包含SQL语句的Java代码,这些语句是用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)。

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

从Eclipse 3.5 M4版本开始,格式化程序有一个“永不合并行”选项,它可以保留用户换行符。也许这就是你想要的。

否则,可以使用这个丑陋的方法:

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

0
0 Comments

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

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

在Eclipse首选项中需要打开“开/关”功能:Java >Code Style >Formatter。点击EditOff/On Tags,启用Enable Off/On tags

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

更多信息

Java >Code Style >Formatter >Edit >Off/On Tags

此首选项允许您定义一个标签以禁用,并定义一个标签以启用格式化程序(请参阅格式化程序文件档案中的Off/On Tags选项卡):

enter image description here

您还需要启用Java Formatting标志。

0