1- # 代码重构助手 VSCode 插件文档
1+ # 代码重构助手 VSCode 插件文档
22
3- ## 概述
4- 代码重构助手是一个 VSCode 插件,旨在帮助开发者更高效地与 DeepSeek API 进行交互,支持多文件代码重构、版本管理、文件对比等功能。通过 CVB(Code Version Backup)文件格式,插件能够将多个代码文件合并为一个文件,并支持上传重构请求、解析 API 反馈、版本回溯等操作。
3+ ## 概述
4+ 代码重构助手是一个 VSCode 插件,旨在帮助开发者更高效地与 DeepSeek API 进行交互,支持多文件代码重构、版本管理、文件对比等功能。通过 CVB(Code Version Backup)文件格式,插件能够将多个代码文件合并为一个文件,并支持上传重构请求、解析 API 反馈、版本回溯等操作。
55
6- ## 功能列表
6+ ## 功能列表
77
8- ### 1. 文件列表生成与排序
9- 将当前工作目录下的代码源文件全选或部分选择,生成一个文件列表。
8+ ### 1. 文件列表生成与排序
9+ 将当前工作目录下的代码源文件全选或部分选择,生成一个文件列表。
1010
11- 文件列表根据字典序排序。
11+ 文件列表根据字典序排序。
1212
13- ### 2. 代码文件合并
14- 将选中的代码文件按顺序合并为一个 CVB 文件。
13+ ### 2. 代码文件合并
14+ 将选中的代码文件按顺序合并为一个 CVB 文件。
1515
16- 文件格式如下:
16+ 文件格式如下:
1717@@@BEGIN_CVB@@@
1818@@@META @@@
19- @用户需求:用户输入的重构需求
20- @时间戳:生成时间
19+ @用户需求:用户输入的重构需求
20+ @时间戳:生成时间
2121@@@END_META@@@
2222
23- @@@FILE :文件路径1@@@
24- 文件1内容
23+ @@@FILE :文件路径1@@@
24+ 文件1内容
2525@@@END_FILE@@@
2626
27- @@@FILE :文件路径2@@@
28- 文件2内容
27+ @@@FILE :文件路径2@@@
28+ 文件2内容
2929@@@END_FILE@@@
3030@@@END_CVB@@@
3131
32- 复制
32+ 复制
3333
34- 合并后的文件保存在临时工作目录中,命名为 ` 时间戳.cvb ` 。
34+ 合并后的文件保存在临时工作目录中,命名为 ` 时间戳.cvb ` 。
3535
36- ### 3. 重构请求上传
37- 用户输入重构需求(如“将所有鼠标事件处理代码移动到一个文件中”)。
36+ ### 3. 重构请求上传
37+ 用户输入重构需求(如“将所有鼠标事件处理代码移动到一个文件中”)。
3838
39- 将 CVB 文件内容与用户需求拼接,调用 DeepSeek API 上传请求。
39+ 将 CVB 文件内容与用户需求拼接,调用 DeepSeek API 上传请求。
4040
41- ### 4. API 反馈解析
42- 接收 DeepSeek API 返回的字符串,解析出符合 CVB 格式的内容。
41+ ### 4. API 反馈解析
42+ 接收 DeepSeek API 返回的字符串,解析出符合 CVB 格式的内容。
4343
44- 提取元数据(如用户需求、时间戳)和文件内容。
44+ 提取元数据(如用户需求、时间戳)和文件内容。
4545
46- 将解析后的 CVB 内容保存为新的 ` .cvb ` 文件。
46+ 将解析后的 CVB 内容保存为新的 ` .cvb ` 文件。
4747
48- ### 5. 版本管理
49- 提供一个 CVB 文件列表,按时间顺序显示所有生成的 CVB 文件。
48+ ### 5. 版本管理
49+ 提供一个 CVB 文件列表,按时间顺序显示所有生成的 CVB 文件。
5050
51- 支持查看、应用或删除某个 CVB 文件。
51+ 支持查看、应用或删除某个 CVB 文件。
5252
53- ### 6. 文件对比
54- 支持对比不同版本的 CVB 文件。
53+ ### 6. 文件对比
54+ 支持对比不同版本的 CVB 文件。
5555
56- 可配置外部 Diff 工具(如 Beyond Compare)进行文件对比。
56+ 可配置外部 Diff 工具(如 Beyond Compare)进行文件对比。
5757
58- ## 使用场景
58+ ## 使用场景
5959
60- ### 重构 C++ 工程
61- 按照 MVC 模型重新拆分代码,将外部输入处理代码移动到单独文件中。
62- 梳理代码逻辑,优化不合理的结构。
60+ ### 重构 C++ 工程
61+ 按照 MVC 模型重新拆分代码,将外部输入处理代码移动到单独文件中。
62+ 梳理代码逻辑,优化不合理的结构。
6363
64- ### 编写新的 VSCode 插件
65- 提供多个模块的代码重构支持,帮助开发者快速整理代码结构。
64+ ### 编写新的 VSCode 插件
65+ 提供多个模块的代码重构支持,帮助开发者快速整理代码结构。
6666
67- ### 融合 C++ 工程
68- 将旧绘图库(如 xdraw)替换为新封装的 IMGUI 绘图库。
67+ ### 融合 C++ 工程
68+ 将旧绘图库(如 xdraw)替换为新封装的 IMGUI 绘图库。
6969
70- 替换旧的外部输入处理逻辑,使用新工程的逻辑。
70+ 替换旧的外部输入处理逻辑,使用新工程的逻辑。
7171
72- ## 代码结构
72+ ## 代码结构
7373
7474### ` extension.ts `
75- 插件入口文件,负责注册命令和处理用户交互。
76- 主要功能:
75+ 插件入口文件,负责注册命令和处理用户交互。
76+ 主要功能:
7777
78- - 生成 CVB 文件。
79- - 上传 CVB 文件并调用 DeepSeek API。
80- - 解析 API 返回的 CVB 内容并保存。
78+ - 生成 CVB 文件。
79+ - 上传 CVB 文件并调用 DeepSeek API。
80+ - 解析 API 返回的 CVB 内容并保存。
8181
8282### ` cvbManager.ts `
83- 负责 CVB 文件的生成与解析。
84- 主要功能:
83+ 负责 CVB 文件的生成与解析。
84+ 主要功能:
8585
86- - 将多个代码文件合并为 CVB 格式。
87- - 解析 API 返回的字符串,提取 CVB 内容、元数据和文件内容。
86+ - 将多个代码文件合并为 CVB 格式。
87+ - 解析 API 返回的字符串,提取 CVB 内容、元数据和文件内容。
8888
8989### ` deepseekApi.ts `
90- 负责与 DeepSeek API 的交互。
91- 主要功能:
90+ 负责与 DeepSeek API 的交互。
91+ 主要功能:
9292
93- - 调用 DeepSeek API,上传 CVB 内容和用户需求。
94- - 返回 API 的响应内容。
93+ - 调用 DeepSeek API,上传 CVB 内容和用户需求。
94+ - 返回 API 的响应内容。
9595
9696### ` fileSelector.ts `
97- 提供文件选择功能,支持用户选择需要重构的代码文件。
97+ 提供文件选择功能,支持用户选择需要重构的代码文件。
9898
99- ## 配置项
99+ ## 配置项
100100
101101### DeepSeek API Key
102- 在 VSCode 设置中配置 ` codeReDesign.deepSeekApiKey ` ,用于调用 DeepSeek API。
102+ 在 VSCode 设置中配置 ` codeReDesign.deepSeekApiKey ` ,用于调用 DeepSeek API。
103103
104- ### Diff 工具
105- 支持配置外部 Diff 工具(如 Beyond Compare),用于对比不同版本的 CVB 文件。
104+ ### Diff 工具
105+ 支持配置外部 Diff 工具(如 Beyond Compare),用于对比不同版本的 CVB 文件。
106106
107- ## 使用示例
107+ ## 使用示例
108108
109- ### 生成 CVB 文件
110- 1 . 打开 VSCode,右键点击工作区,选择 ` CodeReDesign: Generate CVB File ` 。
111- 2 . 选择需要重构的代码文件。
112- 3 . 输入重构需求(如“将所有鼠标事件处理代码移动到一个文件中”)。
113- 4 . 插件会生成一个 ` .cvb ` 文件,并保存到临时目录。
109+ ### 生成 CVB 文件
110+ 1 . 打开 VSCode,右键点击工作区,选择 ` CodeReDesign: Generate CVB File ` 。
111+ 2 . 选择需要重构的代码文件。
112+ 3 . 输入重构需求(如“将所有鼠标事件处理代码移动到一个文件中”)。
113+ 4 . 插件会生成一个 ` .cvb ` 文件,并保存到临时目录。
114114
115- ### 上传 CVB 文件并调用 API
116- 1 . 右键点击工作区,选择 ` CodeReDesign: Upload CVB and Call API ` 。
117- 2 . 选择需要上传的 ` .cvb ` 文件。
118- 3 . 输入提示词(如“重构代码以提高可读性”)。
119- 4 . 插件会调用 DeepSeek API,并将返回的 CVB 内容保存为新文件。
115+ ### 上传 CVB 文件并调用 API
116+ 1 . 右键点击工作区,选择 ` CodeReDesign: Upload CVB and Call API ` 。
117+ 2 . 选择需要上传的 ` .cvb ` 文件。
118+ 3 . 输入提示词(如“重构代码以提高可读性”)。
119+ 4 . 插件会调用 DeepSeek API,并将返回的 CVB 内容保存为新文件。
120120
121- ### 查看版本历史
122- 1 . 在临时目录中查看所有生成的 ` .cvb ` 文件。
123- 2 . 选择某个文件,查看其元数据和文件内容。
124- 3 . 支持应用或删除某个版本。
121+ ### 查看版本历史
122+ 1 . 在临时目录中查看所有生成的 ` .cvb ` 文件。
123+ 2 . 选择某个文件,查看其元数据和文件内容。
124+ 3 . 支持应用或删除某个版本。
125125
126- ## CVB 文件格式
126+ ## CVB 文件格式
127127
128- ### 文件结构
128+ ### 文件结构
129129@@@BEGIN_CVB@@@
130130@@@META @@@
131- @用户需求:用户输入的重构需求
132- @时间戳:生成时间
131+ @用户需求:用户输入的重构需求
132+ @时间戳:生成时间
133133@@@END_META@@@
134134
135- @@@FILE :文件路径1@@@
136- 文件1内容
135+ @@@FILE :文件路径1@@@
136+ 文件1内容
137137@@@END_FILE@@@
138138
139- @@@FILE :文件路径2@@@
140- 文件2内容
139+ @@@FILE :文件路径2@@@
140+ 文件2内容
141141@@@END_FILE@@@
142142@@@END_CVB@@@
143143
144- 复制
144+ 复制
145145
146- ### 示例
146+ ### 示例
147147@@@BEGIN_CVB@@@
148148@@@META @@@
149- @用户需求:将所有鼠标事件处理代码移动到一个文件中
150- @时间戳:2023-10-01T12:00:00Z
149+ @用户需求:将所有鼠标事件处理代码移动到一个文件中
150+ @时间戳:2023-10-01T12:00:00Z
151151@@@END_META@@@
152152
153153@@@FILE : src /main.cpp@@@
@@ -159,23 +159,23 @@ return 0;
159159
160160@@@FILE : src /input_handlers.cpp@@@
161161void handleMouseEvent() {
162- // 鼠标事件处理逻辑
162+ // 鼠标事件处理逻辑
163163}
164164@@@END_FILE@@@
165165@@@END_CVB@@@
166166
167- 复制
167+ 复制
168168
169- ## 注意事项
169+ ## 注意事项
170170
171- ### API Key 配置
172- 确保在 VSCode 设置中正确配置 ` codeReDesign.deepSeekApiKey ` ,否则无法调用 DeepSeek API。
171+ ### API Key 配置
172+ 确保在 VSCode 设置中正确配置 ` codeReDesign.deepSeekApiKey ` ,否则无法调用 DeepSeek API。
173173
174- ### CVB 文件格式
175- API 返回的字符串必须包含 ` @@@BEGIN_CVB@@@ ` 和 ` @@@END_CVB@@@ ` 标记,否则解析会失败。
174+ ### CVB 文件格式
175+ API 返回的字符串必须包含 ` @@@BEGIN_CVB@@@ ` 和 ` @@@END_CVB@@@ ` 标记,否则解析会失败。
176176
177- ### 文件编码
178- 插件支持自动检测和转换文件编码(如 UTF-8、GBK),确保代码内容正确读取。
177+ ### 文件编码
178+ 插件支持自动检测和转换文件编码(如 UTF-8、GBK),确保代码内容正确读取。
179179
180- ### 版本管理
181- 每次生成的 CVB 文件都会保存到临时目录,建议定期清理旧版本文件。
180+ ### 版本管理
181+ 每次生成的 CVB 文件都会保存到临时目录,建议定期清理旧版本文件。
0 commit comments