Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在vscode语言服务器中预打开文件_Javascript_Visual Studio Code_Vscode Extensions - Fatal编程技术网

Javascript 在vscode语言服务器中预打开文件

Javascript 在vscode语言服务器中预打开文件,javascript,visual-studio-code,vscode-extensions,Javascript,Visual Studio Code,Vscode Extensions,我的扩展中有一个自定义文件系统提供程序和一个语言客户端+服务器。自定义fsprovider实际上是在模拟文件系统,因为所有文件和目录都不在驱动器上,而是从后端获取的 我在为它提供goto定义时遇到问题 问题是,当执行goto定义时(ctrl+单击文件中的单词),语言服务器获取请求,成功找到引用文件所需的uri并返回,但文件尚未加载,因此抛出“无法打开文件名:无法读取文件名” 之后,第二次在同一个单词上执行goto定义将成功打开该文件,因为它现在已加载 在返回文件位置链接之前,是否有办法在lang

我的扩展中有一个自定义文件系统提供程序和一个语言客户端+服务器。自定义fsprovider实际上是在模拟文件系统,因为所有文件和目录都不在驱动器上,而是从后端获取的

我在为它提供goto定义时遇到问题

问题是,当执行goto定义时(ctrl+单击文件中的单词),语言服务器获取请求,成功找到引用文件所需的uri并返回,但文件尚未加载,因此抛出“无法打开文件名:无法读取文件名”

之后,第二次在同一个单词上执行goto定义将成功打开该文件,因为它现在已加载


在返回文件位置链接之前,是否有办法在language server中预打开/加载文件?

该错误是由谁抛出的?我实际上不知道如何判断,因为该错误只是以错误文本的通知形式弹出的@Gama11这可能是文件系统提供程序实现的问题?对于语言服务器返回的URI,它是否得到了一个
readFile()
请求,如果是,它是否返回了正确的内容?是的,我刚刚检查了它,它确实得到了一个具有正确URI的
readFile()
请求,而且结果似乎也是正确的。我还在扩展(不是语言服务器)中做了一件单独的事情来测试这一点,在这里我按下一个btn,某个文件应该打开。这导致了同样的问题。但是当我添加smth请求文件时(比如
wait provider.getFile(pathUri)
),然后通过
vscode.workspace.opentextcument(pathUri)打开它。然后((doc)=>{vscode.window.showTextDocument(doc)
这需要几秒钟的时间,然后打开文件时不会出现任何问题。我对FileSystemProvider API不太了解,但我想可能是VSCode错误。另一件要检查的事情可能是是否为此URI调用了
stat()
方法并返回预期结果。