【问题标题】:How to get path for currently open tab file's root path如何获取当前打开的标签文件根路径的路径
【发布时间】:2019-09-06 13:19:59
【问题描述】:

试图在 Visual Studio 代码中获取多根工作区条件下的项目文件夹路径,但很难找到路径。 以下脚本仅适用于单根工作区,但如何更改为多根工作区。

var vscode = require("vscode");
var path = require("path");
exports.activate = context => {
const searchoption = 
vscode.commands.registerCommand('extension.search', () => {

   let folderPath = vscode.workspace.rootPath; // get the open file's project folder path

});
}

【问题讨论】:

  • 从所有打开的工作区文件夹中尝试匹配启动当前活动文件的文件夹 (string.startsWith)。
  • 在 1.38 发行说明中找到此链接 github.com/microsoft/vscode/wiki/…

标签: visual-studio-code vscode-extensions


【解决方案1】:

使用workspace.workspaceFolders 代替workspace.rootPath 来获取所有文件夹。

但您问题的标题是指“当前打开的标签”。这在 activate 函数中不是一个有意义的概念,它仅在扩展首次初始化时运行。相反,您需要编写一个命令处理程序(参见extension tutorial),并在该处理程序中使用window.activeTextEditor,并最终调用window.getWorkspaceFolder

【讨论】:

  • 示例:您在 vs 代码中打开了许多项目,那么您如何识别哪个项目中的哪个文件?
  • Stack Overflow 的目的不是让别人为你做你的工作。在寻求更多帮助之前,您应该尝试使用提供的信息自行解决此问题。
猜你喜欢
  • 1970-01-01
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多