Visual studio code 如何在vscode';s多根工作区
如何在多个根工作区中获取活动工作区。 我为vscode编写了一个扩展,并使用此代码检查当前工作区是否为多根Visual studio code 如何在vscode';s多根工作区,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,如何在多个根工作区中获取活动工作区。 我为vscode编写了一个扩展,并使用此代码检查当前工作区是否为多根 let wsfolders = vscode.workspace.workspaceFolders !wsfolders no wsfolders.length != 1 Multi-root 在此之后,如何找到活动工作区。VS代码中没有“活动”工作区的概念,请参阅 也许您的基本需求是找出“活动编辑器”(当前聚焦的编辑器)属于哪个工作区文件夹。 在这种情况下,您可以使用活动编辑器
let wsfolders = vscode.workspace.workspaceFolders
!wsfolders no
wsfolders.length != 1 Multi-root
在此之后,如何找到活动工作区。VS代码中没有“活动”工作区的概念,请参阅
也许您的基本需求是找出“活动编辑器”(当前聚焦的编辑器)属于哪个工作区文件夹。
在这种情况下,您可以使用活动编辑器文档的路径,并将其与所有工作区文件夹的路径进行比较,以找到匹配的路径(如果有)
从“vscode”导入*为vscode;
从“路径”导入*作为路径;
if(vscode.window.activeTextEditor){
常量activeEditorPath=vscode.window.activeTextEditor.document.uri.path;
const matchingWorkspace=vscode.workspace.workspaceFolders?.find(
(wsFolder)=>{
const relative=path.relative(wsFolder.uri.fsPath,activeEditorPath);
返回relative&!relative.startsWith('..')&&!path.isAbsolute(relative);
}
);
}
(检查路径的函数取自)VS代码中没有“活动”工作区的概念,请参阅
也许您的基本需求是找出“活动编辑器”(当前聚焦的编辑器)属于哪个工作区文件夹。
在这种情况下,您可以使用活动编辑器文档的路径,并将其与所有工作区文件夹的路径进行比较,以找到匹配的路径(如果有)
从“vscode”导入*为vscode;
从“路径”导入*作为路径;
if(vscode.window.activeTextEditor){
常量activeEditorPath=vscode.window.activeTextEditor.document.uri.path;
const matchingWorkspace=vscode.workspace.workspaceFolders?.find(
(wsFolder)=>{
const relative=path.relative(wsFolder.uri.fsPath,activeEditorPath);
返回relative&!relative.startsWith('..')&&!path.isAbsolute(relative);
}
);
}
(检查路径的功能取自)使用
vscode.workspace.getWorkspaceFolder(uri:uri):WorkspaceFolder |未定义
返回包含给定uri的工作区文件夹
- 当给定uri与任何工作区文件夹不匹配时,返回undefined
- 当给定uri本身是工作区文件夹时,返回输入
- 当给定uri与任何工作区文件夹不匹配时,返回undefined
- 当给定uri本身是工作区文件夹时,返回输入
与其像我的答案中那样手动实现“查找工作区逻辑”,不如使用@rioV8答案中引用的VS代码API。与其像我的答案中那样手动实现“查找工作区逻辑”,不如使用@rioV8答案中引用的VS代码API。