彩票走势图

Java开发工具IntelliJ IDEA使用源代码系列教程(八):结构搜索和替换

翻译|使用教程|编辑:吴园园|2020-06-01 09:43:54.073|阅读 302 次

概述:常规的搜索过程没有考虑源代码的语法和语义。即使您使用正则表达式,IntelliJ IDEA仍会将您的代码视为正则文本。该结构的搜索和替换(SSR)操作,您可以搜索你的代码考虑您的代码结构中的特定代码模式或语法结构。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

IntelliJ IDEA是Java语言开发的集成环境,IntelliJ在业界被公认为优秀的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。IntelliJ IDEA 现已加入在线订购,点击此处了解价格详情>>

点击下载IntelliJ IDEA最新试用版

结构搜索和替换

常规的搜索过程没有考虑源代码的语法和语义。即使您使用正则表达式,IntelliJ IDEA仍会将您的代码视为正则文本。该结构的搜索和替换(SSR)操作,您可以搜索你的代码考虑您的代码结构中的特定代码模式或语法结构。

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

从结构上搜索目标

1、从主菜单中,选择编辑| 查找| 搜索结构上开 结构搜索对话框。

在“ 结构搜索”对话框中,可以快速切换到“ 结构替换”对话框。单击 设置按钮并选择 切换到替换。

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

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

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

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

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

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

例如,您的代码中包含以下字段:

public class MainActivity {
    public static final String this_is_wrong = "Hello";
    public static final String THIS_IS_CORRECT = "world";
}

让我们在类中找到一个特定的字段。

在现有模板列表中,单击Java并打开基于类的 节点(因为我们需要类中的字段),所以类 模板的字段将成为我们的目标。

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

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

3、“ 结构搜索”对话框显示所选模板以及该模板中使用的过滤器的值。您可以编辑现有过滤器或添加新条件,例如,添加一些正则表达式或 脚本约束。将插入号放在代码变量处,然后使用过滤器区域管理过滤器。

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

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

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

在这种情况下,当您在“ 结构搜索”对话框中选择“ 区分大小写”复选框时 ,IntelliJ IDEA将仅搜索具有大写字符的字段。

另请注意,默认情况下,“ 递归”复选框处于选中状态。这意味着IntelliJ IDEA将执行递归搜索,并且所有嵌套项都将包含在结果中。例如,当您搜索方法调用时,如果启用了“ 递归”选项,则IntelliJ IDEA将在中找到嵌套的方法调用foo(foo(foo()))。随着 递归选项被禁用,只有外部方法调用会被发现。

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

文件类型 -使用列表进行选择,哪些文件类型应成为搜索的一部分。在我们的例子中是Java。

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

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

7、点击查找。

IntelliJ IDEA在“ 查找工具”窗口中显示结果。

您可以将新创建的搜索模板作为自定义模板添加到 结构搜索检查中,并在以后使用它检查代码。

在某些情况下,您可以使用检查代替结构搜索和替换。例如,通过结构搜索用接口替换类不会修改用法,您将需要执行搜索并替换多次。在这种情况下,您可以使用抽象类进行接口 检查,这还将修改抽象类的用法。

从结构上替换目标

1、从主菜单中,选择编辑| 查找| 结构上更换。

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

3、如果您需要为替换模板中的变量添加过滤器,请在所需的变量处插入插入符号,然后使用过滤器区域来管理过滤器。

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

例如,让我们获取一个$Field$要搜索的变量, 并添加条件以用小写字符替换找到的模式。

让我们调用变量$Field2$ 并添加以下过滤器脚本,该脚本基本上是Groovy脚本:Field.name.toLowerCase()。

5、要缩小替换结果的范围,请选择以下选项:

  • 缩短全限定名 -用短名称和导入替换全限定类名。
  • 重新格式化 -自动格式化替换的代码。
  • 使用静态导入 -尽可能使用静态导入进行替换。例如,如果选择此选项,则对静态方法的方法调用将Math.abs(i)变为 abs(i)。

指定必要的选项后,点击查找。IntelliJ IDEA在“ 查找工具”窗口中显示结果。

6、在“ 查找”工具窗口中,您可以进一步处理结果,一次一地替换找到的项,一次全部替换,或者预览可能的更改。

您还可以将替换模板添加到 结构搜索检查中, 并将其用作代码的快速修复。

Java开发工具IntelliJ IDEA使用源代码系列教程(八):结构搜索和替换

作为我们替换的结果,大写字符已切换为小写。

共享搜索模板

您可以通过导出或导入与他人共享搜索模板。

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

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

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

====================================================

想要了解或购买IntelliJ IDEA正版授权的朋友,欢迎

JetBrain技术交流群现已开通,QQ搜索群号“786598704或者扫描下方二维码即可加入


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP