当前位置: 首页 > news >正文

VS Code 插件扩展开发指南

文章目录

  • VS Code 插件扩展开发指南
    • 开发环境准备
    • 插件基本结构
    • 核心概念
      • package.json 配置
      • 激活事件(Activation Events)
      • 扩展 API
    • 开发示例
      • 1. 创建简单命令
      • 2. 添加编辑器功能
      • 3. 创建状态栏项
    • 调试插件
    • 发布插件
    • 进阶主题
    • 学习资源

VS Code 插件扩展开发指南

VS Code 插件(也称为扩展)可以增强编辑器的功能,添加新特性或集成外部服务。以下是开发 VS Code 插件的基本流程和关键概念。

开发环境准备

  1. 安装必要工具

    • Node.js (建议最新 LTS 版本)
    • VS Code
    • Yeoman (npm install -g yo generator-code)
  2. 创建新项目

    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);

调试插件

  1. 在 VS Code 中打开插件项目
  2. 按 F5 启动调试扩展主机
  3. 新窗口中将加载你的插件
  4. 使用 Ctrl+Shift+P 运行你注册的命令

发布插件

  1. 安装 vsce 工具:npm install -g @vscode/vsce
  2. 创建发布者账号(在 VS Code Marketplace)
  3. 登录:vsce login <publisher-name>
  4. 打包:vsce package
  5. 发布:vsce publish

进阶主题

  • 自定义视图(侧边栏、面板)
  • 实现语言支持(语法高亮、代码补全)
  • 创建 Webview 内容
  • 集成调试器
  • 使用贡献点(contribution points)扩展功能

学习资源

  • VS Code 扩展 API 文档
  • VS Code 扩展示例库
  • VS Code 插件市场

通过以上步骤,你可以开始创建自己的 VS Code 插件,逐步扩展编辑器功能。

http://www.dtcms.com/a/274478.html

相关文章:

  • AI的欧几里得要素时刻:从语言模型到可计算思维
  • 玖玖NFT数字藏品源码(源码下载)
  • 【达梦数据库|JPA】后端数据库国产化迁移记录
  • 解读:大模型(LLM)、检索增强生成(RAG)、智能体(Agent)
  • 城市之间消防主机长距离使用can转以太网通讯方案
  • JDBC 批处理操作详解
  • leetcode105深度解析:从前序与中序遍历序列构造二叉树
  • 我找工作的时候,AI到底帮了我还是坑了我?
  • 益丰新材闯上市:营收连降,核心原料依赖关联方,马韵升家族控股
  • 【每日刷题】x 的平方根
  • [TOOL] ubuntu 使用 ffmpeg 操作 gif、mp4
  • UNet改进(21):门控注意力机制在UNet中的应用与优化
  • mongodb 开源同步工具介绍
  • c++11——左值、右值、完美转发、移动语义
  • 【AI News | 20250710】每日AI进展
  • 60 美元玩转 Li-Fi —— 开源 OpenVLC 平台入门(附 BeagleBone Black 驱动简单解析)
  • UE5中的cesium
  • flex 布局完整功能介绍和示例演示
  • windows配置python环境
  • 获取Fortran程序内存使用情况的方法
  • 多租户架构下的多线程处理实践指南
  • 上位机知识篇---Git符号链接
  • mysql 数据备份与数据恢复
  • BigFoot Decursive 2.7.28 2025.07.11
  • 伺服驱动控制CANopen协议
  • [WinForms] 如何为 .NET Framework 4.8 窗体程序添加自定义图标
  • 力扣面试150(29/100)
  • vue3 el-input 通过数组 获取显示
  • 上位机知识篇---网络通信端口
  • 【Nginx】实测Nginx增加第三方主动式健康检查模块