VS-Code-Extension-Doc-ZH
VS-Code-Extension-Doc-ZH copied to clipboard
插件开发的编译器问题?
开发插件的时候,可以往其中嵌入编译环境嘛?例如嵌入gcc的编译环境?
如果不能的话,可以在用户安装插件的同时,安装gcc的编译环境到用户电脑上嘛?
vsc 是基于 node 的,因此整个vsc 的原生 runtime 不存在除 node 外的其他运行环境。由于整个插件体系也是基于 node 生态的,你可以理解为开发 vsc 插件即开发 npm 包,所以首先你的插件必须符合一个传统 npm 包的规范,其次还要符合 vsc 插件规范。
所以你的问题可以理解为,node 插件如何调用 C 编译环境,这部分的内容你可以参考 node 与 C 的通信规范 n-api 或 node-gyp,你可以理解这些方式会加载一个最小 gcc 的运行时,在插件安装时对插件包中的目标代码进行编译。另外 VSC 文档并不建议你在插件中使用原生模块,原因如下:
- 跨平台原因,包括对 linux、macOS、windows、浏览器的支持(大部分使用 JS 发开的插件也可在浏览器中运行,vsc 内核可运行在浏览器中)
- vsc 架构对此类插件调试支持并不到位
- 原生插件可能无法兼容远程开发主机