diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index 608912cdea0..a5f20e41086 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -2461,6 +2461,7 @@ export class CommandCenter { const disposables: Disposable[] = []; const quickPick = window.createQuickPick(); quickPick.busy = true; + quickPick.sortByLabel = false; quickPick.placeholder = opts?.detached ? l10n.t('Select a branch to checkout in detached mode') : l10n.t('Select a branch or tag to checkout'); @@ -2470,7 +2471,6 @@ export class CommandCenter { picks.push(... await createCheckoutItems(repository, opts?.detached)); quickPick.items = picks; quickPick.busy = false; - quickPick.sortByLabel = false; const choice = await new Promise(c => { disposables.push(quickPick.onDidHide(() => c(undefined))); @@ -2671,18 +2671,26 @@ export class CommandCenter { } private async pickRef(items: Promise, placeHolder: string): Promise { - const listeners: Disposable[] = []; + const disposables: Disposable[] = []; const quickPick = window.createQuickPick(); + quickPick.placeholder = placeHolder; quickPick.sortByLabel = false; - quickPick.items = await items; + quickPick.busy = true; + quickPick.show(); + + quickPick.items = await items; + quickPick.busy = false; + const choice = await new Promise(resolve => { - listeners.push(quickPick.onDidHide(() => resolve(undefined))); - listeners.push(quickPick.onDidAccept(() => resolve(quickPick.activeItems[0]))); + disposables.push(quickPick.onDidHide(() => resolve(undefined))); + disposables.push(quickPick.onDidAccept(() => resolve(quickPick.activeItems[0]))); }); + + dispose(disposables); quickPick.dispose(); - listeners.forEach(d => d.dispose()); + return choice; }