2017-05-15 89 views
1

我試着寫了vscode一個擴展,擴展需要讀取從./vscode/settings.json文件pasteImage.parth變量擴展如何擴展VSCode中的配置變量?

{ 
    "pasteImage.path": "${workspaceRoot}/assets/images" 
} 

我嘗試使用vscode.workspace.getConfiguration()函數來獲取變量是這樣的:

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

但它得到了「$ {} workspaceRoot /資產/圖像」,我想$ {} workspaceRoot擴大到工作區根的真實路徑,我該怎麼辦?

感謝您的任何提示!

回答

0

按照vscode extensibility documentation可以使用

let workspaceRoot = vscode.workspace.workspaceFolders[0]; 

獲取根WorkspaceFolder。您可以通過使用其Uri得到WorkspaceFolder的絕對路徑:

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); 
}