代码评审

编程助手推出智能评审辅助的新功能。这项功能旨在为 VS Code 和 JetBrains IDEs 上的开发者们提供全面支持,包括 AI 辅助自评审 和 AI 提交信息生成两大核心功能。通过这些功能,开发者能够在项目开发过程中及时发现并解决本地代码变更可能引入的问题,从而提高代码质量,加速开发流程。

前提条件

使用评审变更功能需要具备 Git 环境,您可以根据自己的操作系统先 安装 Git。否则直接使用会出现报错。

image1

AI 辅助自评审

AI 辅助自评审功能,旨在提高 IDE 下的代码自我审查的效率和质量。可以通过 CR(Code Review) 面板或者代码编辑区触发本地自动化代码审查(AICR)。

CR 面板触发

AI Copilot支持三种评审范围:

  • 评审文件(指定单个或多个文件)
  • 评审变更(当前暂存区代码变更)
  • 评审编辑区(指定编辑区内容)

image1

评审编辑区

在打开的代码文件编辑区中,可以通过圈选代码区域触发 IDE 编辑区范围内的代码作为评审内容。

说明:

如果在编辑区进行了划词圈选操作,触发评审功能后会将划词圈选部分的代码作为评审范围。如果未进行划词圈选,触发评审功能后会将编辑区正打开的整个文件作为评审范围。

  • 圈选代码区域后,可以直接单击评审编辑区触发 CR 自动评审功能。

image1

  • 圈选代码区域后,也可以右键选择 AI Copilot > 代码评审来触发评审功能。

image1

  • 圈选代码区域后,也可以单击代码操作的小灯泡来触发评审功能。

image1

  • 对于方法级评审,可以直接单击方法上方的代码评审来触发评审功能。

image1

评审文件

在 CR 面板,单击评审文件,进行评审文件的选择,支持按最近打开和文件名搜索的方式进行选择。选择评审文件后,将会触发该文件的智能评审辅助。

image1

代码助手支持多文件评审,单击 + 号可以继续追加文件。多文件的评审一次最多支持评审十个文件。

image1

评审变更

单击评审变更,将评审 IDE 内暂存区的所有文件。本指令将评审暂存区文件的变更部分,非变更部分将不评审。

目前将最多评审暂存区的三十个文件。

image1

触发评审

您可以根据自己的需求,选择评审范围。例如:

  • 选择评审文件进行评审时,选择评审文件后单击评审,将直接触发对所选文件的评审。

image1

  • 选择评审变更进行评审时,单击评审变更后直接对当前暂存区中的代码变更进行评审。

image1

评审执行

根据您选择的评审范围大小,会在 CR 面板中有不同的评审过程的交互。在底部条有一个进行状态,当选择的评审范围较大的时候,可能会有等待时间。您也可以继续当前工作,直到评审出结果后返回到代码助手 CR 面板中查看结果。

image1

查看评审结果

  • 代码评审结束后,在 CR 面板内将直接返回评审结果对应的代码片段或所选文件范围。同时支持显示每个评审意见所对应的代码行。单击 CR 面板中的评审结果列表,将跳转定位到对应文件的对应代码行查看意见。对于每个评审意见,都有对应的蓝色区域进行区分,如下图所示:

image1

  • 代码评审结束后,在 IDE 站内也能接收通知,点击查看全部内容可以跳转到评审结果列表查看结果。

image1

如何进行代码修复

评审返回评审结果后,您可以针对代码助手给出的评审意见进行修复。

image1

单击修复后,代码助手会根据评审意见调用 /fix 指令进行分析并给出修复方案。

image1

代码助手给出修复方案后,您可以根据需要选择合适的方式应用代码。

image1

如何忽略 AI 建议

如果对 AI 提出的意见不满意,或者不希望提示干扰代码编写和查看,可以进行忽略操作。

  • 可以在评审意见的右侧进行关闭,忽略此条评审意见。
  • 或者在 CR 面板的评审结果中,对本次评审输出的全部意见进行批量忽略。

image1

AI 评审限制

为保证响应,目前对于评审大小有一定的限制,限制条件如下:

  • 变更文件应包含新增行(+),所在完整函数不应超过100行。
  • 单个文件大小应小于1M。
  • 符合前2个条件的有效变更文件,文件数最大应不超过1000个,变更行数不超过10000行。
  • 文件黑名单检查(常见的配置文件、二进制文件、无后缀文件等),以及当前黑名单列表(可能有动态调整,目前更新到2024.10月)如下:

注意,不支持评审的文件类型:"go.mod", "go.sum", "_test.go", "Test.java", "test.cpp", ".test", ".yaml", ".yml", ".ini", ".json", ".proto", ".md", ".txt", "mock", "_mock", ".md", ".gradle", "pom.xml", "package.json", ".gitignore", ".gitmodules", ".npmignore", ".yarnignore", ".babelrc", ".eslintrc", ".stylelintrc", ".jshintrc", ".editorconfig", ".env", ".swp", ".cache", ".log", ".gem", ".lock", ".min.js", ".min.css", ".map", ".bundle.js", "bundle.css", ".d.ts", ".service-worker.js", ".pb.go", ".pb.cc", ".pb", ".designer.cs", ".pyc", ".pyd", ".pyo", ".whl", ".luac", ".toc", "wire_gen.go", ".svg", ".cmake"

AI 提交信息生成

在本地 IDE 中提交代码变更时,支持一键唤起 AI,自动基于提交变更生成代码提交信息。该信息默认遵守 Conventional 提交信息规范,支持设置生成的语言、风格。借助 AI 快速生成规范化的提交信息,帮助开发者提升效率。

image1

设置风格、语言

设置 AI 提交信息语言及信息风格

进入到插件设置里,在 Commit Message Language 中,配置 AI 提交信息语言,目前支持中文(默认)、英文。在 Commit Message Style 中,选择配置 AI 提交信息生成的风格,如下图。

  • 风格1:生成变更摘要。
  • 风格2:根据 Conventional 社区规范。
  • 风格3:参考仓库历史提交。

image1

results matching ""

    No results matching ""