实现一个VSCode插件(从创建到发布)

实现一个自己的VSCode 插件

  • 本文将以 yo 为例, 实现一个 VS Code 插件 从创建到发布。

    文章目录

    • 实现一个自己的VSCode 插件
        • 1. 初始化项目
        • 2. 项目结构
        • 3. 实现插件功能
        • 4. 测试和运行插件
        • 5. 发布
        • 6. 下载自己发布的插件

1. 初始化项目

  1. 首先,我们需要安装 VS Code 扩展生成器
npm install -g yo generator-code
  1. 安装完 yo 后,生成初始模版
yo code
  • 然后我们会填写 扩展名,描述,语言等
  • 我们以语言选择: TypeScript , 打包选择:webpack 为例。

2. 项目结构

case-converter/
├── package.json
├── src/
│   └── extension.ts
├── .vscodeignore
└── README.md

3. 实现插件功能

  • 我们只需要修改2文件的内容
  • 以实现一个转化大小写的功能为例子
  1. 修改 extension.ts =>
import * as vscode from 'vscode';export function activate(context: vscode.ExtensionContext) {// 注册转换大写命令let toUpperCommand = vscode.commands.registerCommand('case-converter.toUpperCase', () => {const editor = vscode.window.activeTextEditor;if (editor) {const selection = editor.selection;const text = editor.document.getText(selection);editor.edit(editBuilder => {editBuilder.replace(selection, text.toUpperCase());});}});// 注册转换小写命令let toLowerCommand = vscode.commands.registerCommand('case-converter.toLowerCase', () => {const editor = vscode.window.activeTextEditor;if (editor) {const selection = editor.selection;const text = editor.document.getText(selection);editor.edit(editBuilder => {editBuilder.replace(selection, text.toLowerCase());});}});context.subscriptions.push(toUpperCommand, toLowerCommand);
}export function deactivate() {}
  1. 修改 package.json => 主要替换 activationEventscontributes
{// 省略其他配置 。。。"activationEvents": ["onCommand:case-converter.toUpperCase","onCommand:case-converter.toLowerCase"],"contributes": {"commands": [{"command": "case-converter.toUpperCase","title": "Convert to Uppercase"},{"command": "case-converter.toLowerCase","title": "Convert to Lowercase"}],"keybindings": [{"command": "case-converter.toUpperCase","key": "ctrl+shift+u","mac": "cmd+shift+u"},{"command": "case-converter.toLowerCase","key": "ctrl+shift+l","mac": "cmd+shift+l"}],"menus": {"editor/context": [{"when": "editorHasSelection","command": "case-converter.toUpperCase","group": "1_modification"},{"when": "editorHasSelection","command": "case-converter.toLowerCase","group": "1_modification"}]}},
}

4. 测试和运行插件

  1. 可以通过 package.json 中的 npm run compile 然后 npm run watch 打开调试;
  2. 也可以通过 直接 F5 直接 进行调试;
  3. 然后我们会看到调试按钮, 以及弹出另外一个调试的 VS Code 窗口
    在这里插入图片描述
  4. 我们在另外弹出的 VS Code 窗口里 测试一下
    在这里插入图片描述
  5. 我们可以看到 package.json 中配置到 toUpperCasetoLowerCase , 选中文案点击便可实现插件功能

5. 发布

  1. 创建 Azure 账号(如果有账号跳过)
    • 先去 创建 Azure 账号和 Azure DevOps 组织 => 点击跳转

    • 登录后创建项目

      在这里插入图片描述

    • 然后右上角创建在这里插入图片描述

  • 创建时选择 Marketplace 勾选 ✓ Acquire ✓ Publish ✓ Manage
    在这里插入图片描述
    2. 第二步 去创建 Visual Studio Marketplace 账号
    • 直接通过 微软 Azure 账号登陆
    • 设置名称 和 id (后边上传时 要检查 package.json 中的 publisher 是否相同)
      在这里插入图片描述
  1. 第三部上传

    • 方法1 : 安装 npm install -g @vscode/vsce
    • 然后打包 执行打包命令 vsce package => 生成 .vsix 文件
    • 然后点击 New extension 选择 Visual Studio Code 弹出弹窗 把 .vsix 上传即可
      在这里插入图片描述
    • 方法2 : 通过 vsce 命令完成, 登陆会填写 token (token 为 Azure 创建的 token)
    # 打包插件
    vsce package
    # 发布插件
    vsce publish
    # 创建发布者
    vsce create-publisher (publisher name)
    # 登录
    vsce login (publisher name)
    

6. 下载自己发布的插件

  • 发布完,过几分钟后就可以去, 搜索自己发布的插件了
  • 然后下载使用
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/66944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity TextMesh Pro入门

概述 TextMesh Pro是Unity提供的一组工具,用于创建2D和3D文本。与Unity的UI文本和Text Mesh系统相比,TextMesh Pro提供了更好的文本格式控制和布局管理功能。 本文介绍了TMP_Text组件和Tmp字体资产(如何创建字体资产和如何解决缺字问题),还有一些高级功…

【教程】数据可视化处理之2024年各省GDP排名预测!

过去的一年里,我国的综合实力显著提升,在新能源汽车、新一代战机、两栖攻击舰、航空航天、芯片电子、装备制造等领域位居全球前列。虽然全国各省市全年的经济数据公布还需要一段时间,但各地的工业发展数据,财政收入数据已大概揭晓…

后端:Spring(IOC、AOP)

