我正在尝试基于“结构搜索和替换”功能创建检查。因此,我需要创建搜索模板来查找java代码中不推荐使用的类的所有用法,但我不知道如何做到这一点。
我已经尝试了设置:搜索模板:$Symbol
$ $Symbol$的过滤器:引用=带注释的类; script=com.intellij.psi.impl.PsiImpl.PsiImplUtil.isDeprecated(Symbol),
但它不起作用(找不到已弃用类的用法)
例如,我们不赞成使用A类:
@Deprecated
public class A {}
以及此类在 B 类中的用法:
@RunWith(A.class)
public class B {}
您可以为此任务创建两个搜索模板:第一个是已弃用类的搜索模板,第二个是已弃用类引用的搜索模板。
<searchConfiguration name="deprecated class" text="@Deprecated class $C$ {} " recursive="true" caseInsensitive="true" type="JAVA" pattern_context="default">
<constraint name="__context__" within="" contains="" />
<constraint name="C" within="" contains="" />
</searchConfiguration>
<searchConfiguration name="reference to deprecated class" text="$ref$" recursive="true" caseInsensitive="true" type="JAVA" pattern_context="default">
<constraint name="__context__" within="" contains="" />
<constraint name="ref" reference="deprecated class" within="" contains="" />
</searchConfiguration>
顺便说一句,有一个检查 不推荐使用的 API 用法(Java |代码成熟度 |已弃用的 API 用法),具有类似的功能。