PhpStorm 2021.3 Help

分析重复项

PhpStorm 通过重复代码片段 检查帮助您在特定文件集中找到重复的代码块。如果您通过编写或粘贴代码创建副本,PhpStorm 会立即突出显示它并建议快速修复。

该检查开箱即用,并具有许多设置,您可以更改这些设置以调整其行为。

要一次查看所选文件集中的所有重复项,请按名称运行检查

即时检测重复项

配置检查

  1. Ctrl+Alt+S打开 IDE 设置并选择Editor | 检查

  2. 确保在配置文件列表中选择了必要的检查配置文件。

    重复代码片段检查设置
  3. 在“检查”对话框的搜索字段中,键入duplicated code fragment以在列表中查找检查。

    单击检查后,其设置将显示在右侧。

    • 严重性:从列表中选择一个严重性级别创建一个新级别。

    • 范围:选择要在其中进行检查的文件的范围(将要运行检查的代码)。

    • Show duplicates from:选择要从中显示重复项的文件集。

      您可以将分析限制为仅查看来自同一模块或同一文件的重复项,以避免误报结果。

    • 跳过重复项比: 配置与所选文件集中的其余代码进行比较的代码片段的大小(以单位为单位)。

      默认值是准确性和找到的重复项数量之间的折衷。增加该值以获得更准确的结果。减小该值以查找更多重复项。

      单位的准确值可以计算如下:units = 2 * number of statements + number of expressions.

    • 选择此检查将适用的语言。

  4. 应用更改并关闭对话框。

搜索重复项时忽略名称和值

对于每种文件类型,您可以定义是否应将仅在名称或值上不同的相同实体视为重复项。

  1. Ctrl+Alt+S打开 IDE 设置并选择Editor | 重复

  2. 选择要应用分析的文件类型,然后选择要匿名化的结构旁边的复选框。

    匿名构造

    例如,如果启用了变量或标识符名称函数或字段名称,则以下两个函数将被视为重复:

    函数乘法($a, $b) { 返回 ($a * $b); } 函数乘法器($c, $d) { return ($c * $d); }

  3. 应用更改并关闭对话框。

该对话框还允许您从分析和索引中完全排除一种语言。如果您在此页面禁用某种语言,该语言将隐藏在检查设置中

手动搜索重复项(已弃用)

  1. 从主菜单中,选择代码 | 分析代码 | 找到重复...

  2. 在“指定代码重复分析范围”对话框中,指定分析范围:整个项目、当前文件、未提交的文件(对于受版本控制的项目)或某些自定义范围。此外,您也可以在分析中包含测试源。

  3. 在“代码重复分析设置”对话框中,选择要分析的语言。

    对于每种语言,检查选项以定义分析首选项。例如,您可以选择为被视为重复的代码片段请求相同的匹配,或指定某个限制,低于该限制的代码构造不被视为重复(例如,避免报告if源代码中的每个构造)。

  4. Duplicates 工具窗口中,探索分析结果。

    复制工具窗口
    • 在工具窗口的左窗格中查看重复项列表。

    • 在右窗格中查看找到的重复项之间的差异。使用箭头按钮将选定的副本放置在差异查看器的某个部分中并比较代码片段。

    • 使用Jump to SourceShow Source上下文菜单命令导航到编辑器中的重复项。

    • 通过将Extract 方法重构应用于检测到的重复代码块,这些代码块会自动找到并突出显示,从而消除源代码 中的重复项。

最后修改:2021 年 8 月 27 日