in src/configure/configure.ts [175:214]
private async setWorkspace(): Promise<void> {
let workspaceFolders = vscode.workspace && vscode.workspace.workspaceFolders;
if (workspaceFolders && workspaceFolders.length > 0) {
telemetryHelper.setTelemetry(TelemetryKeys.SourceRepoLocation, SourceOptions.CurrentWorkspace);
if (workspaceFolders.length === 1) {
telemetryHelper.setTelemetry(TelemetryKeys.MultipleWorkspaceFolders, 'false');
this.workspacePath = workspaceFolders[0].uri.fsPath;
}
else {
telemetryHelper.setTelemetry(TelemetryKeys.MultipleWorkspaceFolders, 'true');
let workspaceFolderOptions: Array<QuickPickItemWithData> = [];
for (let folder of workspaceFolders) {
workspaceFolderOptions.push({ label: folder.name, data: folder });
}
let selectedWorkspaceFolder = await this.controlProvider.showQuickPick(
constants.SelectFromMultipleWorkSpace,
workspaceFolderOptions,
{ placeHolder: Messages.selectWorkspaceFolder });
this.workspacePath = selectedWorkspaceFolder.data.uri.fsPath;
}
}
else {
telemetryHelper.setTelemetry(TelemetryKeys.SourceRepoLocation, SourceOptions.BrowseLocalMachine);
let selectedFolder: vscode.Uri[] = await vscode.window.showOpenDialog(
{
openLabel: Messages.selectFolderLabel,
canSelectFiles: false,
canSelectFolders: true,
canSelectMany: false,
}
);
if (selectedFolder && selectedFolder.length > 0) {
this.workspacePath = selectedFolder[0].fsPath;
}
else {
throw new Error(Messages.noWorkSpaceSelectedError);
}
}
}