in src/utils/workspaceUtils.ts [12:42]
export async function selectWorkspaceFolder(): Promise<string | undefined> {
let folder: vscode.WorkspaceFolder;
if (!_.isEmpty(vscode.workspace.workspaceFolders)) {
if (vscode.workspace.workspaceFolders.length > 1) {
folder = await vscode.window.showWorkspaceFolderPick({
placeHolder: "Select the working directory you wish to use",
ignoreFocusOut: true,
});
} else {
folder = vscode.workspace.workspaceFolders[0];
}
} else {
const response = await vscode.window.showInformationMessage(
"There is no folder opened in current workspace, would you like to open a folder?",
DialogOption.open,
DialogOption.cancel,
);
if (response === DialogOption.open) {
const selectedFolder: vscode.Uri = await showFolderDialog();
if (selectedFolder) {
/**
* Open the selected folder in a workspace.
* NOTE: this will restart the extension host.
* See: https://github.com/Microsoft/vscode/issues/58
*/
await vscode.commands.executeCommand("vscode.openFolder", selectedFolder, false /* forceNewWindow */);
}
}
}
return folder ? folder.uri.fsPath : undefined;
}