2014-01-06 45 views
9

我正在为Eclipse编写一个PMD插件,该插件允许用户通过添加注释(如@SuppressWarnings("PMD.ReturnEmptyArrayRatherThanNull"))来禁止PMD警告。由于Eclipse不知道PMD.ReturnEmptyArrayRatherThanNull是一个有效的标记,它会警告标记不受支持并提供快速修复以将其删除。如何在Eclipse中添加自定义SuppressWarnings标记

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

我不是在寻找一种方式来阻止用户的警告。我知道Eclipse中的"Ignore unhandled token in SuppressWarnings"首选项。这是一种解决方法,并且具有Eclipse不会报告任何不支持的令牌的缺点,这使得例如相当困难。在SuppressWarnings令牌中发现错字。

我在寻找的是一种插件开发人员可以扩展Eclipse的方式,以便将PMD标记识别为支持SuppressWarnings标记。

到目前为止,我只发现,通过支持Eclipse令牌是hard coded into the Eclipse Java compiler但还没有找到一个扩展点,或别的东西,让我的PMD令牌添加到令牌支持SuppressWarnings的列表。

+0

你有没有解决过这个问题? –

+0

不幸的不是。我尝试了一种解决方法,即在创建警告后立即删除警告,但我从未设法使其正常工作。 –

+1

eclipse.org上的功能请求如何通过插件扩展列表? – kon

回答

0

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

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

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

相关问题