vscode 是通过Electron实现跨平台的,而Electron则是基于Chromium和node.js,vscode界面,就是通过Chromium进行渲染的,同时,vscode是多进程架构,当vscode第一次被启动时会创建一个
主进程
,每个窗口,都会创建一个渲染进程
,榆次同时,vscode会为每个窗口创建一个进程专门来执行插件,即Extension Host
除了以上三个主要的进程之外,还有两种特殊的进程,第一种是调试进程vscode为调试窗口创建了Debug Adaper
,进程,渲染进程会通过VS code Debug Protocol和Debug Adapter进程通讯,第二种则是Language Server
VS code创建Extension Host进程的方式,就是创建一个新的Electron进程,并且以node.js的形式运行,也就是说,这个进程就是一个完整的node.js进程
开发vscode插件的时候:
- 插件就是一个node.js应用
- 在应用中,可以直接访问VS code的API,通过API操作VS code
- 每当打开一个窗口,VS code就会为这个窗口创建插件进程,并且按需要激活插件,同一时间,开发的插件代码有可能被多次运行
vscode是居于electron,前端这里不需要考虑兼容写法
vscode构建扩展
确保已经安装node.js和git