搜索模板
最后修改时间:2023 年 9 月 21 日当您构建结构搜索模板时,您基本上是在编写脚本。为了简化您的脚本编写过程,IntelliJ IDEA 为您提供了预定义搜索模板列表,您可以将其用作搜索模板的原型。
有关如何访问现有搜索和替换模板的列表,请参阅结构搜索和替换部分。
每个搜索或替换模板都包含变量,$variable_name$
您可以向其中添加条件(修饰符)以缩小搜索结果范围。修饰符取决于搜索模板中的变量。
Script修饰符将Groovy脚本约束添加到搜索模板。当您搜索某些语言结构时,会使用脚本约束。
例如,具有指定数量的参数的构造函数,或具有指定可见性修饰符的成员。
模板中使用的所有变量都可以从脚本约束中访问。当您向变量添加脚本约束时,IntelliJ IDEA 将其与 PSI 树进行匹配,该变量实际上是PSI 树中的一个节点。
比方说,你有一个与一个方法匹配的变量,一个toString()
方法。那么这个变量其实就是一个PsiMethod
节点。检索variable.parent
将产生一个PsiClass
节点,等等。variable.text
然后将为您提供该方法的完整文本。如果您只需要方法的名称,则可以使用variable.name
.
在另一种情况下,结构搜索和替换变量可能与某些表达式匹配,例如对变量 a 的引用PsiReferenceExpression
。表达式当然没有名称,但是检索表达式的整个文本将为您提供它所引用的变量的名称。
您可以检查以下现有模板中使用的脚本约束的语法:
使用常量参数的示例方法调用
类
具有无参数构造函数的类
非最终的静态字段
未实现或扩展的接口
读取字段/变量
具有给定名称模板的字段/变量已更新
笔记
您可以在脚本修饰符的模板中引用任何普通变量,例如
$a$
使用其名称(例如 )a
,并在任何匹配上使用其值执行某些操作。使用__context__,您可以引用整个模板(完全匹配)。
感谢您的反馈意见!