当前位置: 首页 > 网络应用技术

VSCODE插头 - 原理浅分析和实际战斗

时间:2023-03-06 19:40:25 网络应用技术

  作为前端同学,这绝对不是VScode的陌生人。我相信每个同学都有多种个性化的配置。那么我们该怎么办?这是丰富的生态。这次将讲述插头的基本原理,并学习如何从简单的情况下制作一个原则

  电子VSCODE的底层是通过电子开发的。电子的核心组成是:铬,nodejs,本地api

  Chromium(UI视图):UI接口是通过Web技术堆栈编写的。与Chrome的区别是开源和开源。您可以无需安装即可直接使用它(您可以简单地理解Chromium是Chrome的Beta体验版本。

  Nodejs(操作桌面文件系统):由Node-GYP编译,主要用于操作文件系统并调用本地网络。

  本地-API(MATSUS API):使用Nodejs-C ++插件调用操作系统API(Nodejs-C ++插件插件是一个动态链接库,该链接库,用C/C ++语言编写),可以理解,扩展Nodejs接口的能力。

  电子多过程:

  例子:

  VSCODE还有其他一些过程,例如::

  从普遍的意义上讲,电子是镀铬浏览器的外壳,但是它比传统网页更具访问桌面文件的功能。

  https://github.com/microsoft/vscode/tree/main

  插件的结构

  插头的插头流程初始化 - 插件插件服务通过插件插件的初始化插头 - 初始化构造函数中的初始化插件。

  叉渲染过程叉渲染过程并加载extensionHostProcess.baus vScode考虑插头 - 可能会影响启动性能和IDE本身的稳定性,因此通过过程隔离来解决此问题。

  初始化插头 - 激活逻辑

  插件激活

  继承AbstractExtExtensionservice

  加载过程

  背景:实现选择Lynx页面的基本目录结构以自动生成指定目录的插件。

  目标拆卸:

  特定实施的环境准备

  主:指定插件的输入功能。

  ActivationEvents:指定触发事件,并在指定事件发生时触发插件-In执行。请额外注意此特殊的插件类型,因为他会在初始化完成后触发插件-In执行需要任何自定义触发事件。

  贡献:描述插头的扩展点,用于定义插头的哪一部分来扩展VSCODE,例如命令命令命令面板,菜单资源管理面板,等等。

  在成功的初始化插头项目成功之后,我们将在上图中看到目录结构。其中,我们需要专注于SRC目录和package.json文件。其中,src目录中的extension.ts文件是入口文件,其中包括和分开为插件启动和插件 - 卸载生命周期函数可以直接在两个函数中写入逻辑,然后抽象并调用它在其中。

  同时,我们希望插件在正确的时间开始或关闭,VSCODE还为我们提供了多个事件作为多个执行时间的入口方法。那么我们应该如何使用这些事件?

  如何使用这些事件?我们以oncommand为例。首先,您需要在package.json文件中注册。

  然后在extension.ts文件的方法中编写自定义逻辑。

  优化点端

  以上是此共享的所有内容,我希望能帮助您^_^

  如果您喜欢它,请不要忘记分享,例如收集三家公司?。

  欢迎注意公共帐户ELAB团队,在大型工厂中收获一篇好文章?

  我们来自殴打字节。它是其强大教育的前端部门。它负责开发字节击败教育产品的前端产品。

  我们已经围绕产品提高,开发效率,创造力和切割技术等的方向为行业贡献了经验价值,并为行业做出了贡献。包括但不限于绩效监控,组件库,多端技术,多端技术,无服务器,视觉结构,音频和视频,人工智能,产品设计和营销以及其他内容。

  欢迎来到有兴趣的学生推动作者部门在评论区域拍摄砖头或使用内部推动代码?

  字节击败学校/社会招聘交付链接:

  https://job.toutiao.com/s/fcbemrg

  内推代码:gduvrjj

  原始:https://juejin.cn/post/7099838116789387295