AI Diff Review对AI 编码智能体(opencode、Cursor、Claude Code、Trae、Aider 等)产生的文件改动进行 逐块人工审查:可以逐条接受、逐条拒绝,也可以按文件或一键全部接受 / 拒绝。 原理扩展会在文件系统层面记录一份 基线(baseline),也就是改动之前的文件内容。之后任何外部程序(包括 opencode)对工作区文件的改动都会被文件监听器捕获,并与基线对比生成 diff:
因为接受 / 拒绝操作只影响被选中的 diff 块,所以可以做到“改 10 处,接受 7 处、拒绝 3 处”。 使用
命令(命令面板
|
| 命令 | 说明 |
|---|---|
AI 审查: 打开审查面板 |
打开完整审查面板 |
AI 审查: 创建检查点 |
为还没有基线的文件补建检查点(幂等,不破坏已有待审查项) |
AI 审查: 重置检查点 |
清空基线并以当前内容重新建立(会丢弃所有待审查项) |
AI 审查: 全部接受 |
接受全部改动 |
AI 审查: 全部拒绝 |
拒绝全部改动(有确认弹窗) |
AI 审查: 刷新 |
重新扫描工作区 |
审查入口
侧边栏(AI 审查 活动栏)
- 上半部分 待审查改动:按 文件 → 改动块 两级展示的树视图。点击文件即可在右侧审查面板中打开该文件;行内按钮可逐块 / 按文件接受或拒绝。
- 下半部分 全局操作:全局的 全部接受 (N) / 全部拒绝 (N) 按钮,作用于所有待审查文件。
审查面板(Webview,推荐)
- 每次只显示当前打开的那一个文件,且显示的是整份文件内容(未改动行也完整显示,改动行高亮,删除行就地插入),而不是只显示变更片段。
- 顶部工具栏是当前文件的操作:接受当前文件 / 拒绝当前文件(外加刷新)。
- 文件信息条只显示路径 / 状态 / 增删统计,以及 打开原生对比 / 在资源管理器中显示,不放置接受或拒绝按钮。
- 文件内部的每个改动块头部有块级的 接受 / 拒绝,位于块标题行内,不遮挡代码。
- 任何接受 / 拒绝后,剩余块、行号、增删计数都会实时刷新。
- 当前文件不会自动跳到下一个文件:当它没有差异(全部接受、全部拒绝或部分处理完)后,面板会继续显示该文件操作后的最终内容 —— 全部接受显示接受后的内容,全部拒绝显示原始内容,部分接受/拒绝显示最终结果。要查看其它文件,在左侧点击即可。
原生 diff 编辑器
- 点
打开原生对比或执行AI 审查: 打开原生对比打开 VS Code 内置 diff(基线 ↔ 工作区,整份文件)。 - 为避免遮挡代码,块级操作放在悬停菜单里(鼠标移到某一块上即出现
接受此改动 / 拒绝此改动);编辑器标题栏只有文件级按钮(全局操作已移到底部「全局操作」)。 - 接受 / 拒绝后 diff 两侧内容实时更新,当某文件全部审查完毕时其 diff 标签页会自动关闭,避免残留旧内容。
设置项
| 设置 | 默认值 | 说明 |
|---|---|---|
aiReview.autoCheckpoint |
true |
激活时自动建立检查点(仅补齐缺失的基线) |
aiReview.baselineFromGit |
false |
以 git HEAD 作为基线,让已有的未提交改动也进入审查 |
aiReview.ignore |
见下 | 不纳入审查的 glob |
aiReview.maxTextFileKB |
4096 |
超过此大小的文本文件只支持文件级接受/拒绝 |
aiReview.showStatusBar |
true |
显示状态栏计数 |
aiReview.debounceMs |
150 |
文件变更防抖时间(毫秒) |
默认忽略:.git、node_modules、out、dist、build、各类 lock 文件等。
与 opencode 配合
opencode 直接写入磁盘文件,因此扩展的监听器会自动捕获,无需任何额外集成。推荐流程:
- 在 opencode 开始任务前,先确认扩展已激活(打开过一次工作区即可)。
- 编码助手改完文件后,在「AI 审查」面板里审查。
- 逐块接受 / 拒绝,或一键处理。
若希望每次任务前都刷新一个干净的基线,可配置 aiReview.baselineFromGit: true,这样审查范围就是相对 HEAD 的所有改动。
开发与调试
npm install
npm run compile # 或 npm run watch
在 VS Code 中按 F5 启动 Extension Development Host,在新窗口里打开任意工程即可测试。
按 Ctrl+Shift+P → Developer: Show Running Extensions 可确认扩展已加载。
打包安装:
npm run package # 生成 ai-diff-review-0.1.0.vsix
code --install-extension ai-diff-review-0.1.0.vsix
已知限制
- 只追踪工作区内的文件(
filescheme)。 - 二进制文件与超大文件仅支持文件级接受 / 拒绝。
- 基线存放在扩展的 workspace storage 中,不污染工程目录,但不同机器 / 工作区之间不共享。
- 未保存的编辑器缓冲不参与比较,比较对象是磁盘内容。