IntelliJ IDEA搜索模板
搜索模板是结构搜索和替换功能的重要组成部分。与实时模板一样,搜索模板包含纯文本和一个或多个模板变量。
有效的搜索或替换模板代表以下 Java 结构之一:
- 表达式,例如:new SomeExpression()
- 语句或语句序列,例如:q = 1;
- 类指示符,例如 “class Booking implements Serializable”
- 行或块注释,例如/** Created in IntelliJ IDEA */。
- @Modifier 注释。
IntelliJ IDEA 提供了一组预定义的搜索模板集合,它与各种语句、表达式、类及其成员、XML 和 HTML 结构等相匹配。您可以使用这些模板进行结构搜索和替换,也可以作为创建自己的搜索模板的基础。
搜索模板使用的变量,这是字符串包围了 $ 字符,例如 $expression$。源代码中的符号、字符串文本和注释可以通过变量来引用。
模板中的变量受到某些限制,这些约束可帮助您细化搜索并将其限制为所需的匹配项:
- 文本约束是要匹配的文本模式。这些约束可以是纯文本或正则表达式,并且可以包含对符号的引用。
- 出现的次数定义了一个变量可以包含多少个顺序元素(在参数、声明或语句列表中)以及变量是否需要存在于模式中。如果出现次数为1,则只有一个符号可以匹配变量。如果出现次数为 null,则表示某个元素可能丢失。
- 表达式约束将语义条件应用到搜索中,例如定位读取或写入的符号。
- 当搜索的项目多于普通匹配时,将使用脚本约束。如果您正在查找某些语言结构(例如,具有指定数目的参数的构造函数或具有指定可见性修饰符的成员),则应用描述为 Groovy 脚本的约束。
在搜索模板中,可以使用以下简化方法:
- 方法正文可以省略。
- 如果没有指示访问修饰符,任何访问修饰符都将被保留。
- 在模板和约束字段中使用短类名(而不是完全限定名)。
- 使用 class $Class$ 模板,也可以查找到匿名类。
- 注释和文档注释的模板应包含具有正确注释和 JavaDoc 语法的变量和结构。
一般 SSR 程序
本节概述了一般的 SSR 程序。请参阅本节结构搜索和替代典型用例的示例。
要在结构上查找和替换源代码,请按照以下步骤操作:
- 在主菜单上选择:编辑| 查找| 搜索结构(Edit | Find | Search Structurally),或 编辑| 查找| 替换结构(Edit | Find | Replace Structurally)。
- 在打开的对话框中,定义搜索模板。简而言之,定义搜索模板涉及以下步骤:
- 在搜索模板文本区域中键入所需的结构,或通过点击复制现有的模板按钮来使用预定义的搜索模板。
- 指定在搜索模板中对变量施加的约束。要做到这一点,请点击编辑变量按钮。搜索模板中包含的所有变量都列在“编辑变量”对话框的“变量”窗格中。
有关过程的详细描述,请参阅创建和编辑搜索模板的部分。
- 在结构替换的情况下,指定替换模式,并根据需要定义变量约束。
- 指定搜索和替换选项,特别是要匹配的出现次数以及要分析的文件类型。
- 指定执行结构搜索和替换的范围。为此,单击作用域列表的下拉箭头,并选择其中一个预定义的作用域,或单击省略号按钮,并在范围对话框中配置所需的范围。
- 点击“查找”。检测到的事件显示在“查找”工具窗口。
请注意,在替换的情况下,您可以在搜索结果中选择所需的匹配项,然后单击预览替换按钮。在源代码中突出显示了相应的事件。
创建和编辑搜索模板
你可以从头开始创建搜索和替换模板,只需在结构搜索/替换(Structural Search / Replace)对话框文本区域中输入代码即可。但是,您可以使用预定义的搜索模板的集合,您可以将其用作自己的模板的原型。所有自定义模板都出现在现有搜索模板的列表中,在节点用户的定义下。
要创建搜索模板,请按照以下常规步骤操作:
您可以在中创建一个新模板 现有模板对话框。为此,请单击工具栏上的 按钮。这将打开结构搜索对话框,并使用空模板字段。要定义自定义模板,请按照下述步骤进行操作。
- 在主菜单上选择:编辑| 查找| 搜索结构(Edit | Find | Search Structurally)。
- 执行以下操作之一:
- 在搜索模板文本区域中键入模板的代码。
- 点击复制现有的模板按钮,然后在“现有模板”对话框中,选择所需的模板作为原型。所选模板的源代码出现在搜索模板文本区域,您可以根据需要更改它。
- 如果需要配置模板变量,请单击编辑变量按钮。编辑变量对话框出现。
在变量列中,选择要配置的变量,并指定将适用于此变量的约束。
根据需要对其他变量重复此过程,应用更改并关闭对话框。 - 点击保存模板(Save Template)按钮。
- 在“保存模板(Save Template)”对话框中,键入新模板的名称,然后单击“确定”。