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 - Fatal编程技术网

Javascript 扩展如何在VSCode中扩展配置变量?

Javascript 扩展如何在VSCode中扩展配置变量?,javascript,visual-studio-code,Javascript,Visual Studio Code,我试图为vscode编写一个扩展名,该扩展名需要从./vscode/settings.json文件中读取pasteImage.parth变量 { "pasteImage.path": "${workspaceRoot}/assets/images" } 我尝试使用vscode.workspace.getConfiguration()函数获取如下变量: let folderPathFromConfig = vscode.workspace.getConfiguration('pasteI

我试图为vscode编写一个扩展名,该扩展名需要从./vscode/settings.json文件中读取pasteImage.parth变量

{
    "pasteImage.path": "${workspaceRoot}/assets/images"
}
我尝试使用vscode.workspace.getConfiguration()函数获取如下变量:

let folderPathFromConfig = vscode.workspace.getConfiguration('pasteImage')['path'];
但它得到了“${workspaceRoot}/assets/images”,我想要${workspaceRoot}扩展到工作区根的实际路径,我应该怎么做

谢谢你的提示

根据您可以使用的

let workspaceRoot = vscode.workspace.workspaceFolders[0];
要获取根
工作空间文件夹
。通过使用
Uri
,可以获取
工作空间文件夹的绝对路径:

let workspaceRootPath = workspaceRoot.uri.path;
然后您只需替换
folderPathFromConfig
“${workspaceRoot}”
子字符串
总结如下:

let folderPathFromConfig = vscode.workspace.getConfiguration('pasteImage')['path'];

if (vscode.workspace.workspaceFolders !== undefined) { // is undefined if no folder is opened
    let workspaceRoot = vscode.workspace.workspaceFolders[0];
    folderPathFromConfig = folderPathFromConfig.replace('${workspaceRoot}', workspaceRoot.uri.path);
}
根据您可以使用的

let workspaceRoot = vscode.workspace.workspaceFolders[0];
要获取根
工作空间文件夹
。通过使用
Uri
,可以获取
工作空间文件夹的绝对路径:

let workspaceRootPath = workspaceRoot.uri.path;
然后您只需替换
folderPathFromConfig
“${workspaceRoot}”
子字符串
总结如下:

let folderPathFromConfig = vscode.workspace.getConfiguration('pasteImage')['path'];

if (vscode.workspace.workspaceFolders !== undefined) { // is undefined if no folder is opened
    let workspaceRoot = vscode.workspace.workspaceFolders[0];
    folderPathFromConfig = folderPathFromConfig.replace('${workspaceRoot}', workspaceRoot.uri.path);
}

似乎没有针对它的服务,您必须扩展
AbstractVariableResolversService
,类似于这样做

不幸的是,您无法从扩展中导入这些内容


这很简单,但我想知道当他们决定不这样做时,他们是怎么想的


IProcessEnvironment
仅用于内置的
process.env
prop。

似乎没有针对它的服务,您必须扩展
AbstractVariableResolversService
,类似于此

不幸的是,您无法从扩展中导入这些内容


这很简单,但我想知道当他们决定不这样做时,他们是怎么想的


IProcessEnvironment
仅适用于内置的
process.env
prop.

作为一种变通方法,它不会解决问题。作为一种变通方法,它不会解决问题。