☰
Void 编辑器 AI 功能开发入门:4 步写出你的第一个 AI 扩展
2026/10/5 0:57:57 网站建设 项目流程

Void 编辑器 AI 功能开发入门:4 步写出你的第一个 AI 扩展

【免费下载链接】void开源AI代码编辑器,Cursor的替代方案。项目地址: https://gitcode.com/GitHub_Trending/void2/void

开源 AI 代码编辑器 Void 是 Cursor 的替代方案,它的 AI 功能开发源码全部开放。本文按动手视角拆解 4 步:跑通构建、找到 AI 模块、写出第一个扩展、验证效果。

跑起来 Void 开发环境:克隆仓库并装好依赖

Void 是 VS Code 的 fork,构建体系沿用 gulp + npm,不用学新工具链。克隆下来装依赖,就能进入开发循环:

git clone https://gitcode.com/GitHub_Trending/void2/void cd void npm install

装完后用npm run watch挂起监听编译,它会持续编译主进程与内置扩展。首次构建耗时较长,建议等它编译完成再动手改代码,避免读到半成品产物。

AI 能力长在哪:锁定 contrib/void 模块

AI 功能的主逻辑集中在 src/vs/workbench/contrib/void/。contrib 是工作台的功能分区方式,一个模块管一个领域,AI 是其中一个。

这里能直接看到核心能力:chatThreadService.ts管对话线程,autocompleteService.ts负责行内补全,editCodeService.ts执行按指令改代码的流程,contextGatheringService.ts收集光标周边上下文。落到代码上更关键的是依赖清单——顶层package.json直接依赖openai、ollama、@anthropic-ai/sdk与@modelcontextprotocol/sdk,说明它同时支持多家云端模型、Ollama 本地模型,并可通过 MCP 扩展工具调用。你的新功能大概率要接的就是这套通道。

写第一个扩展:把 references-view 当模板

新人不必直接改 contrib,Void 扩展开发最稳的入口是 extensions/ 目录,每个子目录就是一个自包含扩展。extensions/references-view/ 是个好模板:它监听语言服务事件,把用户选中符号的引用整理成树状视图。语言服务可以理解为按语言做解析、查符号的那层服务,它是大多数 AI 功能的数据源。

扩展的最小骨架

一个扩展必须有两样东西:package.json里声明贡献点与main入口,以及入口文件导出的activate函数。注意扩展不跑在编辑器主进程里,它被加载到独立的"扩展宿主"进程,通过 API 与界面通信——这层隔离决定了你写扩展不会直接污染工作台。

让扩展干点智能的事

最短路径是注册一个命令:在contributes.commands声明命令,在activate里用vscode.commands.registerCommand拿到当前文件内容,交给模型处理。调模型的写法可直接参考contrib/void里对各家 SDK 的封装,流式输出和错误重试都已处理好,照抄模式即可。

给 AI 功能加配置项:接入设置系统

功能能跑之后,用户会想换模型、调参数。扩展只需在package.json声明configuration贡献点,设置面板会自动生成对应界面,无需手写表单。设置系统的底座在 src/vs/platform/configuration/,而 AI 侧的voidSettingsService.ts展示了按 key 读写配置的完整姿势,你的扩展可以复用同样的模式。

写完怎么验证:用开发模式跑通并看日志

验证顺序建议是:启动开发构建(./scripts/code.sh)→ 在编辑器里执行你的命令 → 看扩展宿主终端有没有报错。别只确认"界面打开了",要确认数据真的到了模型、响应真的渲染出来了;语言相关扩展再切到输出面板确认请求到达了语言服务。

📋 常见卡点速查:

现象先查哪里
编译完但编辑器起不来npm run watch是否编译完成,产物目录是否生成
扩展命令不出现package.json的main路径、activate是否正确导出
AI 请求返回空或报错模型密钥是否配置、Ollama 本地服务是否在运行

回到最初的问题:Void 的 AI 能力长在contrib/void,新功能从 extensions/ 目录起步最稳,验证靠开发模式加读日志。把这条链路完整走一遍,你就具备继续深入的基础。

【免费下载链接】void开源AI代码编辑器,Cursor的替代方案。项目地址: https://gitcode.com/GitHub_Trending/void2/void

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询