如何在Eclipse自动格式化注释后删除空格?

时间:2017-12-01 09:25:08

标签: java eclipse jml openjml

我在我的项目中使用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;

有没有办法可以禁用在//@符号之间添加空格,或者我可以在评论完全后禁用间距的方式?

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

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

1 个答案:

答案 0 :(得分:2)

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

Window > Preferences > Java > Code Style > Formatter

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

评论标签中,取消选中启用行评论格式

的原因

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

//@

这会影响每一条评论,而不是一件大事。但注释注释呢?

// @SuppressWarning("...") 

这将格式化为

//@SuppressWarning("...") 

这将成为OpenJML的一个问题,这将是一个冲突。您可以在User guide - 4.2 Syntactic conflicts with @

中查看更多相关信息

对于注释或JML,另一个解决方案是禁用格式化程序,但这不可能是诚实的:

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

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