首页 > 其他分享 >vscode插件开发

vscode插件开发

时间:2024-10-08 10:13:26浏览次数:1  
标签:npm 插件 extension package vscode ts 开发

一、创建项目

  1. 创建VsCode的插件项目,将会用到yo和generate-code,因此,先安装这两个脚手架。
npm i -g yo generate-code
  1. 然后,初始化插件目录。
yo code

注:如果报错:You don't seem to have a generator with the name “generator-code” installed. 就先执行npm install generator-code.

执行命令之后,根据个人要求选择:

 

二、插件目录结构

variable-finding        // 项目名称
├─ commitlint.config.js
├─ lint-staged.config.mjs
├─ package-lock.json
├─ package.json
├─ README.md
├─ src      // 源文件
│  ├─ extension.ts  // 插件入口
│  └─ test          // 测试文件
│     ├─ runTest.ts
│     └─ suite
│        ├─ extension.test.ts
│        └─ index.ts
├─ tsconfig.json
└─ vsc-extension-quickstart.md
{
  "name": "variable-finding", // 定义了插件的包名,它必须是唯一的并且符合 npm 的包命名规范。
  "displayName": "Variable Finding",  // 定义了插件在 Visual Studio Code 中显示的名称。
  "description": "",
  "version": "0.0.1", 
  "engines": {
    "vscode": "^1.83.0"   // 定义了插件所支持的 Visual Studio Code 的最低版本。
  },
  "categories": [   // 定义了插件所属的分类,以便在 Visual Studio Code 中组织和展示插件。
    "Other"
  ],
  "activationEvents": [],    //  定义了激活插件的事件
  "main": "./out/extension.js",  // 定义插件的入口文件
  "contributes": {
    "commands": [
      {
        "command": "variable-finding.mytest",  // 注册的插件命令
        "title": "mytest"
      }
    ]
  },
  "scripts": {
    "vscode:prepublish": "npm run compile",
    "compile": "tsc -p ./",
    "watch": "tsc -watch -p ./",
    "pretest": "npm run compile && npm run lint",
    "lint": "eslint src --ext ts",
    "test": "node ./out/test/runTest.js",
    "prepare": "husky install",
    "commitlint": "commitlint --config commitlint.config.js -e -V"
  },
  "devDependencies": {},
  "lint-staged": {
    "**/*": "prettier --write --ignore-unknown"
  }
}

三、运行插件

  1. 在项目任何文件下,执行 F5;vscode将会打开一个新的调试窗口;   

 

  1. 在新的调试窗口中,按 ctrl + shift + p,打开命令面板;

  1.  输入注册的插件命令,即可执行插件。 在package.json和extension文件中定义了命令,项目的默认命令是hello word,可自行更改。

四、功能实现

extension.ts作为项目的入口文件,里面的两个函数定义了插件激活/销毁时要执行的功能:

// 插件激活
export function activate(context: vscode.ExtensionContext) {
  console.log(
    'Congratulations, your extension "variable-finding" is now active!',
  );

  // 注册命令
  let disposable = vscode.commands.registerCommand(
    'variable-finding.mytest',  // 这个名称必须与package.json中的命令名称一致
    () => {
      // 功能实现
    },
  );

  // 将命令注册到上下文中,以便在插件停用时自动清理
  context.subscriptions.push(disposable);
}
// 插件销毁
export function deactivate() {
  // 定义插件停用时需要执行的清理工作
  // 如移除事件监听器、关闭打开的文件或网络连接...
}

因此,具体的功能实现方式和开发普通项目的方式并无差异,可以根据不同的功能模块划分不同的文件夹,然后在extension中调用对应的功能即可。

开发过程中可以打断点+F5来调试项目。

打包发布

  1. 账号准备:创建或登录到Visual Studio Code Marketplace账户:

访问 marketplace.visualstudio.com/manage ,使用GitHub、Microsoft 或 Azure DevOps 账户登录。如果还没有账户,按照页面提示创建一个。

  1. 账号配置:在package.json的配置基础上,新增一个“publisher: publisher ID”, publisher ID就是注册账号是自动生成的id。publisher字段的值需要与发布该包的账号保持一致,不然会发布失败。
  2. 安装打包命令。
