【问题标题】:How does vscode handle file path when executing a language server remotely远程执行语言服务器时vscode如何处理文件路径
【发布时间】:2018-09-15 03:20:53
【问题描述】:

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

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

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

我听说过MiddlewaresuriConverters,但我不确定它们是否打算用于此目的。

谢谢!

【问题讨论】:

    标签: visual-studio-code vscode-extensions languageservice language-server-protocol


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多