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

【VSCode】插件开发笔记

VSCode 插件开发笔记

VSCode 的插件实质

VSCode 在设计之初就考虑了扩展性,甚至很多 VSCode 的核心功能也是基于扩展的方式编写的,并且使用的扩展 API 也是一样的。

VSCode 的源代码基本都是用 TS 编写的,所以他的扩展编写也基本一样,使用 TS 或 JS 开发。

VSCode 插件其实就是一个 node.js 包,插件的各种配置信息也都存在包中的 package.json 文件中。

VSCode 安装的插件都存放在了用户目录的“.vscode\extensions”文件夹中,可以直接把自己的插件放进去来实现手动安装。

开发环境搭建

配置项目

  1. 确保安装了 Node.js 和 Git。
  2. 使用 npm 安装 Yeoman。
  3. 利用 Yeoman 创建项目。
npm install --global yo generator-code #安装yeoman
yo code #创建项目

运行调试

项目默认配置了 HelloWorld 程序,直接 F5 运行即可。这样会自动打开一个新的 VSCode 编辑器并将当前开发的插件安装进去。

注意:

  • 插件对 VScode 的版本是有需求的,可以通过 package.json 中依赖的 vscode 包版本看出,如果版本不兼容就会导致插件安装失败,但这个报错调试时是不会显示的,要人为检查一下版本信息。

插件集成原理

代码集成

当插件被装入 VSCode 并激活时,VSCode 会主动调用插件中的一些事件函数。接着我们要在这些函数中通过 VSCode 提供的方法,向 VSCode 注册我们的功能。

import * as vscode from "vscode"; // 导入vscode的扩展api// 插件被激活时,vscode将调用该函数。
export function activate(context: vscode.ExtensionContext) {//此时向vscode注册功能,比如此处注册了一条命令let disposable = vscode.commands.registerCommand(<id>, <event>);context.subscriptions.push(disposable);
}// 插件被停用时,vscode将调用该函数。
export function deactivate() {}

扩展清单

插件向 VSCode 注册的所有功能都必须先在扩展清单中声明,扩展清单其实就是 package.json 文件,但我们需要在里面填充一些 VSCode 需要的东西。

  • name:扩展 ID,用于唯一表示插件。
  • activationEvents:激活事件,说明在哪些时候自动激活插件。
  • main:插件的入口脚本。
  • contributes:贡献点,要为 VSCode 增加哪些功能。
http://www.rkmt.cn/news/143438.html

相关文章:

  • Apache Ignite 广告实时竞拍系统架构全攻略
  • 实用指南:云计算与边缘计算:协同合作助力智慧城市建设
  • 全阶段字帖电子版合集:幼儿/学生/成人可打印练字字帖
  • Advantageous 英文单词学习
  • 1.2 python及pycharm的安装
  • 【生活杂谈】突破自己可解锁人生隐藏内容
  • C++ 偏特化详解
  • Android Compose 界面架构 : 基于单向数据流 - 指南
  • windows比较好用的翻译软件
  • VL-JEPA: Joint Embedding Predictive Architecture for Vision-language
  • GLOW:基于图-语言协同推理的Agentic工作流性能预测
  • 破局成长:陈昌昊的软工实践之旅
  • 秒级筛查+94.7%精准!华为Atlas 200 DK边缘设备解锁糖尿病视网膜病变检测新范式
  • 基于SpringBoot的老人健康信息管理系统计算机毕业设计项目源码文档
  • CAXA 3D 实体设计 2025:国产三维 CAD 的全流程研发升级下载安装
  • 经典算法题型之复数乘法(一)
  • 基于langchain1.X构建企业级智能体开发平台之环境和项目搭建
  • 导游证教程资源合集
  • 【技术美术】D3D中GPU渲染管线流程详解
  • AI智能预警系统:矿山、工厂与油气站安全管理架构浅析
  • 【排序算法全家桶 Level 2】选择排序:从“双向奔赴”的陷阱到堆排序的“降维打击”
  • HarmonyOS 5开发从入门到精通(十六):天气应用实战(下)
  • 8088单板机 8253定时器实验
  • 计算机Java毕设实战-基于springboot的传媒公司传媒直播管理系统设计与实现基于SpringBoot+Vue的传媒公司主播招募管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 【软件开发】正则表达式
  • 记录我的niri安装
  • 计算机Java毕设实战-基于springboot+vue的社区资源共享系统设计与实现邻里社交与资源共享【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • HarmonyOS 5开发从入门到精通(十五):天气应用实战(上)
  • 3.框架设计
  • 【软件开发】如何做出好的项目