VSCode 主体用 TypeScript 编写,占比超90%,底层依赖 Node.js 和 Electron,性能敏感模块用 C++ 实现,配置用 JSON,构建用 Shell 脚本。

VSCode 源码主体是用 TypeScript 写的,不是 JavaScript,也不是 C# 或 Java。
核心语言:TypeScript 是绝对主力
TypeScript 是微软自家开发的语言,作为 JavaScript 的超集,它提供了静态类型、接口、类、模块等工程化能力。VSCode 全项目超过 90% 的业务逻辑和 UI 层代码都基于 TypeScript 编写——包括编辑器核心(Monaco)、工作台(Workbench)、设置系统、调试协议适配器、扩展主机等。
这种选择让大型桌面应用的维护、重构和协作更可控,也直接支撑了 VSCode 强大的智能提示和类型跳转体验。
底层运行依赖:Node.js + Electron
VSCode 是一个桌面应用,但它不是传统原生程序。它的技术底座是:
- Electron 框架:封装 Chromium 渲染进程 + Node.js 运行时,负责窗口管理、UI 渲染、跨平台 API
- Node.js:提供文件读写、进程通信、插件沙箱、Git 集成等后端能力,版本需严格匹配(如 1.101 版本对应 Node.js 20.x)
- Chromium:所有界面(侧边栏、编辑区、面板)本质是网页,用 HTML/CSS 渲染
关键性能模块:C++ 和少量 C#
对性能敏感的部分,TS 无法胜任,于是用了更底层的语言:
- 文件系统操作(如快速扫描大目录)、文本搜索(ripgrep 集成)、终端底层(xterm.js 的 native addon)等由 C++ 实现
- 部分 .NET 相关工具链(如旧版 OmniSharp 的某些组件)曾用 C#,但当前主线已全面转向 TS/Node 架构,C# 仅存于少数可选扩展中
配置与胶水层:JSON + Shell 脚本
不是“开发语言”,但贯穿整个工程:
- JSON:settings.json、package.json、tasks.json、launch.json 等全靠 JSON 定义行为
- Shell / PowerShell / Bash:构建脚本(build.sh / build.ps1)、CI 流程、发布打包全部用脚本驱动
基本上就这些。没有黑科技,就是用对的工具解决对的问题:TypeScript 写逻辑,Electron 托管跨平台,Node.js 衔接系统,C++ 守住性能底线。










