代码审查
开发者能够在项目开发过程中基于公司规范或通用规范(默认),对代码的功能、规范、逻辑、工程结构等内容进行审查。及时发现并解决本地代码变更可能引入的问题,从而提高代码质量,加速研发流程。支持针对代码文件、代码块、代码 diff 进行审查。
功能介绍
支持文件类型
1Java:'.java'
2Python:'.py'
3Go:'.go'
4JavaScript:'.js'
5TypeScript:'.ts'
6C:'.c'
7C++:'.cpp'、'.cc'、'.cxx'、'.hpp'、'.hh'、'.hxx'、'.h'
支持的文件数量
为保证效果,我们建议您每次审查的文件数量不超过5个,审查总行数不超过1万行。
规范文件格式
Markdown 格式文件效果最好(同时支持pdf等其他文本格式),您需要将文件上传至管理后台的知识集中,字数限制1万字。请确保审查时选择的知识集中只有一篇规范文件,以便保证审查效果。
规范文件示例
- id:规范标号
- full_rule_description:具体规范内容
- example:规范示例说明,您可以加入正例或反例说明
- 为保证效果,您可以直接复制如下格式,并在此基础上进行修改
1- **id:** 1
2- **full_rule_description:** [Java 开发手册] POJO类的布尔属性不加is,数据库字段加is_,并在resultMap中映射。
3- **example:** 说明:遵循POJO类与数据库字段定义规范。
4---
5- **id:** 2
6- **full_rule_description:** [OOP 规约] 所有的覆写方法必须加 @Override 注解。
7- **example:** 说明:getObject()与 get0bject()的问题。一个是字母的 O,一个是数字的 0,加@Override 可以准确判断是否覆盖成功。
8---
9- **id:** 3
10- **full_rule_description:** [Java 开发手册] 在使用 java.util.stream.Collectors 类的 toMap()方法转为 Map 集合时,必须使用含有参数类型为 BinaryOperator,参数名为 mergeFunction 的方法,否则当出现相同 key 值时会抛出 IllegalStateException 异常。
11- **example:** 说明:参数 mergeFunction 的作用是当出现 key 重复时,自定义对 value 的处理策略。
12正例:List<Pair<String, Double>> pairArrayList = ...;
13Map<String, Double> map = pairArrayList.stream().collect(Collectors.toMap(Pair::getKey, Pair::getValue, (v1, v2) -> v2));
14反例:String[] departments = ...;
15Map<Integer, String> map = Arrays.stream(departments).collect(Collectors.toMap(String::hashCode, str -> str)); // 抛出 IllegalStateException 异常
使用说明
功能入口
在问答输入框选择指令,或输入“/”,选择代码审查指令

选择审查范围
- 针对代码块审查 支持选择代码审查指令后进行代码划选,回车后进行审查。

- 针对文件进行审查 您可以选择多个文件进行审查,注意,为了保证效果,请每次尽量选择5个以内的文件进行审查。

- 针对文件 #diff 进行审查 代码审查仅针对「暂存的更改」进行审查,您需要将需要审查的文件放入暂存的更改中(建议不超过5个)。您可以选择代码审查指令后,选 #diff,针对文件更改部分进行审查。



选择公司规范
支持选择具体的代码规范文件,基于公司自身规范对代码内容进行审查。请确保审查时选择的知识集中只有一篇规范文件(Markdown格式文件效果最好),以便保证审查效果。

查看审查结果
在问答区,输出审查文件中存在的问题和修复建议。点击代码审查文件,右侧编辑区展示具体评审意见细节。在具体问题代码下方展示意见弹框,支持查看上一条、下一条问题,支持折叠,支持删除该条评论。

hover文件,支持针对文件级别的忽略和一键修复。

修复问题
点击文件的「一键修复」按钮,针对问题进行修复,并输出修复后的代码。可以点击「查看变更」在编辑区查看具体内容。

点击查看变更后,右侧编辑区出现增加、删除的具体代码内容,支持点击右上角「✅、❌」进行采纳和忽略。

采纳后,文件hover后显示「已采纳」;忽略后,文件hover后显示「已修复,待采纳」,点开文件后可以再次进行采纳操作。


常见问题
审查范围
支持#diff、文件审查、代码框选同时进行审查。
- 选择代码块+文件:如果是不同文件,审查代码块+文件;如果是相同文件,只审查框选代码块。
- 选择代码块+diff:审查代码块+diff。
- 选择文件+diff:如果是不同文件,审查文件+diff;如果是相同文件,审查整个文件。
不支持用户输入query
当前代码审查功能仅支持「指令+代码+规范文件」的审查,不支持用户个性化query的输出,不支持多轮追问。
针对先选择文件,后选指令情况
若输入框中已有文件或文字,选择/代码审查指令后,输出框会进行前序内容清空。
不支持针对目录和当前代码库内容审查
当前不支持针对目录和当前代码库内容审查,如用户输入内容,返回结果时会进行忽略。
文件diff说明
当前仅针对暂存的更改内容进行审查,请将更改列表中的文件移至「暂存的更改」中。