我试图在 Visual Studio 代码扩展中获取当前打开的文件的项目文件夹路径,但不适用于多根工作区。
现在我得到的路径值为空。
目前我打开了project-ws文件夹文件app.component.html,然后在文件选项卡上按ctrl+shift+p,然后框将打开。如果我从扩展框中单击“获取项目文件夹路径”,路径值应该类似于 C:\xampp\htdocs\projects\project-ws。
如果我打开了project-bh文件夹中的任何文件,然后在文件选项卡上按ctrl+shift+p,然后框将打开。如果我从扩展框中单击“获取项目文件夹路径”,路径值应该类似于 C:\xampp\htdocs\projects\project-bh。
我无法从我的代码中找到错误。任何人都可以解决这个问题吗?
检查此网址,然后您可以在您的 vs code 扩展中进行测试,您可以轻松理解:https://github.com/jasonnutter/vscode-search-node-modules https://github.com/jasonnutter/vscode-search-node-modules我在扩展中使用了相同的概念。
.
按 Ctrl+Shift+p = 查看扩展名,然后单击“获取项目文件夹路径”,然后应该出现路径消息。
C:/Users/ADMIN/.vscode/extensions/getprojectpath/extension.js:
const vscode = require('vscode');
const path = require('path');
exports.activate = context => {
const searchMyModules = vscode.commands.registerCommand('extension.search', () => {
const preferences = vscode.workspace.getConfiguration('files.exclude');
const getCurrentlyopenedtabprojectfolderpath = async() => {
const editor = vscode.window.activeTextEditor;
if (!editor || !vscode.workspace.workspaceFolders || vscode.workspace.workspaceFolders.length < 2) {
return null;
}
let path;
const resource = editor.document.uri;
if (resource.scheme === 'file') {
const folder = vscode.workspace.getWorkspaceFolder(resource);
if (!folder) {
path = `$(alert) <outside workspace> → ${basename(resource.fsPath)}`;
} else {
path = `$(file-submodule) ${basename(folder.uri.fsPath)} (${folder.index + 1} of ${vscode.workspace.workspaceFolders.length}) → $(file-code) ${basename(resource.fsPath)}`;
}
}
return {
path
};
}
getCurrentlyopenedprojectpath().then(result => {
vscode.window.showInformationMessage(result.path)
})
})
}
exports.deactivate = () => {};
你可以试试vscode.workspace.workspaceFolders
and vscode.workspace.workspaceFiles
。这些将返回当前打开目录的文件和文件夹列表
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)