async function selectQuickPick()

in src/utils/configUtils.ts [46:78]


async function selectQuickPick(configs: IExecutionConfig[], workspaceFolder: WorkspaceFolder): Promise<IExecutionConfig | undefined> {
    if (configs.length === 0) {
        return {};
    }

    interface IRunConfigQuickPick extends QuickPickItem {
        item: IExecutionConfig;
    }

    const choices: IRunConfigQuickPick[] = [];
    for (let i: number = 0; i < configs.length; i++) {
        const label: string = configs[i].name ? configs[i].name! : `Configuration #${i + 1}`;
        choices.push({
            label,
            detail: JSON.stringify(configs[i]),
            item: configs[i],
        });
    }
    if (choices.length === 1) {
        return choices[0].item;
    }
    const selection: IRunConfigQuickPick | undefined = await window.showQuickPick(choices, {
        ignoreFocusOut: true,
        placeHolder: `Select test configuration for workspace folder: "${workspaceFolder.name}"`,
    });
    if (!selection) {
        return undefined;
    }

    askPreferenceForConfig(configs, selection.item, workspaceFolder.uri);

    return selection.item;
}