如何在VS代码语言服务器中将Uri转换为FilePath?

ruk*_*lin 3 typescript visual-studio-code vscode-extensions

在VS Code扩展中,您可以将uri转换为filePath,如下所示:

import {Uri} from 'vscode';
let uri = 'file:///c%3A/WINDOWS/file.txt';  
let path:string = Uri.parse(uri).fsPath;  
Run Code Online (Sandbox Code Playgroud)

但是,在语言服务器中,此操作不起作用,因为导入vscode失败。这样做的原因是, 成功运行后,vscode是“不是真正的node_module”
vscode问题#6586

node ./node_modules/vscode/bin/install
Run Code Online (Sandbox Code Playgroud)

语言服务器启动时,仍然找不到该模块:

Error: Cannot find module 'vscode'
Run Code Online (Sandbox Code Playgroud)

以平台无关的方式将Uri转换为filePath的最佳方法是什么?

thu*_*hur 5

看来Microsoft已移动了此软件包,因此您需要执行以下操作:

首先添加为依赖项:

npm install --save vscode-uri
Run Code Online (Sandbox Code Playgroud)

然后在您的程序中:

import Uri from 'vscode-uri'
Run Code Online (Sandbox Code Playgroud)