vscode 源码学习 2- 目录结构

881 阅读1分钟

首先,我们来看一下一级目录:

vscode
├── build - 构建相关代码
├── extensions - 内置插件位置
├── resources - 静态资源
├── scripts - 启动或者编译脚本位置
├── src - 源代码目录
├── test
├── package.json
└── yarn.lock

上述标记出来的为比较主要的目录,我们先看这些吧。

接下来,我们主要去看 src 目录。

├── main.js 主进程启动入口文件
├── tsconfig.base.json
├── tsconfig.json
├── tsconfig.monaco.json
├── typings
│   ├── require.d.ts
│   └── thenable.d.ts
└── vs
    ├── base # 工具类位置
    ├── code # 核心代码位置
    ├── editor # 编辑器UI
    └── workbench # 
    ├── platform


editorworkbench内容比较多,不大好定型具体是啥,后续继续看吧,我们可以从核心的代码 code目录进行解读。

Code
├── browser 
│   └── workbench
├── buildfile.js
├── electron-browser # 浏览器环境代码
│   ├── sharedProcess
│   └── workbench
├── electron-main # 主进程代码
│   ├── app.ts
│   ├── auth.ts
│   ├── auth2.ts
│   ├── main.ts
│   ├── sharedProcess.ts
│   └── window.ts
├── electron-sandbox  # 这个目录下我就看过 processExplorer 是一个监控进程、cpu 内存的窗口
│   ├── issue
│   ├── processExplorer
│   ├── proxy
│   └── workbench
├── node # node 环境代码
│   ├── cli.ts
│   ├── cliProcessMain.ts
│   └── shellEnv.ts
└── test # 测试代码
    ├── electron-main
    └── node

整体上目录结构还是比较清晰的,按照环境来进行了目录结构的划分。

接下来,在看源码之前,我们得学习这些东西,可能才能看得懂,这也是我学习 vscode 很久之后的总结,接下来也会按照如下的内容进行分享:

  • IOC 机制(如果知道 java 的 spring 都知道它是依赖注入,这里则是在 js 中的一个实现)
  • 事件机制
  • Electron IPC 通信机制设计
  • Disposable 对象
  • 可取消的 Promise
  • 延迟实例化