npm install -g vsce
  1. 在根目录下执行打包命令,执行成功后,会在根目录下生成 .vsix 文件。
vsce package

  1. 发布插件

① 方式一:命令发布

vsce publish -p YOUR_PUBLISHER_ID

 ② 方式二:平台发布 

 ③ 方式三:在发布前,也可以先安装到本地的vscode中,测试一下效果

  1. 发布完成之后,就可以在vscode的插件中搜索到发布的包了。
  2. 如果需要更新插件,只需要重新打包并发布。

标签:npm,插件,extension,package,vscode,ts,开发
From: https://www.cnblogs.com/leeke98/p/18451108

相关文章

  • 4、.Net 快速开发框架:Blog.Core - 开源项目研究文章
    Blog.Core是一个基于.NETCore的开源博客系统,旨在提供一个简单、易用且功能丰富的博客平台。它采用最新的.NET技术栈,包括但不限于ASP.NETCore、EntityFrameworkCore、RazorPages等,以确保高性能和良好的开发体验。主要特性跨平台:作为.NETCore应用程......
  • 嵌入式驱动开发学习路线整理
    1、学习路线1.1知乎:菜鸟分享嵌入式Linux驱动开发学习路线与心得(一)嵌入式方向:嵌入式Linux系统中,往上有应用程序功能开发和界面设计,往下有内核编程相关的驱动开发;学习嵌入式Linux需要的基础知识:C语言基础知识;基础知识:操作系统相关知识、Linux系统基本使用、虚拟机使用;Linux......
  • 软件开发 --- 微服务举例
    一般软件开发总的来说要解决两个问题,实现什么业务需求,采用什么技术,比如我要开发一个后端商品浏览,我一定会用到springboot技术作为支撑。 以下是对图片中列出的技术的简要解释:###前端工程师1.**H5**:指HTML5,创建网页和移动应用的基础技术,用于搭建响应式网站和Web应用。2.*......
  • 基于JAVA的鲜花商城管理系统(源码+定制+讲解)鲜花商城管理系统、鲜花商城管理平台、鲜
    博主介绍:  ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生......
  • 基于Spring Boot的新能源充电桩管理系统设计与实现(源码+定制+开发)新能源充电桩管理系
    博主介绍:  ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生......
  • 高效开发Maven架构设计图解/掌握项目工程自动化技巧(精通篇二)
    Maven是一个项目管理和构建自动化工具,主要服务于基于Java的项目。它使用一个名为POM(ProjectObjectModel)的XML文件来描述项目的构建过程、依赖、插件等信息。肖哥弹架构 跟大家“弹弹” 高并发锁,  关注公号回复'mvcc'获得手写数据库事务代码欢迎点赞,关注,评论。关注......
  • 软件开发 --- 软件开发主流技术栈
    大前端 web基础jshtmlcss web框架vuereactangular web样式bootstrap tailwind 原生androidjava ios swift 混合flutter uniapp reactnative 小程序微信小程序支付宝小程序抖音小程序 后端语......
  • Pangene:李恒开发泛基因图谱构建工具——探索群体基因组时代研究新方向
    导读:七月份,李恒开发的基因内容图谱构建软件——Pangene,以标题为:Exploringgenecontentwithpangenegraphs的论文论文形式一并发表,发表期刊为Bioinformatics杂志。该软件迎合了群体基因组学时代数据井喷的现状,而一定程度上分析工具和软件算法匮乏做出了有益地探索和补充。Pange......
  • 生信软件开发原则与未来方向
    分享一篇Y叔(余光创)联合同行老师近期在TheInnovationLife上发表的综述文章:Bioinformaticssoftwaredevelopment:Principlesandfuturedirections。文章主要讨论了生物信息学软件开发的原则和未来的发展方向,强调了人工智能(AI)在加速和增强生物信息学软件开发过程中的重要性,并展......
  • jsp测试缺陷管理系统3166o程序+源码+数据库+调试部署+开发环
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景随着软件行业的迅速发展,软件质量成为企业竞争力的关键因素。在软件开发过程中,测试缺陷管理系统是确保软件质量的重要环节。传统的缺陷......