Continue + VS Code自动化编程方案框架

当前LLM的能力越来越强,结合Continue、VS等工具,以具备备独立编程和完成项目的能力。

比如将Continue与 VS Code 内置的测试探针(Test Adapter)、终端输出和 Lint 信息深度绑定。

这里尝试提供一套从手动闭环到全自动闭环的自动编程框架方案。

1 基础设施

要形成闭环,LLM必须看得见测试结果和报错信息。

1)开启 Continue 的自动上下文

在 VS Code 设置中,确保 Continue 的Experimental选项中开启enableInlineCompletionautomaticContext

2)绑定测试命令

keybindings.json中为测试命令绑定快捷键(如Ctrl+; T运行当前测试),方便后续 AI 调用。

3)安装 MCP(模型上下文协议)服务器

通过 Continue 的 MCP 配置,挂载一个exec工具,让 AI 有权执行npm testpytest并读取 stdout/stderr。

2 三层闭环

2.1 人工触发式闭环

人工触发式闭环最稳定,适合日常开发,也适合开发一些复杂算法、复杂数据处理流程。

利用 Continue 的Slash CommandsContext 引用

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