Files
IC-Coder-Plugin/docs/code-changes-feature.md
2026-03-02 10:00:04 +08:00

1.5 KiB

代码变更审查功能

功能概述

AI 修改文件后,会在输入框上方显示"代码变更"面板,用户可以查看所有修改并选择采纳或拒绝。

核心文件

1. 数据结构

  • src/types/fileChanges.ts - 变更数据类型定义

2. 服务层

  • src/services/changeTracker.ts - 变更追踪服务(单例)
    • trackChange() - 记录文件变更
    • acceptChange() - 采纳变更(保存文件)
    • rejectChange() - 拒绝变更(恢复旧内容)

3. UI 组件

  • src/views/changePanel.ts - 变更面板 UI
  • src/utils/diffRenderer.ts - Diff 可视化渲染

4. 集成点

  • src/utils/messageHandler.ts - 消息处理

    • trackFileChange() - 记录变更
    • handleAcceptChange() - 处理采纳
    • handleRejectChange() - 处理拒绝
    • sendChangesToWebview() - 发送变更到前端
  • src/services/toolExecutor.ts - 工具执行器

    • executeFileWrite() 中记录变更

使用流程

  1. 开始对话 - 调用 startChangeSession(sessionId)
  2. 修改文件 - 自动调用 trackFileChange()
  3. 对话结束 - 调用 sendChangesToWebview() 显示变更面板
  4. 用户操作 - 点击采纳/拒绝按钮
  5. 处理结果 - 保存或恢复文件内容

待完成工作

  1. 在 ICHelperPanel 中集成消息处理(监听 acceptChange/rejectChange 命令)
  2. 在对话结束时调用 sendChangesToWebview()
  3. 在 Webview 中实现变更列表的动态渲染
  4. 处理前端的采纳/拒绝响应