我正在尝试在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代码扩展名: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 = () => {};