我在我的项目中使用了OpenJML插件,但是会扰乱我的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;是否有一种方法可以禁用在//和@符号之间添加空格,或者以其他方式完全禁用注释后的间距?
我尝试过更改格式化程序配置文件,但是找不到那里的设置。
我也尝试过自动删除尾随空格,如这里所解释的:如何自动删除Eclipse中的尾随空格?,但这也不起作用。我认为是因为我专门试图更改注释的自动格式化。
发布于 2017-12-01 18:17:32
我的解决方案很简单,禁用行注释格式设置。
Window > Preferences > Java > Code Style > Formatter编辑当前配置文件(如果这是默认配置文件,则需要重命名它)。
在“注释”选项卡中,取消选中“启用行注释格式”。
原因
即使这是可能的,以删除该空格,以便格式化给您一个正确的
//@这会影响到所有的评论,你可以说不是什么大事。但是注释的注释呢?
// @SuppressWarning("...") 这将被格式化为
//@SuppressWarning("...") 这将成为OpenJML的一个问题,这将是一个冲突。您可以在用户指南- 4.2与@的语法冲突中看到更多关于这一点的信息。
对于注释或JML来说,另一种解决方案是禁用格式化程序,但老实说,这是不可用的:
// @formatter:off
...
// @formatter:on这些标记之间的所有内容都没有格式化(如果省略了formatter:on,那么文件中后面的所有内容都不会被格式化)
https://stackoverflow.com/questions/47590211
复制相似问题