VS Code 插件开发概览

news/2024/5/24 12:31:48/

VS Code 插件开发概览

在这里插入图片描述

前言

VS Code作为开发者的代码开发利器,越来越受开发者的喜爱。像我身边的前端,每天80%的开发工作都是在VS Code上完成的。随着人们对它的使用,不再满足简单的优雅,舒服写代码这一基本需求。有些人利用它进行摸鱼,看小说,查股票,看文章,下五子棋。当你在VS Code的插件市场输入摸鱼二个字时,会有20多个插件供你选择。
本篇文章就来概述一下 VS Code的能力,并帮你快速建立插件文档的索引。

插件功能

插件能够实现以下功能

  • 自定义各类文件的图标和主题颜色
  • 添加自定义组件和UI
  • 使用html创建功能丰富的webview
  • 支持新的编程语言
  • 支持特殊的调试手段

组件的各大模块

案例大集合

插件的官方案例大集合 https://github.com/microsoft/vscode-extension-samples
看了这里提供的案例,能够了解大部分场景的开发范式。

每个插件的目录大致是相同的,这也是官方约定的标准插件目录。

UI组件

vscode提供了很标准的UI,在制作插件时要严格按照要求,比如图标的大小16*16的svg文件。

命令行工具

yogenerator-code

按照

# 安装依赖
npm install -g yo generator-code
yo code # 新建项目

按钮位置

你可以利用插件在vscode中注入很多的自定义按钮,各个位置。vscode支持的位置包括这些
https://code.visualstudio.com/api/references/contribution-points#contributes.menus

本地开发组件步骤

本地开发的步骤很简单

# 安装依赖
npm install -g yo generator-code
yo code # 新建项目

安装依赖后,按下F5键就会打开一个新的窗口,这是用于调试的。
修改代码后,重新reload 就能生效。

发布 https://code.visualstudio.com/api/working-with-extensions/publishing-extension

npm install -g @vscode/vscevsce packagevsce login <publisher name>vsce publish

When 条件

在注入按钮时有时需要一些条件判断,
比如,当前打开的是某类文件时,才会显示某个按钮。
这些判断条件的编写应该遵循以下这个文档
https://code.visualstudio.com/api/references/when-clause-contexts

插件的概览 指导
https://code.visualstudio.com/api/extension-guides/overview

能够使用的VS code api
https://code.visualstudio.com/api/references/vscode-api#tasks.registerTaskProvider


http://www.ppmy.cn/news/47088.html

相关文章

健康体检管理系统源码 PEIS源码 体检小结自动生成

健康体检管理系统源码 PEIS源码 数据对接 体检小结自动生成&#xff0c;商业源码&#xff0c;有演示&#xff0c;文档齐全。自主知识产权。 文末获取联系&#xff01; 一套专业的体检管理系统源码&#xff0c;该系统涵盖个人体检、团队体检、关爱体检等多种体检类型&#xf…

LinuxGUI自动化测试框架搭建(十四)-设计全局变量配置文件config.py

(十四)-全局变量配置文件设计config.py 1 设计目的2 设计思路3 设计过程3.1 创建config.py所在目录3.2 设置项目根目录3.3 设计配置文件目录4 目前config.py内容5 目前框架结构1 设计目的 我们使用一个文件config.py来存放全局变量,目的很简单就是提升代码的可读性、维护方…

过滤器Filter

文章目录 1. Listener监听器监听器Listener文档说明1.1 ServletContextListener监听器1.2 ServletContextAttributeListener监听器1.3 HttpSessionListener监听器1.4 HttpSessionAttributeListener监听器1.5 ServletRequestListener监听器1.6 其它监听器1.6.1 ServletRequestAt…

QS排名十年对比:美国大学最稳,中国大学进步最快

QS世界大学排名发布距今已有20年历史&#xff0c;迄今为止&#xff0c;全球已有超过90个国家和地区共1500多所大学进入QS世界排名。QS排名评估中所使用的5项评估标准基本保持不变。 QS使用5个关键指标来进行排名&#xff0c;包括学术声誉、雇主声誉、篇均论文引用、H指数和国际…

at单一次任务,crontab周期性任务 rhce(21)

目录 1.atd和crond两个任务管理程序的区别 2.指定在2023/08/26 09:00将时间写入testmail.txt文件中 3.指定在每天凌晨4:00将该时间点之前的系统日志信息备份到个目录下&#xff08;/var/log/messages&#xff09;&#xff0c;备份后日志文件名显示格式logfileYY-MM-DD HH-MM…

.class文件在线转成.java文件方法

使用背景&#xff1a; 工作中碰到老的项目就头疼&#xff0c;有些连源码都没有&#xff0c;解决bug只能从class文件反编译成java后&#xff0c;来读懂业务逻辑。 后来在网上找了一些工具来帮助class文件转码&#xff0c;有些遇到lamda表达式就转换错误&#xff0c;有些使用起…

torch.empty的作用:返回一个未初始化的Tensor

