如何在Intellij IDEA中使用“结构搜索”命令查找已弃用的Java类的用法?

时间:2019-07-10 17:07:03

标签: java intellij-idea

我正在尝试根据“结构搜索和替换”功能创建检查。因此,我需要创建搜索模板来查找Java代码中所有不赞成使用的类的用法,但我不知道该怎么做。

我尝试设置: Search template: $Symbol$ Filters for $Symbol$: reference=annotated classes; script=com.intellij.psi.impl.PsiImplUtil.isDeprecated(Symbol) 但这不起作用(找不到不推荐使用的类的用法)

例如,我们弃用了A类:

@Deprecated
public class A {}

该类在B类中的用法:

@RunWith(A.class)
public class B {}

1 个答案:

答案 0 :(得分:2)

您可以为此任务创建两个搜索模板:第一,用于弃用的类的搜索模板,第二,用于弃用的类参考的搜索模板。

您可以使用“导入模板表单剪贴板”工具导入以下模板 enter image description here

<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​​)。