是否可以从另一个应用程序访问 VSCode 语言服务器?

Is it possible to access a VSCode language server from another application?

根据 https://microsoft.github.io/language-server-protocol/overviews/lsp/overview/ 的概述,VSCode 语言服务器本质上是 JSON-RPC 服务器。一旦 VSCode 打开并且 运行 至少有 1 个语言服务器,您如何知道该语言服务器 运行 在哪个端口上以便从 VSCode 外部访问它?

我想制作一个实验性应用程序,其中 VSCode 语言服务器是在单独进程中运行的自定义代码编辑器的后端。

语言服务器通常是由 VSCode 基于配置启动的控制台应用程序,其 stdin/stdout 流被重定向。通常没有端口打开。也就是说,JSON-RPC 是基于 stdin/stdout 的协议,而不是基于 HTTP 的 JSON。

如果要将语言服务器与自己的编辑器集成,可以在编辑器端完全实现语言服务器协议客户端,使其可以执行相同的语言服务器进程管理和stdin/stdout流重定向。有很多著名编辑器的开源项目,例如

根据构建编辑器的编程语言,您可以找到更具体的示例。