VS-Code-Extension-Doc-ZH icon indicating copy to clipboard operation
VS-Code-Extension-Doc-ZH copied to clipboard

插件开发的编译器问题?

Open zxy5118 opened this issue 3 years ago • 1 comments

开发插件的时候,可以往其中嵌入编译环境嘛?例如嵌入gcc的编译环境?

如果不能的话,可以在用户安装插件的同时,安装gcc的编译环境到用户电脑上嘛?

zxy5118 avatar Jun 16 '21 07:06 zxy5118

vsc 是基于 node 的,因此整个vsc 的原生 runtime 不存在除 node 外的其他运行环境。由于整个插件体系也是基于 node 生态的,你可以理解为开发 vsc 插件即开发 npm 包,所以首先你的插件必须符合一个传统 npm 包的规范,其次还要符合 vsc 插件规范。

所以你的问题可以理解为,node 插件如何调用 C 编译环境,这部分的内容你可以参考 node 与 C 的通信规范 n-api 或 node-gyp,你可以理解这些方式会加载一个最小 gcc 的运行时,在插件安装时对插件包中的目标代码进行编译。另外 VSC 文档并不建议你在插件中使用原生模块,原因如下:

  1. 跨平台原因,包括对 linux、macOS、windows、浏览器的支持(大部分使用 JS 发开的插件也可在浏览器中运行,vsc 内核可运行在浏览器中)
  2. vsc 架构对此类插件调试支持并不到位
  3. 原生插件可能无法兼容远程开发主机

Liiked avatar Jun 24 '21 03:06 Liiked