1

我正在通过我正在开发的扩展程序在 vscode 上运行远程语言服务器。客户端和服务器都可以通过挂载的共享文件夹访问代码。问题是此文件夹位于客户端和服务器上的不同位置。(/home/username/myproject在客户端,/mnt/shared_folder/myproject在服务器上)

我的问题是我可以配置 vscode 语言客户端,以便它将路径从本地位置转换到远程位置,反之亦然?

如果我从带有工作区的项目中运行语言客户端,是否可以对其进行配置,使其发送相对于工作区根目录的文件 URI,而不是发送绝对文件路径?这样做我可以简单地使用共享文件夹挂载点的路径在服务器端重建文件 uri。

我听说过,Middlewares或者uriConverters但我不确定这是否是它们打算用于的目的。

谢谢!

4

1 回答 1

0

语言服务器协议期望引用文件的 URI 在服务器端和客户端是相同的。我认为最好的方法是在服务器上(毕竟是具有文件“克隆”而不是原始文件的服务器)将客户端 URI“/home/username/myproject”转换为服务器 URI 的逻辑尝试访问文件时出现“/mnt/shared_folder/myproject”。访问文件是你实现的一部分,所以它不是 LSP API 的一部分,转换应该在你的实现中发生。

于 2018-06-04T07:57:03.977 回答