如何在Eclipse中添加自定义SuppressWarnings令牌

时间:2014-01-06 13:46:23

标签: eclipse eclipse-plugin suppress-warnings eclipse-jdt

我正在编写一个Eclipse的PMD插件,它允许用户通过添加@SuppressWarnings("PMD.ReturnEmptyArrayRatherThanNull")等注释来抑制PMD警告。由于Eclipse不知道PMD.ReturnEmptyArrayRatherThanNull是一个有效的令牌,它会警告令牌不受支持,并提供快速修复以删除它。

如何让Eclipse知道这实际上是受支持的SuppressWarnings令牌,并且它不应该用警告标记它?

我不是在寻找用户可以抑制警告的方法。我知道Eclipse中的"Ignore unhandled token in SuppressWarnings"首选项。这是一种解决方法,并且缺点是Eclipse根本不报告任何不受支持的令牌,因此很难例如在SuppressWarnings令牌中找到拼写错误。

我正在寻找的是我作为插件开发人员可以扩展Eclipse的方式,因此它将PMD令牌识别为支持的SuppressWarnings令牌。

到目前为止,我只发现Eclipse支持的令牌是hard coded into the Eclipse Java compiler,但是没有找到扩展点或其他东西,可以让我将PMD令牌添加到支持的SuppressWarnings令牌列表中。

1 个答案:

答案 0 :(得分:0)

你可以做的是编写一个小插件,使用Equinox Weaving Service来拦截这个方法调用并从中返回自定义的IrritantSet实例。这需要对编译器代码进行一些窥探,但不应该太困难。

缺点是它可能会破坏JDT更新,并且只能在安装了该插件的Eclipse中运行。

请参阅this tutorial以了解如何编写使用编织服务的插件。