Continue + VS Code自动化编程方案框架
当前LLM的能力越来越强,结合Continue、VS等工具,以具备备独立编程和完成项目的能力。
比如将Continue与 VS Code 内置的测试探针(Test Adapter)、终端输出和 Lint 信息深度绑定。
这里尝试提供一套从手动闭环到全自动闭环的自动编程框架方案。
1 基础设施
要形成闭环,LLM必须看得见测试结果和报错信息。
1)开启 Continue 的自动上下文
在 VS Code 设置中,确保 Continue 的Experimental选项中开启enableInlineCompletion和automaticContext。
2)绑定测试命令
在keybindings.json中为测试命令绑定快捷键(如Ctrl+; T运行当前测试),方便后续 AI 调用。
3)安装 MCP(模型上下文协议)服务器
通过 Continue 的 MCP 配置,挂载一个exec工具,让 AI 有权执行npm test或pytest并读取 stdout/stderr。
2 三层闭环
2.1 人工触发式闭环
人工触发式闭环最稳定,适合日常开发,也适合开发一些复杂算法、复杂数据处理流程。
利用 Continue 的Slash Commands和Context 引用:
1)编程
选中函数,输入/edit编写核心逻辑。
2)测试
选中代码,输入/comment说“基于这个函数生成单元测试用例”。
Continue 会生成测试代码并插入同目录。
3)验证
手动点击 VS Code 测试面板的运行按钮,将失败的堆栈信息(Terminal 输出)全选。
4)修复
在 Continue 对话框输入@terminal(引用终端输出)并说“修复这个报错”。
AI 结合报错精准打补丁。
2.2 半自动指令闭环
利用 Task 功能,构建半自动指令闭环,适合模式固定、功能校简单的代码自动化开发。
在 Continue 中开启Agent Mode(代理模式),输入一条复合指令:
/task 请完成以下闭环:编写一个 isPrime 函数;紧接着在 test.js 中编写对应的 Jest 测试用例;然后执行 npm test;如果测试失败,读取 terminal 日志,自动修正 isPrime 逻辑,重复执行直到测试通过。
Agent 模式会调用内置工具执行命令,并根据输出进行多轮自我修正。
如果目标代码比较复杂,设计到多个复杂算法的实现,数据流程复杂,不太推荐这种方式。
2.3 全自动 Git Hooks 闭环
这是最自动化的方案,但可能不太成熟。
具体为:
借助 Continue 的自定义规则(Rules)+ VS Code 的Run on Save插件。
1)配置.continue/rules.json
设置当检测到.ts文件保存时,自动触发npm run test:related。
2)将测试结果(Json)通过管道传给 Continue 的autofix功能。
3)测试覆盖率低于阈值,生成补充测试代码写入文件,形成Save->Test->Fix->Re-save循环。
3. 闭环示例
假设要重构一个复杂的排序函数。
1)编程
写一个新函数quickSort。 自动补全代码结构。
2)测试
输入/test或右键选择 “Continue: Generate Tests”。
扫描原函数入参/出参,自动生成边界测试(空数组、重复值、大数)。
3)验证
快捷键运行测试,终端报错TypeError: undefined。
闭环关键:点击 Continue 对话框的"Attach Context"选择Terminal Selection。
4)诊断
提问:“为什么报错?” AI 定位到未处理null值,并给出修复代码。
5)二次验证
点击生成的修复代码中的"Apply"。
代码自动替换,再次手动运行测试,全绿通过。
reference
---
AI编程提效新范式:Continue开源工具全栈应用指南
https://blog.gitcode.com/87cf4272894ce3dda314d8ed73e835b4.html
在VS Code中借助AI自动编写单元测试和集成测试
https://www.php.cn/faq/1822998.html
Check on Your Spaghetti Software Factory
https://blog.continue.dev/spaghetti-software-factory
