Browse Source

Adds canConfirm flag for Git commands

main
Eric Amodio 5 years ago
parent
commit
71f9a23cd4
3 changed files with 12 additions and 5 deletions
  1. +5
    -1
      src/commands/git/stash.ts
  2. +1
    -2
      src/commands/gitCommands.ts
  3. +6
    -2
      src/commands/quickCommand.ts

+ 5
- 1
src/commands/git/stash.ts View File

@ -108,12 +108,16 @@ export class StashGitCommand extends QuickCommandBase {
};
}
get canConfirm(): boolean {
return this._subcommand !== undefined;
}
get canSkipConfirm(): boolean {
return this._subcommand === 'drop' ? false : super.canSkipConfirm;
}
get skipConfirmKey() {
return this._subcommand === undefined ? undefined : `${this.key}-${this._subcommand}:${this.pickedVia}`;
return `${this.key}${this._subcommand === undefined ? '' : `-${this._subcommand}`}:${this.pickedVia}`;
}
protected async *steps(): StepAsyncGenerator {

+ 1
- 2
src/commands/gitCommands.ts View File

@ -461,9 +461,8 @@ export class GitCommandsCommand extends Command {
}
}
if (!command.canConfirm) return buttons;
if (command.canSkipConfirm) {
if (command.skipConfirmKey === undefined) return buttons;
buttons.push(
command.confirm() ? this.GitQuickInputButtons.WillConfirm : this.GitQuickInputButtons.WillSkipConfirm
);

+ 6
- 2
src/commands/quickCommand.ts View File

@ -83,6 +83,10 @@ export abstract class QuickCommandBase implements QuickPickItem {
this.detail = options.detail;
}
get canConfirm(): boolean {
return true;
}
get canSkipConfirm(): boolean {
return true;
}
@ -106,12 +110,12 @@ export abstract class QuickCommandBase implements QuickPickItem {
this._pickedVia = value;
}
get skipConfirmKey(): string | undefined {
get skipConfirmKey(): string {
return `${this.key}:${this.pickedVia}`;
}
confirm(override?: boolean) {
if (!this.canSkipConfirm || this.skipConfirmKey === undefined) return true;
if (!this.canConfirm || !this.canSkipConfirm) return true;
return override !== undefined
? override

Loading…
Cancel
Save