是否可以从其他应用程序访问 VSCode 语言服务器?

问题描述 投票:0回答:1

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

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

visual-studio-code vscode-extensions
1个回答
-1
投票

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

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

根据您的编辑器所基于的编程语言,您可以找到更具体的示例来遵循。

但是,某些语言服务器不是开源的,也没有获得专门与 VS Code 一起使用的许可。因此,您不应该在其他地方使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.