private async selectModuleTemplate()

in src/edge/edgeManager.ts [880:959]


    private async selectModuleTemplate(label?: string, isNewSolution: boolean = false): Promise<string> {
        const templatePicks: vscode.QuickPickItem[] = [
            {
                label: Constants.LANGUAGE_C,
                description: Constants.LANGUAGE_C_DESCRIPTION,
            },
            {
                label: Constants.LANGUAGE_CSHARP,
                description: Constants.LANGUAGE_CSHARP_DESCRIPTION,
            },
            {
                label: Constants.LANGUAGE_JAVA,
                description: Constants.LANGUAGE_JAVA_DESCRIPTION,
            },
            {
                label: Constants.LANGUAGE_NODE,
                description: Constants.LANGUAGE_NODE_DESCRIPTION,
            },
            {
                label: Constants.LANGUAGE_PYTHON,
                description: Constants.LANGUAGE_PYTHON_DESCRIPTION,
            },
            {
                label: Constants.CSHARP_FUNCTION,
                description: Constants.CSHARP_FUNCTION_DESCRIPTION,
            },
            {
                label: Constants.EVENT_GRID,
                description: Constants.EVENT_GRID_DESCRIPTION,
            },
            {
                label: Constants.MACHINE_LEARNING,
                description: Constants.MACHINE_LEARNING_DESCRIPTION,
            },
            {
                label: Constants.STREAM_ANALYTICS,
                description: Constants.STREAM_ANALYTICS_DESCRIPTION,
            },
            {
                label: Constants.ACR_MODULE,
                description: Constants.ACR_MODULE_DESCRIPTION,
            },
            {
                label: Constants.EXISTING_MODULE,
                description: Constants.EXISTING_MODULE_DESCRIPTION,
            },
            {
                label: Constants.MARKETPLACE_MODULE,
                description: Constants.MARKETPLACE_MODULE_DESCRIPTION,
            },
        ];
        if (isNewSolution) {
            templatePicks.push({
                label: Constants.EMPTY_SOLUTION,
                description: Constants.EMPTY_SLN_DESCRIPTION,
            });
        }
        const templates = this.get3rdPartyModuleTemplates();
        if (templates) {
            templates.forEach((template) => {
                if (template.name && template.command) {
                    templatePicks.push({
                        label: template.name,
                        description: template.description,
                    });
                }
            });
        }
        if (label === undefined) {
            label = Constants.selectTemplate;
        }
        const templatePick = await vscode.window.showQuickPick(templatePicks, { placeHolder: label, ignoreFocusOut: true });
        if (!templatePick) {
            throw new UserCancelledError();
        }
        TelemetryClient.sendEvent(`${Constants.addModuleEvent}.selectModuleTemplate`, {
            template: templatePick.label,
        });
        return templatePick.label;
    }