在官网查到torch.empty()的初始格式是empty(*size, *, outNone, dtypeNone, layouttorch.strided, deviceNone, requires_gradFalse, pin_memoryFalse, memory_formattorch.contiguous_format) -> Tensor。 返回一个充满未初始化数据的张量。张量的形状是由变量参数定义:att…

会话跟踪技术

目录 Cookie基本使用 Cookie原理 Cookie使用细节 Session基本使用 Session原理 Session使用细节 案例 用户登录注册案例 用户注册功能 保存用户信息到数据库 验证码-展示 验证码-校验 会话跟踪技术的概述 会话:用户打开浏览器&#xff0c;访问web服务器的资源&…

HelloWorld案例详解

HelloWorld案例的编写和执行 Java程序开发运行流程 开发Java程序&#xff0c;需要三个步骤&#xff1a; ●编写代码 ●编译代码 ●运行代码 HelloWorld案例的编写 新建文本文档文件&#xff0c;修改名称为HelloWorld.java用记事本打开HelloWorld.java文件&#xff0c;输写…

数据结构之顺序表,实现顺序表的增删改查

目录 一、顺序表的概念 二、顺序表的分类 1.静态顺序表 2.动态顺序表 3.顺序表的增删改查 总结 一、顺序表的概念 顺序表是一段物理地址连续的村塾单元依次存储数据元素的线性结构&#xff0c;一般情况下使用数组存储&#xff0c;在数组上完成数据的增删改查。 二、顺…

LeetCode每日一题 1023. 驼峰式匹配 --双指针

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

Redis:常见的面试题和答案

1、Redis 是什么&#xff1f;它的主要用途是什么&#xff1f; 答案: Redis 是一个开源的内存数据结构存储系统&#xff0c;可以用作数据库、缓存和消息代理。它支持多种数据结构&#xff0c;例如字符串、列表、哈希表、集合和有序集合。Redis 的主要用途包括缓存、会话存储、排…

并发数据结构的目的和设计指南理解学习

并发数据结构的目的&#xff1a; 1、设计并发数据结构是为了让多线程并发访问&#xff0c;并且线程可对数据结构做相同或不同的操作。 2、多线程环境下&#xff0c; 无数据丢失和损毁&#xff0c;所有的数据需要维持原样&#xff0c;且无条件竞争的数据结构&#xff1b; 3、…

【Python基础入门学习】Python工具Pycharm的安装与使用

一、关于Python 1.1 下载Python 在下载与安装pycharm工具前&#xff0c;一定要先安装python 打开Python官网&#xff1a;python下载打开上述网站&#xff0c;选择 Downloads -> 系统 我是Windows系统&#xff0c;点击进入后&#xff0c;找到自己要安装的安装包以及想安装的…

LCMXO3LF-4300C-6BG324I FPGA lattice 深力科 FPGA的基本结构

LCMXO3LF-4300C-6BG324I FPGA lattice 深力科 FPGA的基本结构 lattice莱迪斯深力科电子 超低密度FPGA 是最新的立即启用、非挥发性、小型覆盖区 FPGA&#xff0c;采用先进的封装技术&#xff0c;能让每个元件达到最低成本。此系列采用最新的小型封装&#xff0c;不仅具有低功率…

【Linux】git命令(基础,新手)

文章目录 1.查看当前git版本信息2.安装git3.将远端仓库克隆到本地4.三板斧第一招&#xff1a;git add5.三板斧第二招&#xff1a;git commit6.三板斧第三招&#xff1a;git push7.对仓库文件进行更改8.查看使用提交日志9.查看本地与远端的同步状态10.从远端仓库拉取最新版本文件…

【智能电网】智能电网中针对DOS和FDIA的弹性分布式EMA(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

IP-GUARD能否实现打印指定文件时需经过管理员审批后才能打印?

支持。先设置禁止打印文档的策略,然后设置相关审批流程,再给到客户端相应的申请权限: 1、在控制台-高级-打印控制策略中,给需要进行打印管控的客户端设置以下策略: 动作:禁止 2、在控制台-申请管理-桌面申请管理-审批流程管理中,添加申请类型为打印的审批流程,指定审批人…

Linux 内核调优部分参数说明

表示尽量使用内存&#xff0c;减少使用磁盘 swap 交换分区&#xff0c;内存速度明显高于磁盘一个数量级。 vm.swappiness 0内存分配策略&#xff0c;Redis 持久化存储需设置值为1。 vm.overcommit_memory 10&#xff1a;表示内核将检查是否有足够的可用内存供应用进程使用&…

「C/C++」C语言与C++的区别

目录 1. 语言起源2. 编程范式3. 內置类4. 函数重载5. 引用类型6. 模板7. 异常处理 1. 语言起源 C语言 最初是由Dennis Ritchie在1970年代开发的&#xff0c;它是一种可移植、高效、底层的编程语言&#xff0c;主要用于系统软件、嵌入式开发、操作系统等领域。 C语言 于1980年代…