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

ecl*_*pmd 12 eclipse eclipse-plugin suppress-warnings eclipse-jdt

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

它怎么能让Eclipse知道这实际上是一个支持的SuppressWarnings令牌,它不应该用警告标记它?

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

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

到目前为止,我只发现Eclipse支持的令牌被硬编码到Eclipse Java编译器中,但没有找到扩展点或其他东西,可以让我将PMD令牌添加到支持的SuppressWarnings令牌列表中.

Mic*_*zak 0

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

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

请参阅本教程以了解如何编写使用编织服务的插件。