--- title: "IDE" date: 2018-12-29 lastmod: 2020-01-05 weight: 3 type: icon: # description: "IDE" # search related keywords --- - 底层能力 - Command - IDE基础功能模块之间一种解耦方式,同时提供部分内置命令供插件调用 - File Service - 文件服务抽象,提供FS Provider接口,可以基于 Node.js fs实现本地文件读写,或基于BrowserFS、MemoryFS等实现纯前端的- 文件系统 - Storage - IDE存储服务,管理IDE如用户设置及插件配置等缓存内容 - Theme/Syntax highlighting - CSS variables、Textmate、vscode-oniguruma - 支撑服务 - 插件市场 - Egg、OSS 、权限管控,Group、Client分组 - 日志服务 - spdlog - 更新服务 - electron-updater、差量更新 - 容器服务 - K8S、Docker、Pounch - 核心能力 - 通信服务 - 遵循基于JSONRPC 2.0协议,使用vscode-jsonrpc - 插件体系 - 兼容VS Code插件协议,自有KAITIAN插件API扩展 - 编辑器(LSP) - Monaco Editor、Language Server Protocol - 调试服务 - Debug Adapter Protocol - 功能模块 - 资源管理 - 文件树虚拟列表 - Terminal - node-pty、xterm、断连恢复 - SCM 源代码管理 - 源代码管理抽象接口,通过Git等插件实现 - Layout - 可扩展、高自由度、配置化插槽 - 场景 - Local - 小程序开发者工具 - ProCode开发 - Cloud - 模块搭建 - D2C - LowCode开发 ## 相关学习资源 - 基础依赖 - 编辑器 - [Monaco Editor](https://github.com/microsoft/monaco-editor) - 语法高亮 - [vscode-oniguruma](https://github.com/microsoft/vscode-oniguruma) - 终端 - [Xterm.js](https://github.com/xtermjs/xterm.js) - [node-pty](https://github.com/microsoft/node-pty) - 通信协议 - [vscode-jsonrpc](https://github.com/microsoft/vscode-languageserver-node/tree/master/jsonrpc) - LSP - [Language Server Protocol 官网](https://microsoft.github.io/language-server-protocol/) - [vscode-language-server-protocol ts 类型定义](https://github.com/microsoft/vscode-languageserver-node/tree/master/protocol) - DAP - [Debug Adapter Protocol 官网](https://microsoft.github.io/debug-adapter-protocol/) - 相关文章 - [IDE 深入浅出系列](https://www.atatech.org/articles/148176?spm=ata.13269325.0.0.180749fa7FrW1w)