结构化查找与替换
传统的查找过程不会考虑源代码的语法和语义。 即使使用正则表达式,WebStorm 仍会将您的代码视为普通文本。 结构化查找与替换 (SSR )操作可根据您的代码结构,在代码中查找特定的代码模式或语法结构。
WebStorm 会根据您创建的 查找模板 和应用的 条件 查找并替换源代码片段。
结构化查找目标
在主菜单中,转到 以打开 结构性搜索 对话框。

在 结构性搜索 对话框中,请执行以下任一操作:
从头开始创建自定义模板。
从模板列表中选择 草稿模板。
在编辑器区域中输入代表您代码的代码模板(
$variable$),然后在对话框工具栏中单击以便将其保存供日后使用。 您还可以选择将该模板保存为检查项。

WebStorm 会将所创建的模板添加到现有模板列表(最近 节点)中。
使用现有模板之一作为原型。
在现有可用模板列表中,选择所需的模板。

请参考以下示例类:
class Person { constructor(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.eyeColor = eyeColor; this.age = age; } move(distanceInMeters) { console.log(`Person moved ${distanceInMeters}m.`); } sing(a) { console.log(`Person sings ${a}`); } jump (distanceInMeters,heightInMeters) { console.log(`Person jumped ${heightInMeters}m high and ${distanceInMeters}m right.`); } RETIRED(age) { return age >= 60; } }让我们在类中查找某个特定方法。
在现有模板列表中,点击 Javascript ,展开 常规 节点,并选择 Functions 模板。

点击 查找。
WebStorm 会立即在编辑器中高亮显示匹配的代码。

结构性搜索 对话框显示所选模板及其所用过滤器的值。 您可以编辑现有过滤器或添加新的 条件。 将插入点置于代码变量上,并使用过滤器区域管理过滤器。
例如,要更改模板中的参数数量,请选中
$parameter$变量并指定相应的最小数量。
当您单击 查找 时,WebStorm 将在 查找 工具窗口中显示包含两个或更多参数的方法列表,在本示例中,仅显示
jump (distanceInMeters,heightInMeters) {}。
例如,我们为
$name$ variable添加一个条件。在过滤器区域中,点击
以添加一个新条件。 例如,如果需要添加一个正则表达式,请选择 文本。 根据变量类型,您还可以添加 其他条件。
在打开的字段中输入您的条件。
例如,我们输入以下正则表达式:
\b[A-Z]+\b
在此情况下,WebStorm 只会查找包含大写字符的字段。
另请注意,依据所选语言会提供不同的附加选项。
例如,请检查以下选项:
语言 :使用此列表选择应纳入查找范围的文件类型。 在我们的示例中,选择的是 JavaScript。
目标 :在选项列表中选择要查找的条目。 在我们的示例中,选择的是
name。
递归 :如果选中此复选框,WebStorm 将执行递归搜索,并在结果中包含所有嵌套项。 例如,当您搜索方法调用时,在启用 递归 选项的情况下,WebStorm 将在
foo(foo(foo()))中找到嵌套的方法调用。 如果未启用 递归 选项,则只会找到外部的方法调用。注入代码 :如果选中此复选框,注入的代码(例如注入到 HTML 代码中的 JavaScript,或注入到 Java 中的 SQL)将包含在搜索过程中。
区分大小写 :如果选中此复选框,搜索结果将区分大小写。
指定搜索位置:项目、模块、目录或自定义范围内。
单击 查找。
WebStorm 会在 查找 工具窗口中显示结果。

结构化替换目标
在主菜单中,转到 。
如果需要为替换模板中的变量添加筛选器,请将插入符号放置在相关变量处,并使用筛选器区域进行管理。
在筛选器区域中,根据您选择的 筛选器 ,指定条件。

要缩小替换结果范围,请选择以下选项:
缩短完全限定名 - 用短名称和 import 替换完全限定的类名。
重新格式化 - 自动格式化替换后的代码。
使用 static import - 在可能的情况下使用静态 import 进行替换。
指定必要选项后,单击 查找。 WebStorm 会在 查找 工具窗口中显示结果。
在 查找 工具窗口中,您可以进一步处理结果,逐一替换找到的项、一次性替换所有项或预览可能的更改。
共享查找模板
您可以通过导出或导入模板的方式与他人共享搜索模板。
在 结构性搜索 对话框( )中, 创建新的搜索模板或使用现有模板。
要导出模板,请单击
。 WebStorm 会将模板的 XML 表示形式添加到剪贴板中(按 Ctrl+Shift+V 查看剪贴板内容)。 您可以通过聊天、电子邮件或论坛将此表示形式与其他开发人员共享。
要导入模板,请从任意位置(电子邮件、聊天或论坛)复制(Ctrl+C )共享的 XML 代码,并在 结构性搜索 对话框中单击
。 WebStorm 会获取 XML 代码表示形式并将其转换为包含变量和范围(如果存在)的模板。