>(parameters: P, token?: CancellationToken): TPromise ? T[] : T>;
- show(parameters: TextInputParameters, token?: CancellationToken): TPromise;
- show(parameters: InputParameters, token: CancellationToken = CancellationToken.None): TPromise {
+ private _show | PickManyParameters>(multiStepHandle: CancellationTokenSource | undefined, parameters: P, token?: CancellationToken): TPromise ? T[] : T>;
+ private _show(multiStepHandle: CancellationTokenSource | undefined, parameters: TextInputParameters, token?: CancellationToken): TPromise;
+ private _show(multiStepHandle: CancellationTokenSource | undefined, parameters: InputParameters, token: CancellationToken = CancellationToken.None): TPromise {
+ if (multiStepHandle && multiStepHandle !== this.multiStepHandle) {
+ multiStepHandle.cancel();
+ return TPromise.as(undefined);
+ }
+ if (!multiStepHandle && this.multiStepHandle) {
+ this.multiStepHandle.cancel();
+ }
+
this.create();
this.quickOpenService.close();
if (this.controller) {
@@ -644,6 +661,17 @@ export class QuickInputService extends Component implements IQuickInputService {
}
}
+ multiStepInput(handler: (input: IQuickInput, token: CancellationToken) => Thenable, token = CancellationToken.None): Thenable {
+ if (this.multiStepHandle) {
+ this.multiStepHandle.cancel();
+ }
+ this.multiStepHandle = new CancellationTokenSource();
+ return TPromise.wrap(handler({
+ pick: this._pick.bind(this, this.multiStepHandle),
+ input: this._input.bind(this, this.multiStepHandle)
+ }, this.multiStepHandle.token));
+ }
+
focus() {
if (this.isDisplayed()) {
this.ui.inputBox.setFocus();