SuperAPI AI 工具集

vscode-extension-builder

编程与开发

查看项目

更新于 10-15 09:59

技能介绍

用途

VS Code Extension Builder 是一份用于从零创建 VS Code 扩展的综合指南,帮助开发者以合理的架构、最佳实践和完整工具链支持来构建专业的 VS Code 扩展。当用户需要创建 VS Code 扩展时可以使用本指南。

主要能力

指南覆盖以下内容:

  • 项目脚手架初始化
  • VS Code API 使用
  • 激活事件配置
  • 扩展打包与发布
  • 扩展类型选择(命令扩展、语言支持、Webview 扩展、树视图、调试器、主题、代码片段提供程序)
  • 常见代码模式(简单命令、带用户输入的命令、文件操作命令、状态栏项)
  • 参考文档导航(扩展结构、常用 API、激活事件、最佳实践)

使用方式

快速开始

  1. 初始化:运行 npx --package yo --package generator-code -- yo code
  2. 选择类型:New Extension (TypeScript)
  3. 填写详情:名称、标识符、描述
  4. 开发:在 VS Code 中打开,按 F5 调试
  5. 测试:在 Extension Development Host 中运行命令
  6. 打包:准备就绪后运行 vsce package

核心工作流

  1. 收集需求:询问用户扩展的用途、类型、功能、UI 和激活时机。
  2. 选择扩展类型与架构:根据需求选择简单命令扩展、语言扩展或 Webview 扩展等模式。
  3. 初始化项目:推荐使用 Yeoman 生成器(npx --package yo --package generator-code -- yo code),或从 assets/templates/ 中的模板复制(command-extension/、language-support/、webview-extension/)。
  4. 实现核心功能:在 package.json 中定义命令,在 extension.ts 中注册命令。
  5. 配置激活与贡献点:激活事件包括 onCommand、onLanguage、onView、*(尽量避免);贡献点包括 commands、menus、keybindings、languages、views、configuration。
  6. 测试与调试:按 F5 启动 Extension Development Host,使用 @vscode/test-electron 进行自动化测试。
  7. 打包与分发:更新 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 个人访问令牌,指南未提供获取令牌的详细步骤。
  • 指南未提供各扩展类型的完整实现细节,需参考对应的参考文档。
  • 指南未提供具体的性能基准或效果数据。