VS Code 插件扩展开发指南
文章目录
- VS Code 插件扩展开发指南
- 开发环境准备
- 插件基本结构
- 核心概念
- package.json 配置
- 激活事件(Activation Events)
- 扩展 API
- 开发示例
- 1. 创建简单命令
- 2. 添加编辑器功能
- 3. 创建状态栏项
- 调试插件
- 发布插件
- 进阶主题
- 学习资源
VS Code 插件扩展开发指南
VS Code 插件(也称为扩展)可以增强编辑器的功能,添加新特性或集成外部服务。以下是开发 VS Code 插件的基本流程和关键概念。
开发环境准备
-
安装必要工具:
- Node.js (建议最新 LTS 版本)
- VS Code
- Yeoman (
npm install -g yo generator-code
)
-
创建新项目:
yo code
然后选择插件类型(TypeScript 或 JavaScript)并填写项目信息。
插件基本结构
一个典型的 VS Code 插件目录结构如下:
.
├── .vscode/ // VS Code 集成配置
├── src/ // 源代码目录
│ └── extension.ts // 插件入口文件
├── package.json // 插件清单文件
├── tsconfig.json // TypeScript 配置
└── README.md // 插件文档
核心概念
package.json 配置
package.json
是插件的清单文件,包含以下重要字段:
name
: 插件唯一标识publisher
: 发布者名称version
: 版本号engines.vscode
: 兼容的 VS Code 版本activationEvents
: 插件激活事件contributes
: 插件提供的功能点(命令、菜单、语言支持等)
激活事件(Activation Events)
插件在特定事件发生时才会被激活,常见激活事件包括:
onCommand
: 执行特定命令时onLanguage
: 打开特定语言文件时onDebug
: 启动调试时*
: VS Code 启动时立即激活(不推荐)
扩展 API
VS Code 提供了丰富的扩展 API,主要命名空间包括:
vscode.commands
: 命令相关vscode.window
: 窗口、编辑器相关vscode.workspace
: 工作区相关vscode.languages
: 语言特性相关vscode.debug
: 调试相关
开发示例
1. 创建简单命令
// extension.ts
import * as vscode from 'vscode';export function activate(context: vscode.ExtensionContext) {let disposable = vscode.commands.registerCommand('extension.helloWorld', () => {vscode.window.showInformationMessage('Hello World from My Extension!');});context.subscriptions.push(disposable);
}
对应的 package.json
需要添加:
"activationEvents": ["onCommand:extension.helloWorld"
],
"contributes": {"commands": [{"command": "extension.helloWorld","title": "Hello World"}]
}
2. 添加编辑器功能
// 显示当前行号
const showLineNumber = vscode.commands.registerCommand('extension.showLineNumber', () => {const editor = vscode.window.activeTextEditor;if (editor) {const lineNumber = editor.selection.active.line + 1;vscode.window.showInformationMessage(`Current line number: ${lineNumber}`);}
});
context.subscriptions.push(showLineNumber);
3. 创建状态栏项
// 创建状态栏项
const statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100);
statusBarItem.text = "$(megaphone) Click Me!";
statusBarItem.command = "extension.showLineNumber";
statusBarItem.show();
context.subscriptions.push(statusBarItem);
调试插件
- 在 VS Code 中打开插件项目
- 按 F5 启动调试扩展主机
- 新窗口中将加载你的插件
- 使用 Ctrl+Shift+P 运行你注册的命令
发布插件
- 安装 vsce 工具:
npm install -g @vscode/vsce
- 创建发布者账号(在 VS Code Marketplace)
- 登录:
vsce login <publisher-name>
- 打包:
vsce package
- 发布:
vsce publish
进阶主题
- 自定义视图(侧边栏、面板)
- 实现语言支持(语法高亮、代码补全)
- 创建 Webview 内容
- 集成调试器
- 使用贡献点(contribution points)扩展功能
学习资源
- VS Code 扩展 API 文档
- VS Code 扩展示例库
- VS Code 插件市场
通过以上步骤,你可以开始创建自己的 VS Code 插件,逐步扩展编辑器功能。