public async showQuickPick()

in src/mainClassPicker.ts [24:57]


    public async showQuickPick(options: IMainClassOption[], placeHolder: string, parameter3?: Formatter | boolean,
                               parameter4?: boolean): Promise<IMainClassOption | undefined> {
        let labelFormatter: Formatter = defaultLabelFormatter;
        let autoPick: boolean = true;
        if (typeof parameter3 === "function") {
            labelFormatter = parameter3;
        } else if (typeof parameter3 === "boolean") {
            autoPick = parameter3;
        }
        if (typeof parameter4 === "boolean") {
            autoPick = parameter4;
        }

        if (!options || !options.length) {
            return undefined;
        } else if (autoPick && options.length === 1) {
            return options[0];
        }

        const pickItems = options.map((option) => {
            return {
                label: labelFormatter(option),
                description: option.filePath ? path.basename(option.filePath) : "",
                detail: option.projectName ? `Project: ${option.projectName}` : "",
                data: option,
            };
        });

        const selected = await window.showQuickPick(pickItems, { placeHolder });
        if (selected) {
            return selected.data;
        }
        return undefined;
    }