51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
# 代码变更审查功能 - 使用说明
|
||
|
||
## 功能说明
|
||
|
||
AI 修改文件后,会在输入框上方显示"代码变更"面板,用户可以:
|
||
- 查看所有修改的文件列表
|
||
- 点击文件查看 diff 对比
|
||
- 采纳变更(保存文件)
|
||
- 拒绝变更(恢复旧内容)
|
||
|
||
## 已完成的集成
|
||
|
||
### 1. 后端集成
|
||
- ✅ 在 `ICHelperPanel.ts` 中添加了消息监听(acceptChange/rejectChange)
|
||
- ✅ 在发送消息时启动变更追踪会话
|
||
- ✅ 在文件操作时自动记录变更(messageHandler.ts、toolExecutor.ts)
|
||
|
||
### 2. 前端集成
|
||
- ✅ 在 `webviewContent.ts` 中添加了消息处理(showChanges/changeAccepted/changeRejected)
|
||
- ✅ 在 `changePanel.ts` 中实现了完整的 UI 交互逻辑
|
||
|
||
### 3. 核心功能
|
||
- ✅ 变更追踪服务(changeTracker.ts)
|
||
- ✅ Diff 可视化渲染(diffRenderer.ts)
|
||
- ✅ 采纳/拒绝变更逻辑
|
||
|
||
## 待完成工作
|
||
|
||
需要在对话结束时调用 `sendChangesToWebview(panel)` 来显示变更面板。
|
||
|
||
建议在以下位置添加:
|
||
1. 在 `handleUserMessage` 函数中,对话流结束时
|
||
2. 或在 `dialogManager` 的对话完成回调中
|
||
|
||
示例代码:
|
||
```typescript
|
||
// 对话结束时
|
||
import { sendChangesToWebview } from '../utils/messageHandler';
|
||
|
||
// 在对话完成的地方调用
|
||
sendChangesToWebview(panel);
|
||
```
|
||
|
||
## 测试步骤
|
||
|
||
1. 启动插件(F5)
|
||
2. 发送消息让 AI 修改文件
|
||
3. 对话结束后,输入框上方应显示"代码变更"面板
|
||
4. 点击文件查看 diff
|
||
5. 点击"采纳"或"拒绝"按钮测试功能
|