认识vscode-一

近期因为工作和自身的爱好等等机缘巧合.需要对vscode进行二次魔改。
所以一直在啃vscode源码.

vscode 整体架构非常复杂,但同时源码非常清晰明了,有第三方依赖,核心模块大都是由自身实现,包括依赖注入系统、UI管理、插件服务、terminal(powershell)管理.

vscode的模块架构非常清晰.主要包含

  • extensions (插件模块.该目录下每个目录都是一个独立的插件. build/builtInExtensions.json 描述了额外依赖的远程插件
  • vs-base (基础功能模块
  • vs-code (这里还没了解是啥后续更新。代码很少
  • vs-editor ( monaco-editor…
  • vs-platform ( 这里可以理解为跟系统原生API交互的一些组件. 比如 fileDialog.. powershell. bash 啊这些..
  • vs-workbench ( 工作区模块.二次开发主要也是改这里

每个模块基本还会细分为三个子模块分别运行在三个不同的进程.

  • browser (UI逻辑
  • common (共享的一些逻辑. config 之类的 如果在这里写了一些依赖node 库才能运行的代码 让 browser调用了。会导致vscode卡死..
  • node (node逻辑代码

不同的进程间如图采用ipc通讯

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理