【问题标题】:How to add custom SuppressWarnings token in Eclipse如何在 Eclipse 中添加自定义 SuppressWarnings 令牌
【发布时间】:2014-01-23 22:31:28
【问题描述】:

我正在为 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 令牌列表的东西。

【问题讨论】:

  • 你解决过这个问题吗?
  • 很遗憾没有。我尝试了一种解决方法,在创建警告后立即将其删除,但我从未设法使其正常工作。
  • 在 eclipse.org 上的功能请求如何通过插件启用列表的扩展?
  • 我会很感激这样的功能请求
  • 我只是想在 eclipse.org 上创建一个功能请求。事实证明,已经有将近 10 年历史的功能请求:Extensionpoint for additional SuppressWarnings tokens。我添加了我的要求并赞成该请求。我建议你也这样做。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-20
    • 2019-11-14
    • 1970-01-01
    • 2019-06-24
    • 2017-11-29
    • 2021-11-14
    • 2018-03-23
    • 2020-01-15
    相关资源
    最近更新 更多