v0.2.0: VSCode内置Diff + QuickPick总览 + EditRecord粒度 + Bug修复

新增:
- VSCode内置Diff编辑器 (diffViewer.ts) 替代Webview,零保存提示
- EditRecord独立追踪: 每次Edit/Write不合并,支持逐次编辑Accept/Reject
- QuickPick文件列表总览,含Accept All / Reject All
- 智能Auto-Advance: Accept/Reject后自动推进,同文件多编辑智能停留
- 状态栏常驻显示  AI Diff,Diff模式下切换为操作按钮

修复:
- Accept后同文件再编辑不触发选项 (pending-priority匹配)
- Accept All / Reject All写入与状态顺序修复
- acceptFile/rejectFile改为先写入成功再标记状态
- 同文件多个FileChange孤儿编辑问题

变更:
- ChangeSetManager重构为EditRecord[] + FileChange聚合
- HookHandler精简,QuickPick移入hookHandler
- 移除InlineDecorator/CodeLens (主流程),ReviewPanel降级为备用
- package.json: publisher=YonHao Guo, repository, v0.2.0, 新配置项/快捷键

测试: 13/13通过 (7 diffEngine + 6 changeSetManager回归)
This commit is contained in:
2026-06-18 19:37:21 +08:00
parent fcda651760
commit dfa3a585c5
14 changed files with 1454 additions and 958 deletions
+48
View File
@@ -52,6 +52,7 @@
## 第五轮测试 - 内嵌悬浮窗验证
这次修改用于验证:
1. Webview 面板能否正常弹出
2. 双栏 Diff 是否正确显示新增/删除行
3. Accept 按钮是否生效
@@ -64,3 +65,50 @@
- 修复了所有已知问题
- 现在应该能正常工作
- 验证: 面板弹出 + Accept/Reject + 文件回写
## 第七轮测试
改动内容:
- 语法错误已修复
- API 调用已优化
- 新增错误处理逻辑
以下为原始代码(已删除):
```js
function oldApi() {
return fetch('/api').then(r => r.json());
}
```
替换为新的 async/await 写法:
```js
async function newApi() {
const res = await fetch('/api');
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.json();
}
```
## 第八轮测试
- 代码添加了错误处理
- 验证 CodeLens 按钮和状态栏是否正常显示
- 验证 Accept / Reject 快捷键是否生效
## 第九轮测试 - 多文件变更
同时修改了 3 个文件:
1. 测试.md - 本文件
2. test1.md - 新增功能模块
3. test2.md - 新增 API 和模块
验证:
- 状态栏显示 "3文件 N编辑"
- 点击弹出 Webview 总览面板
- 每个文件可展开查看详细 Diff
- Accept/Reject 按钮正常生效