为什么Eclipse代码格式化程序会在Javadoc @see标记中中断?

时间:2020-03-05 18:48:05  来源:igfitidea点击:

我正在使用Eclipse 3.4,并且已配置Java代码格式化程序,并且在"注释"选项卡上启用了所有选项。问题是,当我格式化包含以下内容的文档注释时:

* @see <a href="test.html">test</a>

代码格式化程序在结束的HTML中插入一个空格,将其断开:

* @see <a href="test.html">test< /a>

为什么?我该如何阻止这种情况发生?

通过禁用"注释"选项卡上的任何选项(例如"格式化HTML"标记)无法解决此问题。我发现的唯一解决方法是通过同时禁用"启用Javadoc注释格式"和"启用块注释格式"选项来完全禁用Javadoc格式,这意味着我必须手动格式化注释块。

解决方案

回答

我只能假定这是Eclipse中的错误。它仅在@see标记中发生,对于所有3种内置代码格式化程序设置也都发生。

在社区中已经有一些有趣的错误报告,但是我找不到这个特定的错误。例如,请参阅在Eclipse Bugzilla中对@see的搜索。

回答

严格的XML规范要求自闭标签在闭斜杠之前必须有一个空格,如下所示:

<gcServer enabled="true" /> <!-- note the space just after "true" -->

我只能像巴特所说的那样假设,Eclipse的重新格式化程序中有一个错误,它认为关闭标签实际上是一个自关闭标签。另一个想法:我们可以验证标签是否平衡(即文档中没有更高的未闭合标签)吗?

回答

这可能是Eclipse 3.4中的错误。我正在使用3.3(M20080221-1800),并且没有观察到此行为。