用途
VS Code Extension Builder 是一份用于从零创建 VS Code 扩展的综合指南,帮助开发者以合理的架构、最佳实践和完整工具链支持来构建专业的 VS Code 扩展。当用户需要创建 VS Code 扩展时可以使用本指南。
主要能力
指南覆盖以下内容:
- 项目脚手架初始化
- VS Code API 使用
- 激活事件配置
- 扩展打包与发布
- 扩展类型选择(命令扩展、语言支持、Webview 扩展、树视图、调试器、主题、代码片段提供程序)
- 常见代码模式(简单命令、带用户输入的命令、文件操作命令、状态栏项)
- 参考文档导航(扩展结构、常用 API、激活事件、最佳实践)
使用方式
快速开始
- 初始化:运行
npx --package yo --package generator-code -- yo code - 选择类型:New Extension (TypeScript)
- 填写详情:名称、标识符、描述
- 开发:在 VS Code 中打开,按 F5 调试
- 测试:在 Extension Development Host 中运行命令
- 打包:准备就绪后运行
vsce package
核心工作流
- 收集需求:询问用户扩展的用途、类型、功能、UI 和激活时机。
- 选择扩展类型与架构:根据需求选择简单命令扩展、语言扩展或 Webview 扩展等模式。
- 初始化项目:推荐使用 Yeoman 生成器(
npx --package yo --package generator-code -- yo code),或从assets/templates/中的模板复制(command-extension/、language-support/、webview-extension/)。 - 实现核心功能:在
package.json中定义命令,在extension.ts中注册命令。 - 配置激活与贡献点:激活事件包括 onCommand、onLanguage、onView、*(尽量避免);贡献点包括 commands、menus、keybindings、languages、views、configuration。
- 测试与调试:按 F5 启动 Extension Development Host,使用 @vscode/test-electron 进行自动化测试。
- 打包与分发:更新 README、添加图标、设置仓库 URL、添加 LICENSE;运行
npm install -g @vscode/vsce和vsce package生成 .vsix 文件;使用vsce publish发布到 Marketplace(需要 Azure DevOps 个人访问令牌)。
常见代码模式
- 简单命令:
vscode.commands.registerCommand('extension.showInfo', () => { vscode.window.showInformationMessage('Information message'); }); - 带用户输入的命令:使用
vscode.window.showInputBox获取输入。 - 文件操作命令:通过
vscode.window.activeTextEditor获取当前编辑器并处理文本。 - 状态栏项:使用
vscode.window.createStatusBarItem创建持久状态显示。
参考导航
extension-anatomy.md:扩展结构与文件组织、package.json 清单字段、入口点与生命周期钩子、扩展上下文与 disposables。common-apis.md:窗口与编辑器操作、工作区与文件系统访问、语言功能、Webview 创建与消息传递、树视图与自定义 UI。activation-events.md:扩展加载时机、性能优化、懒加载策略。best-practices.md:UX 指南与设计模式、性能优化、安全考虑、测试策略、发布指南。
适用场景
- 需要为 VS Code 添加命令到命令面板
- 需要为某种语言添加语法高亮、IntelliSense 或格式化
- 需要创建自定义 UI 面板(Webview)
- 需要创建自定义侧边栏树视图
- 需要为语言添加调试支持
- 需要创建颜色主题或文件图标主题
- 需要为语言提供代码片段
限制
- 指南中未提供具体的收费、价格或平台限制信息。
- 发布到 Marketplace 需要 Azure DevOps 个人访问令牌,指南未提供获取令牌的详细步骤。
- 指南未提供各扩展类型的完整实现细节,需参考对应的参考文档。
- 指南未提供具体的性能基准或效果数据。