public async prompt()

in src/commands/createFunction/FunctionListStep.ts [144:180]


    public async prompt(context: IFunctionWizardContext): Promise<void> {
        let templateFilter: TemplateFilter = getWorkspaceSetting<TemplateFilter>(templateFilterSetting, context.projectPath) || TemplateFilter.Verified;

        const templateProvider = ext.templateProvider.get(context);
        while (!context.functionTemplate) {
            let placeHolder: string = this._isProjectWizard ?
                localize('selectFirstFuncTemplate', "Select a template for your project's first function") :
                localize('selectFuncTemplate', 'Select a template for your function');

            if (templateProvider.templateSource) {
                placeHolder += localize('templateSource', ' (Template source: "{0}")', templateProvider.templateSource)
            }

            const result: IFunctionTemplate | TemplatePromptResult = (await context.ui.showQuickPick(this.getPicks(context, templateFilter), { placeHolder })).data;
            if (result === 'skipForNow') {
                context.telemetry.properties.templateId = 'skipForNow';
                break;
            } else if (result === 'changeFilter') {
                templateFilter = await promptForTemplateFilter(context);
                // can only update setting if it's open in a workspace
                if (!this._isProjectWizard || context.openBehavior === 'AlreadyOpen') {
                    await updateWorkspaceSetting(templateFilterSetting, templateFilter, context.projectPath);
                }
                context.telemetry.properties.changedFilter = 'true';
            } else if (result === 'openAPI') {
                context.generateFromOpenAPI = true;
                break;
            } else if (result === 'reloadTemplates') {
                await templateProvider.clearTemplateCache(context, context.projectPath, nonNullProp(context, 'language'), nonNullProp(context, 'version'));
                context.telemetry.properties.reloaded = 'true';
            } else {
                context.functionTemplate = result;
            }
        }

        context.telemetry.properties.templateFilter = templateFilter;
    }