codecamp

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 程序。请参阅本节结构搜索和替代典型用例的示例。

要在结构上查找和替换源代码,请按照以下步骤操作:

  1. 在主菜单上选择:编辑| 查找| 搜索结构(Edit | Find | Search Structurally),或 编辑| 查找| 替换结构(Edit | Find | Replace Structurally)。
  2. 在打开的对话框中,定义搜索模板。简而言之,定义搜索模板涉及以下步骤:
    • 在搜索模板文本区域中键入所需的结构,或通过点击复制现有的模板按钮来使用预定义的搜索模板。
    • 指定在搜索模板中对变量施加的约束。要做到这一点,请点击编辑变量按钮。搜索模板中包含的所有变量都列在“编辑变量”对话框的“变量”窗格中。

    有关过程的详细描述,请参阅创建和编辑搜索模板的部分。

  3. 在结构替换的情况下,指定替换模式,并根据需要定义变量约束。
  4. 指定搜索和替换选项,特别是要匹配的出现次数以及要分析的文件类型。
  5. 指定执行结构搜索和替换的范围。为此,单击作用域列表的下拉箭头,并选择其中一个预定义的作用域,或单击省略号按钮,并在范围对话框中配置所需的范围。
  6. 点击“查找”。检测到的事件显示在“查找”工具窗口。

    请注意,在替换的情况下,您可以在搜索结果中选择所需的匹配项,然后单击预览替换按钮。在源代码中突出显示了相应的事件。

创建和编辑搜索模板

你可以从头开始创建搜索和替换模板,只需在结构搜索/替换(Structural Search / Replace)对话框文本区域中输入代码即可。但是,您可以使用预定义的搜索模板的集合,您可以将其用作自己的模板的原型。所有自定义模板都出现在现有搜索模板的列表中,在节点用户的定义下。

要创建搜索模板,请按照以下常规步骤操作:

您可以在中创建一个新模板 现有模板对话框。为此,请单击工具栏上的 按钮。这将打开结构搜索对话框,并使用空模板字段。要定义自定义模板,请按照下述步骤进行操作。

  • 在主菜单上选择:编辑| 查找| 搜索结构(Edit | Find | Search Structurally)。
  • 执行以下操作之一:
    • 在搜索模板文本区域中键入模板的代码。
    • 点击复制现有的模板按钮,然后在“现有模板”对话框中,选择所需的模板作为原型。所选模板的源代码出现在搜索模板文本区域,您可以根据需要更改它。
  • 如果需要配置模板变量,请单击编辑变量按钮。编辑变量对话框出现。
    在变量列中,选择要配置的变量,并指定将适用于此变量的约束。
    根据需要对其他变量重复此过程,应用更改并关闭对话框。
  • 点击保存模板(Save Template)按钮。
  • 在“保存模板(Save Template)”对话框中,键入新模板的名称,然后单击“确定”。
IntelliJ IDEA查看符号的用法
IntelliJ IDEA结构搜索和替代的示例
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }