VS Code 插件基础资料
这里汇总 Visual Studio Code 扩展开发里最常用的基础概念、API 和术语。内容根据官方文档整理,查阅日期为 2026-10-14。官方页面会随版本更新,写代码时以本机 @types/vscode 和 Extension API 为准。
从 VS Code 1.74 起,自己贡献的命令、语言、视图等会隐式激活扩展,多数场景不用再手写对应的 onCommand / onLanguage / onView。面向更老版本时仍要显式声明。
基础概念
| 文件 | 内容 |
|---|---|
| 扩展是什么 | 扩展做什么、跑在哪、不能碰什么 |
| 扩展清单 | package.json 里和扩展相关的字段 |
| 激活与销毁 | activate / deactivate 何时调用 |
| 激活事件 | 什么时候才把扩展加载进来 |
| 贡献点 | 清单里的静态声明 |
| 命令与菜单 | 命令标识、命令面板、菜单 |
| 上下文键与 when 子句 | 菜单和视图何时出现 |
| 配置 | 设置项的声明、读取和监听 |
| 工作区文档与文件系统 | 工作区、文档、编辑、虚拟文件 |
| 语言功能 | 补全、悬停、诊断等提供器 |
| 语言服务器协议 | 为什么把语言能力拆到独立进程 |
| 树视图 | 侧栏树的声明和数据提供 |
| 网页视图 | Webview 面板、侧栏视图和安全边界 |
| 扩展宿主与远程网页 | local / web / remote 宿主和 extensionKind |
| 资源释放与取消 | Disposable、订阅和取消令牌 |
常用 API
| 文件 | 内容 |
|---|---|
| commands | 注册和执行命令 |
| window | 编辑器、消息、快速选择、状态栏、树和网页 |
| workspace | 文件夹、配置、文档、文件系统 |
| languages | 语言功能注册和诊断集合 |
| 核心类型 | Uri、Position、Range、Selection 等 |
| 事件与取消 | Event、EventEmitter、CancellationToken |
| 环境扩展与状态 | env、extensions、ExtensionContext |
| 诊断与代码操作 | Diagnostic、CodeAction、WorkspaceEdit |
| 终端任务调试与源码管理 | Terminal、tasks、debug、scm |
| 认证与语言模型 | authentication、lm、chat |
专业术语
每个术语单独一个文件,放在 专业术语。