【问题标题】: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$ $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>
我基于内置/现有模板“未注释方法”。您可以使用右上角工具按钮下的“从剪贴板导入模板”操作在“结构搜索”对话框中导入它。
字段和类需要单独的模板。