IntelliJ IDEA 2025.1 Help

搜索模板、修饰符和脚本约束

当您构建结构搜索模板时,实际上是在编写脚本。 为简化您的脚本编写过程,IntelliJ IDEA 为您提供了一系列预定义的 搜索模板 ,您可以将其用作搜索模板的原型。

搜索模板对话框

有关如何访问现有搜索和替换模板列表,请参阅 结构化搜索和替换部分。

每个搜索或替换模板由变量 $variable_name$ 组成,您可以为其添加条件(修饰符)以缩小搜索结果。 修饰符取决于您搜索模板中的变量。

搜索模板预览

计数修饰符

计数 修饰符指定了出现的次数。

例如,在 new java.lang.RuntimeException($x$) 搜索模板中,为 $x$ 变量在 计数 修饰符字段中指定最小值和最大值。 要设置无限的最大计数,请在修饰符字段中提供空值。

计数修饰符

IntelliJ IDEA 添加 [0,∞] 到变量中并搜索指定范围的数字。

参考修饰符

引用 修饰符使您可以在变量中引用其他搜索模板。

引用将始终包含预配置或已保存模板的名称,您可以使用自动完成来填写此字段。

例如,对于 $MethodCalls$ 变量,请在 引用 修饰符字段中键入 注释方法

参考修饰符

IntelliJ IDEA 搜索带有注解的方法的调用。

类型修饰符

类型 修饰符为指定的变量添加了一个预期值或表达式类型。

例如,针对 $expression$ 变量,请在 int 修饰符字段中键入 类型

在工具窗口中查找 box 表达式的结果

IntelliJ IDEA 查找执行整数 装箱的地方。

文本过滤器

文本 修饰符根据正则表达式或纯文本检查变量。

例如,您可以搜索实现某个接口的类。 这种情况下,请在 文本 修饰符中添加接口的完全限定名称。 此外,选择 在类型层次结构中 选项,这样间接实现 Cloneable 的类也会包含在搜索中。 如果未选择此选项,则仅包含直接实现 Cloneable 的类。

文本修饰符

脚本约束

脚本 修饰符向搜索模板中添加 Groovy 脚本约束。 Script constraints 用于当您搜索某些语言结构时。

例如,具有指定参数数量的构造函数或具有指定可见性修饰符的成员。

script constraints 中可以访问模板中使用的所有变量。 当您向变量添加脚本约束时,IntelliJ IDEA 会将其与 PSI 树进行匹配,此变量实际上是 PSI 树中的一个 节点

假设您有一个变量与一个方法匹配,一个 toString() 方法。 那么这个变量实际上是一个 PsiMethod 节点。 检索 variable.parent 将生成一个 PsiClass 节点,等等。 variable.text 然后将为您提供方法的完整文本。 如果您只需要方法的名称,您可以使用 variable.name

在另一种情况下,结构化搜索和替换变量可能会匹配某些表达式,例如对变量的引用, PsiReferenceExpression。 当然,一个表达式是没有名字的,但检索整个表达式的文本,会给您提供它所引用的变量的名字。

您可以检查以下现有模板中使用的脚本约束语法:

  • 使用常量参数的示例方法调用

  • classes

  • 具有无形参构造函数的类

  • 不为 final 的 static 字段

  • 未实现或扩展的接口

  • 字段/变量读取

  • 具有给定名称模板的字段/变量已更新

现有模板对话框
最后修改日期: 2025年 4月 24日