首页 > 其他分享 >VSCode 插件开发系列教程

VSCode 插件开发系列教程

时间:2023-06-08 15:13:54浏览次数:45  
标签:Node 插件 Code VSCode 教程 js VS 进程

VSCode 插件架构,VS Code 是通过 Electron 实现跨平台的,而 Electron 则是基于 Chromium 和 Node.js,比如 VS Code 的界面,就是通过 Chromium 进行渲染的。同时, VS Code 是多进程架构,当 VS Code 第一次被启动时会创建一个主进程(main process),然后每个窗口,都会创建一个渲染进程( Renderer Process)。与此同时,VS Code 会为每个窗口创建一个进程专门来执行插件,也就是 Extension Host

除了这三个主要的进程以外,还有两种特殊的进程。第一种是调试进程,VS Code 为调试器专门创建了Debug Adapter 进程,渲染进程会通过 VS Code Debug Protocol 跟 Debug Adapter 进程通讯。
另一种则是Language Server,我们前面在介绍 VS Code 的语言支持时也提到过。

下面就是 VS Code 的进程架构图了。



VSCode 插件架构

在上图中,绿色的就是插件进程 Extension Host 了。VS Code 创建 Extension Host 进程的方式,就是创建一个新的 Electron 进程,并且以 Node.js 的形式运行。也就是说,这个进程就是一个完整的 Node.js 进程,Node.js 版本就是你使用的 Electron 中的 Node.js 。

对于一个插件作者而言,你可以无需关心 VS Code 的这套架构,在书写 VS Code 插件的时候,你只需知道:

  • 首先,这个插件就是一个 Node.js 应用;
  • 其次,在这个 Node.js 应用中,你可以直接访问 VS Code 的 API,通过这些 API 来操作 VS Code,你并不需要知道插件进程是怎么跟渲染进程通讯的;
  • 最后,每当你打开一个窗口时,VS Code 会为这个窗口创建插件进程,并且按需要激活插件。也就是说,同一时间,你的代码有可能被运行多次。

 

 

 

原文: https://geek-docs.com/vscode/vscode-plugin-dev/vscode-plug-in-architecture.html

 

标签:Node,插件,Code,VSCode,教程,js,VS,进程
From: https://www.cnblogs.com/jiftle/p/17466533.html

相关文章

  • uniapp打包所需的ios证书和证书profile文件获取的图文教程
    使用uniapp进行云打包,可以打包android和ios两种app,但是uniapp官方并不能凭空产生这两种平台所需的打包证书。那么这两种打包证书又是如何获取呢?android相对简单,使用jdk的工具生成就可以了,也可以使用香蕉云编来一键生成。但是ios证书的生成就没有这么简单,因为ios证书的生成需要......
  • ESP32-C3入门教程——导读
    文章目录一、环境篇二、基础篇三、系统篇四、WiFi篇五、蓝牙篇六、网络篇七、IoT篇八、问题篇九、ESP-IDF5.x篇十、开源代码十一、视频演示关于更新进度有超链接的文章是已经完成的,可以点击跳转直接看没有超链接的文章是计划要写的,暂时还没写的,我会尽快完成一、环境篇ESP32-C3入......
  • 泰凌微8258入门教程——导读
    基于泰凌微TLSR8258Bluetooth®SIGMesh的入门系列教程本专栏第一阶段的博文撰写在2021年9月份全部完成,主要包括环境篇,开发套件购买+开发环境搭建+开发内容介绍Mesh基础篇,Mesh基础内容Mesh进阶篇,Mesh进阶内容,包含独门绝密内容本专栏第二阶段的博文撰写在2022年3月份再次开启......
  • Lombok插件
    1、简介Lombok是简化javabean开发的一款插件.在处理例如getset方法,构造器、tostring方法等可以帮助提高开发效率. 2、集成lombok(1)、idea安装lombok插件 (2)、项目集成lombok这里以spring-boot 2.3.4.RELEASE为例子,默认集成了lombok 3、实战(1)、@Data注解 ......
  • PowerDesigner使用教程(转)
    PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一。Rose是专攻UML对象模型的建模工具,之后才向数据库建模发展,而PowerDesigner则与其正好相反,它是以数据库建模起家,后来才发展为一款综合全面的Case工具。PowerDesigner主要分为7种建模文......
  • Makefile基础教程(自动生成依赖关系)
    @TOC前言在前面的文章中我们都只使用到了.c文件作为依赖但是在实际的工程中肯定是不可能只有.c文件的还存在.h文件,那么在包含了.h文件后又该如何来包含依赖关系呢?一、makefile不包含.h依赖的后果首先先在目录下新建四个文件夹,其中就包含了fun.h这个文件。makefile:OBJS:=fun.omai......
  • Midjourney AI绘画中文教程详解(完整版)模型、命令、参数与各种高级用法
     我有一种预感,您一下子看不完这篇内容,您得【收藏】一下,以便下次接着看~~ MidjourneyAI绘画中文教程,Midjourney是一款2022年3月面世的AI绘画工具,创始人是DavidHolz。 只要输入想到的文字,就能通过人工智能产出相对应的图片,耗时只有大约一分钟,这个工具不仅能绘画,还能做海报,UI设......
  • vscode rest client
    安装略helloworld文档地址:https://marketplace.visualstudio.com/items?itemName=humao.rest-client文件后缀为.http或.rest一个文件有多个请求的话,用###分割如果有报错:HeadernamemustbevalidHTTPtoken,细看官网,则注意大小写content-typebody参......
  • Webpack 插件实现 CSS 样式尺寸单位转换
    Webpack插件实现CSS样式尺寸单位转换实现方式一插件代码以下是编写的一个Webpack插件,用于将样式文件中以rpx为单位的值转换为以px为单位的值(换算比率为1px=2rpx):constpluginName="CssSzieConvertPlugin";classCssSzieConvertPlugin{apply(compiler){......
  • 【B站视频下载教程】杰伦开演唱会了!教你下载周杰伦嘉年华B站录播视频
    本期教程教大家如何用学无止下载器,下载哔哩哔哩B站上面的视频这里以2023年5月5日周杰伦嘉年华香港站B站录播视频为例,教大家下载B站视频。一:电脑网页打开哔哩哔哩B站官网,从网页复制想要下载的视频网址链接二:把复制后的课程链接粘贴至学无止下载器中,即可一键下载三:下载好......