WebStorm 2021.1 Help

结构搜索和替换

传统的搜索过程不考虑源代码的语法和语义。即使您使用正则表达式,WebStorm 仍然会将您的代码视为常规文本。结构搜索和替换( SSR ) 操作让您可以根据代码结构在代码中搜索特定的代码模式或语法结构。

WebStorm 根据您创建的搜索模板和应用的条件查找和替换源代码片段。

从结构上搜索目标

  1. 从主菜单中,选择编辑 | 查找 | 结构搜索以打开“结构搜索”对话框。

    结构搜索对话框
  2. 在“结构搜索”对话框中,执行以下操作之一:

    • 从头开始创建您自己的模板

      在编辑器区域中,输入代码模板($variable$代表您的代码),单击设置按钮,然后选择保存模板以保存以供将来使用。

      结构搜索对话框:保存模板

      WebStorm 将创建的模板添加到现有模板对话框中的现有模板列表(用户定义节点)中。

    • 使用现有模板之一作为原型

      单击设置按钮,选择现有模板以打开预定义模板列表,然后选择适当的模板。

      打开现有模板列表

      考虑以下示例类:

      类人 { 构造函数(名字,姓氏,年龄,眼睛颜色) { this.firstName = firstName; this.lastName = 姓氏;this.eyeColor = 眼睛颜色;this.age = 年龄;} move(distanceInMeters) { console.log(`人员移动 ${distanceInMeters}m.`); } sing(a) { console.log(`人唱 ${a}`); } jump (distanceInMeters,heightInMeters) { console.log(`人跳了 ${heightInMeters} 米高和 ${distanceInMeters} 米右。`); } RETIRED(age) { 返回年龄 >= 60; } }

      让我们在类中找到某个方法。

      在现有模板列表中,单击Javascript,展开General节点,然后选择Functions模板。

      现有模板对话框

      单击“确定”返回“结构搜索”对话框以使用所选模板。

      WebStorm 会立即在编辑器中突出显示找到的代码。

      发现的事件突出显示
  3. 结构搜索”对话框显示所选模板和模板中使用的过滤器的值。您可以编辑现有过滤器或添加新条件。将插入符号放在代码变量上,并使用过滤器区域来管理过滤器。

    例如,要更改模板中的参数数量,请选择$parameter$变量并指定适当的最小数量。

    编辑过滤器弹出窗口

    当您单击Find时,WebStorm 会打开Find工具窗口,其中包含带有两个或更多参数的方法列表,在我们的示例中,仅jump (distanceInMeters,heightInMeters) {}显示。

    结构搜索:结果
  4. 在过滤器区域中,单击添加按钮以添加新条件。例如,如果您需要添加正则表达式,请选择Text。您还可以根据您的变量添加其他条件。

  5. 在打开的字段中,输入您的条件。

    例如,让我们键入以下正则表达式:

    \b[AZ]+\b
    将正则表达式添加到过滤器对话框

    在这种情况下,WebStorm 将只搜索带有大写字符的字段。

    另请注意,默认情况下,Recursive复选框处于选中状态。这意味着 WebStorm 执行递归搜索,所有嵌套项都将包含在结果中。例如,当您搜索方法调用时,启用Recursive选项时,WebStorm 将在foo(foo(foo())). 禁用Recursive选项后,只会找到外部方法调用。

  6. 指定以下选项以进一步缩小搜索范围:

    • 文件类型- 使用列表选择哪些文件类型应该是搜索的一部分。在我们的例子中,它是JavaScript

    • 范围- 指定搜索位置:在项目、模块、目录或自定义范围内。

    • 搜索目标- 您可以选择完全匹配来匹配确切的模板或其他可用的代码元素(在我们的例子中是 name)。

      搜索目标
  7. 单击查找

WebStorm 在查找工具窗口中显示结果。

查找工具窗口结果

在结构上替换目标

  1. 从主菜单中,选择编辑 | 查找 | 从结构上替换

  2. 结构替换对话框中,将新模板或现有模板添加到搜索和替换模板区域。您可以以与搜索相同的方式保存替换模板。

  3. 如果您需要为替换模板中的变量添加过滤器,请在感兴趣的变量处放置一个插入符号,并使用过滤器区域来管理过滤器。

  4. 在过滤器区域中,根据您选择的过滤器,指定条件。

    结构替换:指定条件
  5. 要缩小替换结果的范围,请选择以下选项:

    • 缩短完全限定名称- 用短名称和导入替换完全限定的类名称。

    • 重新格式化- 自动格式化替换的代码。

    • 使用静态导入- 尽可能使用静态导入替换。

    指定必要的选项后,单击查找。WebStorm 在查找工具窗口中显示结果。

  6. 在“查找”工具窗口中,您可以进一步处理结果,一个一个替换找到的项目,或者一次替换所有项目,或者预览您的潜在更改。

共享搜索模板

您可以通过导出或导入搜索模板与您的同行共享。

  1. 结构搜索对话框(编辑|查找|结构搜索)中,创建一个新的搜索模板或使用现有的

  2. 要导出模板,请单击设置按钮并选择将模板导出到剪贴板。WebStorm 将模板的 XML 表示添加到剪贴板(按下Ctrl+Shift+V可查看剪贴板的内容)。您可以在聊天、电子邮件或论坛中与其他开发人员共享此表示。

    Ctrl+C要导入模板,请从任何地方(电子邮件、聊天或论坛)复制 ( ) 共享 XML 代码,然后在“结构搜索”对话框中,单击设置按钮并选择从剪贴板导入模板。WebStorm 采用 XML 代码表示并将其转换为包含变量和范围(如果存在)的模板。

最后修改:2022 年 1 月 19 日