扩展如何扩展 VSCode 中的配置变量?

wot*_*ger 6 javascript visual-studio-code

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

{
  "pasteImage.path": "${workspaceRoot}/assets/images"
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用vscode.workspace.getConfiguration()函数来获取如下变量:

{
  "pasteImage.path": "${workspaceRoot}/assets/images"
}
Run Code Online (Sandbox Code Playgroud)

但是得到了${workspaceRoot}/assets/images,我想${workspaceRoot}扩展到工作空间根的真实路径,该怎么办?

感谢您的任何提示!

Haa*_*Leo -1

根据vscode 扩展性文档,您可以使用

let workspaceRoot = vscode.workspace.workspaceFolders[0];
Run Code Online (Sandbox Code Playgroud)

才能得到根源WorkspaceFolderWorkspaceFolder您可以使用它来获取 a 的绝对路径Uri

let workspaceRootPath = workspaceRoot.uri.path;
Run Code Online (Sandbox Code Playgroud)

然后你只需"${workspaceRoot}"替换folderPathFromConfig.
总结一下:

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);
}
Run Code Online (Sandbox Code Playgroud)