【问题标题】:How to remove spaces after comments in Eclipse auto formatting?如何在 Eclipse 自动格式化中的注释后删除空格?
【发布时间】:2018-05-15 08:54:44
【问题描述】:

我正在为我的项目使用 OpenJML 插件,但 Eclipse 自动格式化与我的 JML 代码混淆。 JML 写在//@ 符号之后。

//@ requires password != null;
//@ ensures !isActive() && getPassword().testWord(password) ? isActive() && \result : isActive() == \old(isActive()) && !\result;

然而,Eclipse 自动格式化会在 //@ 符号之间添加一个空格,从而使我的 JML 代码无用。

// @ requires password != null;
// @ ensures !isActive() && getPassword().testWord(password) ? isActive() && \result : isActive() == \old(isActive()) && !\result;

有没有一种方法可以禁用在//@ 符号之间添加空格,或者我可以完全禁用cmets 之后的空格?

我已尝试更改格式化程序配置文件,但在那里找不到设置。

我也尝试过自动删除尾随空格,如下所述:How to auto-remove trailing whitespace in Eclipse? 但这也不起作用。我假设是因为我专门尝试更改评论自动格式。

【问题讨论】:

  • @AxelH 我不认为关于自动删除尾随空格的问题是关于 Eclipse inserting 单行注释开始后空格的问题的重复(所以//@ 变为 // @)
  • @MarkRotteveel 链接的问题已经回答了如何启用/禁用与//@ 混淆的自动格式化。我一直在查看这些配置,看看是否可以更新“模板”。
  • @AxelH 我已经多次扫描了该问题的答案,但我没有看到它得到解决(或者至少没有明确地解决),即使那样,这个问题也不是重复的,所以它不应该作为一个关闭。
  • @MarkRotteveel,在这种情况下,请参阅我的回答,这将更加明确;-)

标签: java eclipse jml openjml


【解决方案1】:

我的解决方案很简单,禁用行注释格式。

Window > Preferences > Java > Code Style > Formatter

编辑当前配置文件(如果这是默认配置文件,则需要重命名)。

注释选项卡中,取消选中启用行注释格式

原因

即使可以删除该空格,以便格式为您提供正确的

//@

这会影响每条评论,你可以说没什么大不了的。但是带注释的注释呢?

// @SuppressWarning("...") 

这将被格式化为

//@SuppressWarning("...") 

这将成为 OpenJML 的一个问题,这将是一个冲突。您可以在User guide - 4.2 Syntactic conflicts with @ 中查看更多相关信息

对于注释或 JML 的另一种解决方案是禁用格式化程序,但老实说这将无法使用:

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

这些标签之间的所有内容都没有被格式化(如果formatter:on被省略,文件中之后的所有内容都不会被格式化

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-01
    • 2019-10-07
    • 2012-07-12
    • 2017-08-09
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多