src/vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts/EditSessionsWorkbenchService/getAccountPreference
class EditSessionsWorkbenchService:	private async getAccountPreference(fromContinueOn: boolean): Promise<AuthenticationSession & { providerId: string } | undefined> {
		const quickpick = this.quickInputService.createQuickPick<ExistingSession | AuthenticationProviderOption | IQuickPickItem>();
		quickpick.ok = false;
		quickpick.placeholder = localize('choose account placeholder', "Select an account to store your working changes in the cloud");
		quickpick.ignoreFocusOut = true;
		quickpick.items = await this.createQuickpickItems(fromContinueOn);

		return new Promise((resolve, reject) => {
			quickpick.onDidHide((e) => {
				resolve(undefined);
				quickpick.dispose();
			});

			quickpick.onDidAccept(async (e) => {
				const selection = quickpick.selectedItems[0];
				const session = 'provider' in selection ? { ...await this.authenticationService.createSession(selection.provider.id, selection.provider.scopes), providerId: selection.provider.id } : ('session' in selection ? selection.session : undefined);
				resolve(session);
				quickpick.hide();
			});

			quickpick.onDidTriggerItemButton(async (e) => {
				if (e.button.tooltip === configureContinueOnPreference.tooltip) {
					await this.commandService.executeCommand('workbench.action.openSettings', 'workbench.editSessions.continueOn');
				}
			});

			quickpick.show();
		});
	}