34 lines
1.0 KiB

  1. 'use strict';
  2. import { window } from 'vscode';
  3. import { Container } from '../container';
  4. import { Iterables } from '../system';
  5. import { CommandQuickPickItem, getQuickPickIgnoreFocusOut } from './commonQuickPicks';
  6. import { RepositoryQuickPickItem } from './gitQuickPicks';
  7. export class RepositoriesQuickPick {
  8. static async show(
  9. placeHolder: string,
  10. goBackCommand?: CommandQuickPickItem
  11. ): Promise<RepositoryQuickPickItem | CommandQuickPickItem | undefined> {
  12. const items: (RepositoryQuickPickItem | CommandQuickPickItem)[] = await Promise.all([
  13. ...Iterables.map(await Container.git.getOrderedRepositories(), r =>
  14. RepositoryQuickPickItem.create(r, undefined, { branch: true, status: true })
  15. )
  16. ]);
  17. if (goBackCommand !== undefined) {
  18. items.splice(0, 0, goBackCommand);
  19. }
  20. // const scope = await Container.keyboard.beginScope({ left: goBackCommand });
  21. const pick = await window.showQuickPick(items, {
  22. placeHolder: placeHolder,
  23. ignoreFocusOut: getQuickPickIgnoreFocusOut()
  24. });
  25. // await scope.dispose();
  26. return pick;
  27. }
  28. }