文章目录 1. Spring2. IOC 控制反转2-1. 通过配置文件定义Bean2-1-1. 通过set方法来注入Bean2-1-2. 通过构造方法来注入Bean2-1-3. 自动装配2-1-4. 集合注入2-1-5. 数据源对象管理(第三方Bean)2-1-6. 在xml配置文件中加载properties文件的数据(context命名空间)2-1-7. 加载容器…

从CentOS到龙蜥:企业级Linux迁移实践记录(龙蜥开局)

引言: 在我们之前的文章中,我们详细探讨了从CentOS迁移到龙蜥操作系统的基本过程和考虑因素。今天,我们将继续这个系列,重点关注龙蜥系统的实际应用——特别是常用软件的安装和配置。 龙蜥操作系统(OpenAnolis&#…

一.项目课题 <基于TCP的文件传输协议实现>

客户端代码 需要cJSON.c文件和cJSON.h文件 在这里插入代码片#include "myheadth.h" #include "myfun.h"#define TIME 10 int sockfd; void heartbeat(int signum) {cJSON* root cJSON_CreateObject();cJSON_AddStringToObject(root,"request"…

Type-C双屏显示器方案

在数字化时代,高效的信息处理和视觉体验已成为我们日常生活和工作的关键需求。随着科技的进步,一款结合了便携性和高效视觉输出的设备——双屏便携屏,逐渐崭露头角,成为追求高效工作和娱乐体验人群的新宠。本文将深入探讨双屏便携…

计算机视觉算法实战——车道线检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​ ​​​​​​​​​​​​ ​​​​​ 车道线检测是计算机视觉领域的一个重要研究方向,尤其在自动驾驶和高级驾驶辅助…

【微服务】面试 3、 服务监控 SkyWalking

微服务监控的原因 问题定位:在微服务架构中,客户端(如 PC 端、APP 端、小程序等)请求后台服务需经过网关再路由到各个微服务,服务间可能存在多链路调用。当某一微服务挂掉时,在复杂的调用链路中难以迅速确定…

【MySQL数据库】基础总结

目录 前言 一、概述 二、 SQL 1. SQL通用语法 2. SQL分类 3. DDL 3.1 数据库操作 3.2 表操作 4. DML 5. DQL 5.1 基础查询 5.2 条件查询 5.3 聚合函数 5.4 分组查询 5.5 排序查询 5.6 分页查询 6. DCL 6.1 管理用户 6.2 权限控制 三、数据类型 1. 数值类…

aws(学习笔记第二十三课) step functions进行开发(lambda函数调用)

aws(学习笔记第二十三课) 开发step functions状态机的应用程序 学习内容: step functions状态机的概念开发简单的step functions状态机 1. step functions状态机概念 官方说明文档和实例程序 AWS的官方给出了学习的链接和实例程序。使用SAM创建step functions 借…

【Docker】入门教程

目录 一、Docker的安装 二、Docker的命令 Docker命令实验 1.下载镜像 2.启动容器 3.修改页面 4.保存镜像 5.分享社区 三、Docker存储 1.目录挂载 2.卷映射 四、Docker网络 1.容器间相互访问 2.Redis主从同步集群 3.启动MySQL 五、Docker Compose 1.命令式安装 …

算法练习7——拦截导弹的系统数量求解

题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 假设某天雷达捕捉到敌国的导弹来袭。由于该系统还在试用…

如何使用高性能内存数据库Redis

一、详细介绍 1.1、Redis概述 Redis(Remote Dictionary Server)是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis支持多种类型的数据结构,如字符串(strings)、哈希&am…

【Linux系列】`find / -name cacert.pem` 文件搜索

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

UE材质Fab Megascans

2025年Bridge里已经不能直接导入资产了,显示GET IT ON FAB 只能在Fab中导入资产, 纹理打包技术从RMA改成了ORM O:AO 环境光遮蔽 R:Roughness 粗糙度 M:Metallic 金属度 在Fab中找到材质,点击Add to P…

【NP-hard问题】NP与NP-hard问题通俗解释

最近在研究NP-hard问题,讲一下自己的对于NP与NP-hard问题的通俗解释 一、NP-Hard 问题是什么意思? 什么是 NP? NP 问题可以理解为「检查答案很容易,但找到答案很难」。 举个例子: 假设你在一个迷宫里,…

ollama教程(window系统)

前言 在《本地大模型工具哪家强?对比Ollama、LocalLLM、LM Studio》一文中对比了三个常用的大模型聚合工具优缺点,本文将详细介绍在window操作系统下ollama的安装和使用。要在 Windows 上安装并使用 Ollama,需要依赖 NVIDIA 显卡&#xff0c…

[论文阅读] (35)TIFS24 MEGR-APT:基于攻击表示学习的高效内存APT猎杀系统

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…

半导体数据分析: 玩转WM-811K Wafermap 数据集(三) AI 机器学习

前面我们已经通过两篇文章,一起熟悉了WM-811K Wafermap 数据集,并对其中的一些数据进行了调用,生成了一些统计信息和图片。今天我们接着继续往前走。 半导体数据分析: 玩转WM-811K Wafermap 数据集(二) AI…

BGP 泄露

大家读完觉得有帮助记得关注和点赞!!! 目录 1. BGP 是什么? 2. 什么是 BGP 泄露? 3. 今天发生了什么? 4. 正常和被劫持状态下的路由示意图 5. 受影响区域 6. 责任在谁? 7. 有办法避免这…