【问题标题】:IntelliJ Search Template /Custom Inspection: Analyse sibling annotationsIntelliJ 搜索模板/自定义检查:分析同级注释
【发布时间】:2021-09-11 23:16:21
【问题描述】:

在我们的项目中,我们有一个自定义注释@DeprecationReason,它应该用于记录为什么不推荐使用成员/方法/类(因此使用@Deprecated 进行注释)

为了在使用@Deprecated 但缺少@DeprecationReason 时发出 IntelliJ 警告,我想检查是否存在 @Deprecated 但不存在 @DeprecatedReason。

总的来说,我发现很难找到有关结构搜索的文档,但我还没有找到任何有关分析“兄弟注释”的信息。

谁能给我一个提示?

【问题讨论】:

    标签: java intellij-idea structural-search


    【解决方案1】:

    你可以试试这样的模板:

    <searchConfiguration name="Not annotated methods" text="@Deprecated @$Annotation$&#10;$MethodType$ $Method$($ParameterType$ $Parameter$);" recursive="true" type="JAVA" pattern_context="member" search_injected="false">
      <constraint name="__context__" within="" contains="" />
      <constraint name="Annotation" regexp="DeprecatedReason" minCount="0" maxCount="0" within="" contains="" />
      <constraint name="MethodType" within="" contains="" />
      <constraint name="Method" within="" contains="" />
      <constraint name="ParameterType" within="" contains="" />
      <constraint name="Parameter" minCount="0" maxCount="2147483647" within="" contains="" />
    </searchConfiguration>
    

    我基于内置/现有模板“未注释方法”。您可以使用右上角工具按钮下的“从剪贴板导入模板”操作在“结构搜索”对话框中导入它。

    字段和类需要单独的模板。

    【讨论】:

    • 非常感谢 Bas Leijdekkers
    猜你喜欢
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    相关资源
    最近更新 更多