Fixes repo quickpick choices fail w/ no editors

This commit is contained in:
Eric Amodio
2017-02-16 10:41:50 -05:00
parent 8594a5dd38
commit 0d7633c78a
3 changed files with 33 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
'use strict';
import { commands, Disposable, TextEditor, TextEditorEdit } from 'vscode';
import { commands, Disposable, TextEditor, TextEditorEdit, window } from 'vscode';
import { Commands } from '../constants';
export abstract class Command extends Disposable {
@@ -31,4 +31,23 @@ export abstract class EditorCommand extends Disposable {
}
abstract execute(editor: TextEditor, edit: TextEditorEdit, ...args: any[]): any;
}
export abstract class ActiveEditorCommand extends Disposable {
private _disposable: Disposable;
constructor(command: Commands) {
super(() => this.dispose());
this._disposable = commands.registerCommand(command, this._execute, this);
}
dispose() {
this._disposable && this._disposable.dispose();
}
_execute(...args: any[]): any {
return this.execute(window.activeTextEditor, ...args);
}
abstract execute(editor: TextEditor, ...args: any[]): any;
}