Visual Studio Code 通过一种开放的 JSON-RPC 协议,实现了编辑器与语言服务器之间的解耦。这种架构允许开发者为任意编程语言构建完整的开发工具链,包括代码补全、错误检测和跳转定义等功能。
要为一个新兴语言添加支持,核心步骤是遵循该开源规范实现一个“语言服务器”。当用户打开文件时,编辑器通知服务器;编辑发生时,服务器分析语义并返回诊断信息;执行跳转操作时,服务器提供定义位置。这一交互过程完全基于 JSON-RPC 协议进行。
关于实现语言,规范明确支持使用任何语言编写语言服务器,并不强制要求 TypeScript 或 Node.js。虽然官方提供了基于 TypeScript 和 Node.js 的示例代码供学习,但开发者也可以利用编译为 WebAssembly 的语言或其他技术栈来实现,只要遵循相同的通信协议即可。