如何设置eclipse忽略方法调用后的换行符?

18 浏览
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月23日
0
0 Comments

据我所知,从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首选项中必须打开“on/off”功能: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