diff --git a/src/vs/base/browser/htmlContentRenderer.ts b/src/vs/base/browser/htmlContentRenderer.ts index d6f4a95e287..fd81c880241 100644 --- a/src/vs/base/browser/htmlContentRenderer.ts +++ b/src/vs/base/browser/htmlContentRenderer.ts @@ -24,7 +24,7 @@ export interface RenderOptions { className?: string; inline?: boolean; actionHandler?: IContentActionHandler; - codeBlockRenderer?: (modeId: string, value: string) => Thenable; + codeBlockRenderer?: (modeId: string, value: string) => Promise; codeBlockRenderCallback?: () => void; } diff --git a/src/vs/base/browser/ui/actionbar/actionbar.ts b/src/vs/base/browser/ui/actionbar/actionbar.ts index 425533c5664..c195b03f812 100644 --- a/src/vs/base/browser/ui/actionbar/actionbar.ts +++ b/src/vs/base/browser/ui/actionbar/actionbar.ts @@ -792,7 +792,7 @@ export class ActionBar extends Disposable implements IActionRunner { this._onDidCancel.fire(); } - run(action: IAction, context?: any): Thenable { + run(action: IAction, context?: any): Promise { return this._actionRunner.run(action, context); } diff --git a/src/vs/base/browser/ui/tree/asyncDataTree.ts b/src/vs/base/browser/ui/tree/asyncDataTree.ts index d2487b4229a..f176c74a8a5 100644 --- a/src/vs/base/browser/ui/tree/asyncDataTree.ts +++ b/src/vs/base/browser/ui/tree/asyncDataTree.ts @@ -16,7 +16,7 @@ import { Iterator } from 'vs/base/common/iterator'; export interface IDataSource> { hasChildren(element: T | null): boolean; - getChildren(element: T | null): Thenable; + getChildren(element: T | null): Promise; } enum AsyncDataTreeNodeState { @@ -177,7 +177,7 @@ export class AsyncDataTree, TFilterData = void> imple private readonly tree: ObjectTree, TFilterData>; private readonly root: IAsyncDataTreeNode; private readonly nodes = new Map>(); - private readonly refreshPromises = new Map, Thenable>(); + private readonly refreshPromises = new Map, Promise>(); private readonly identityProvider?: IIdentityProvider; private readonly _onDidChangeNodeState = new Emitter>(); @@ -278,7 +278,7 @@ export class AsyncDataTree, TFilterData = void> imple // Data Tree - refresh(element: T | null, recursive = true): Thenable { + refresh(element: T | null, recursive = true): Promise { return this.refreshNode(this.getDataNode(element), recursive, ChildrenResolutionReason.Refresh); } @@ -436,7 +436,7 @@ export class AsyncDataTree, TFilterData = void> imple } } - private _refreshNode(node: IAsyncDataTreeNode, recursive: boolean, reason: ChildrenResolutionReason): Thenable { + private _refreshNode(node: IAsyncDataTreeNode, recursive: boolean, reason: ChildrenResolutionReason): Promise { let result = this.refreshPromises.get(node); if (result) { @@ -448,7 +448,7 @@ export class AsyncDataTree, TFilterData = void> imple return always(result, () => this.refreshPromises.delete(node)); } - private doRefresh(node: IAsyncDataTreeNode, recursive: boolean, reason: ChildrenResolutionReason): Thenable { + private doRefresh(node: IAsyncDataTreeNode, recursive: boolean, reason: ChildrenResolutionReason): Promise { const hasChildren = !!this.dataSource.hasChildren(node.element); if (!hasChildren) { diff --git a/src/vs/base/common/actions.ts b/src/vs/base/common/actions.ts index 07db01c6922..2e4fbf152d0 100644 --- a/src/vs/base/common/actions.ts +++ b/src/vs/base/common/actions.ts @@ -20,11 +20,11 @@ export interface IAction extends IDisposable { enabled: boolean; checked: boolean; radio: boolean; - run(event?: any): Thenable; + run(event?: any): Promise; } export interface IActionRunner extends IDisposable { - run(action: IAction, context?: any): Thenable; + run(action: IAction, context?: any): Promise; onDidRun: Event; onDidBeforeRun: Event; } @@ -60,9 +60,9 @@ export class Action implements IAction { protected _enabled: boolean; protected _checked: boolean; protected _radio: boolean; - protected _actionCallback?: (event?: any) => Thenable; + protected _actionCallback?: (event?: any) => Promise; - constructor(id: string, label: string = '', cssClass: string = '', enabled: boolean = true, actionCallback?: (event?: any) => Thenable) { + constructor(id: string, label: string = '', cssClass: string = '', enabled: boolean = true, actionCallback?: (event?: any) => Promise) { this._id = id; this._label = label; this._cssClass = cssClass; @@ -164,7 +164,7 @@ export class Action implements IAction { } } - run(event?: any, _data?: ITelemetryData): Thenable { + run(event?: any, _data?: ITelemetryData): Promise { if (this._actionCallback) { return this._actionCallback(event); } @@ -191,7 +191,7 @@ export class ActionRunner extends Disposable implements IActionRunner { private _onDidRun = this._register(new Emitter()); readonly onDidRun: Event = this._onDidRun.event; - run(action: IAction, context?: any): Thenable { + run(action: IAction, context?: any): Promise { if (!action.enabled) { return Promise.resolve(null); } @@ -205,7 +205,7 @@ export class ActionRunner extends Disposable implements IActionRunner { }); } - protected runAction(action: IAction, context?: any): Thenable { + protected runAction(action: IAction, context?: any): Promise { const res = context ? action.run(context) : action.run(); return Promise.resolve(res); } diff --git a/src/vs/base/common/async.ts b/src/vs/base/common/async.ts index e55ddf7e9df..7deeeae3b06 100644 --- a/src/vs/base/common/async.ts +++ b/src/vs/base/common/async.ts @@ -9,15 +9,15 @@ import { Emitter, Event } from 'vs/base/common/event'; import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; -export function isThenable(obj: any): obj is Thenable { - return obj && typeof (>obj).then === 'function'; +export function isThenable(obj: any): obj is Promise { + return obj && typeof (>obj).then === 'function'; } export interface CancelablePromise extends Promise { cancel(): void; } -export function createCancelablePromise(callback: (token: CancellationToken) => Thenable): CancelablePromise { +export function createCancelablePromise(callback: (token: CancellationToken) => Promise): CancelablePromise { const source = new CancellationTokenSource(); const thenable = callback(source.token); @@ -38,10 +38,10 @@ export function createCancelablePromise(callback: (token: CancellationToken) cancel() { source.cancel(); } - then(resolve?: ((value: T) => TResult1 | Thenable) | undefined | null, reject?: ((reason: any) => TResult2 | Thenable) | undefined | null): Promise { + then(resolve?: ((value: T) => TResult1 | Promise) | undefined | null, reject?: ((reason: any) => TResult2 | Promise) | undefined | null): Promise { return promise.then(resolve, reject); } - catch(reject?: ((reason: any) => TResult | Thenable) | undefined | null): Promise { + catch(reject?: ((reason: any) => TResult | Promise) | undefined | null): Promise { return this.then(undefined, reject); } }; @@ -90,9 +90,9 @@ export interface ITask { */ export class Throttler { - private activePromise: Thenable | null; - private queuedPromise: Thenable | null; - private queuedPromiseFactory: ITask> | null; + private activePromise: Promise | null; + private queuedPromise: Promise | null; + private queuedPromiseFactory: ITask> | null; constructor() { this.activePromise = null; @@ -100,7 +100,7 @@ export class Throttler { this.queuedPromiseFactory = null; } - queue(promiseFactory: ITask>): Thenable { + queue(promiseFactory: ITask>): Promise { if (this.activePromise) { this.queuedPromiseFactory = promiseFactory; @@ -142,7 +142,7 @@ export class Sequencer { private current: Promise = Promise.resolve(null); - queue(promiseTask: ITask>): Thenable { + queue(promiseTask: ITask>): Promise { return this.current = this.current.then(() => promiseTask()); } } @@ -173,10 +173,10 @@ export class Sequencer { export class Delayer implements IDisposable { private timeout: any; - private completionPromise: Thenable | null; - private doResolve: ((value?: any | Thenable) => void) | null; + private completionPromise: Promise | null; + private doResolve: ((value?: any | Promise) => void) | null; private doReject: (err: any) => void; - private task: ITask> | null; + private task: ITask> | null; constructor(public defaultDelay: number) { this.timeout = null; @@ -185,7 +185,7 @@ export class Delayer implements IDisposable { this.task = null; } - trigger(task: ITask>, delay: number = this.defaultDelay): Thenable { + trigger(task: ITask>, delay: number = this.defaultDelay): Promise { this.task = task; this.cancelTimeout(); @@ -247,7 +247,7 @@ export class Delayer implements IDisposable { */ export class ThrottledDelayer { - private delayer: Delayer>; + private delayer: Delayer>; private throttler: Throttler; constructor(defaultDelay: number) { @@ -255,8 +255,8 @@ export class ThrottledDelayer { this.throttler = new Throttler(); } - trigger(promiseFactory: ITask>, delay?: number): Thenable { - return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay) as any as Thenable; + trigger(promiseFactory: ITask>, delay?: number): Promise { + return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay) as any as Promise; } isTriggered(): boolean { @@ -303,8 +303,8 @@ export class Barrier { } export function timeout(millis: number): CancelablePromise; -export function timeout(millis: number, token: CancellationToken): Thenable; -export function timeout(millis: number, token?: CancellationToken): CancelablePromise | Thenable { +export function timeout(millis: number, token: CancellationToken): Promise; +export function timeout(millis: number, token?: CancellationToken): CancelablePromise | Promise { if (!token) { return createCancelablePromise(token => timeout(millis, token)); } @@ -334,7 +334,7 @@ export function disposableTimeout(handler: Function, timeout = 0): IDisposable { * @param promise a promise * @param callback a function that will be call in the success and error case. */ -export function always(promise: Thenable, callback: () => void): Promise { +export function always(promise: Promise, callback: () => void): Promise { function safeCallback() { try { callback(); @@ -346,7 +346,7 @@ export function always(promise: Thenable, callback: () => void): Promise(promise: Thenable): Thenable { +export function ignoreErrors(promise: Promise): Promise { return promise.then(undefined, _ => undefined); } @@ -355,16 +355,16 @@ export function ignoreErrors(promise: Thenable): Thenable { * promise will complete to an array of results from each promise. */ -export function sequence(promiseFactories: ITask>[]): Promise { +export function sequence(promiseFactories: ITask>[]): Promise { const results: T[] = []; let index = 0; const len = promiseFactories.length; - function next(): Thenable | null { + function next(): Promise | null { return index < len ? promiseFactories[index++]() : null; } - function thenHandler(result: any): Thenable { + function thenHandler(result: any): Promise { if (result !== undefined && result !== null) { results.push(result); } @@ -380,7 +380,7 @@ export function sequence(promiseFactories: ITask>[]): Promise(promiseFactories: ITask>[], shouldStop: (t: T) => boolean = t => !!t, defaultValue: T | null = null): Promise { +export function first(promiseFactories: ITask>[], shouldStop: (t: T) => boolean = t => !!t, defaultValue: T | null = null): Promise { let index = 0; const len = promiseFactories.length; @@ -405,8 +405,8 @@ export function first(promiseFactories: ITask>[], shouldStop: (t: } interface ILimitedTaskFactory { - factory: ITask>; - c: (value?: T | Thenable) => void; + factory: ITask>; + c: (value?: T | Promise) => void; e: (error?: any) => void; } @@ -438,7 +438,7 @@ export class Limiter { // return this.runningPromises + this.outstandingPromises.length; } - queue(factory: ITask>): Thenable { + queue(factory: ITask>): Promise { this._size++; return new Promise((c, e) => { @@ -685,8 +685,8 @@ export function nfcall(fn: Function, ...args: any[]): any { return new Promise((c, e) => fn(...args, (err: any, result: any) => err ? e(err) : c(result))); } -export function ninvoke(thisArg: any, fn: Function, ...args: any[]): Thenable; -export function ninvoke(thisArg: any, fn: Function, ...args: any[]): Thenable; +export function ninvoke(thisArg: any, fn: Function, ...args: any[]): Promise; +export function ninvoke(thisArg: any, fn: Function, ...args: any[]): Promise; export function ninvoke(thisArg: any, fn: Function, ...args: any[]): any { return new Promise((resolve, reject) => fn.call(thisArg, ...args, (err: any, result: any) => err ? reject(err) : resolve(result))); } diff --git a/src/vs/base/common/event.ts b/src/vs/base/common/event.ts index 7e7838c117c..4fde520b56d 100644 --- a/src/vs/base/common/event.ts +++ b/src/vs/base/common/event.ts @@ -332,7 +332,7 @@ export namespace Event { return result.event; } - export function fromPromise(promise: Thenable): Event { + export function fromPromise(promise: Promise): Event { const emitter = new Emitter(); let shouldEmit = false; @@ -350,7 +350,7 @@ export namespace Event { return emitter.event; } - export function toPromise(event: Event): Thenable { + export function toPromise(event: Event): Promise { return new Promise(c => once(event)(c)); } } @@ -585,14 +585,14 @@ export class Emitter { } export interface IWaitUntil { - waitUntil(thenable: Thenable): void; + waitUntil(thenable: Promise): void; } export class AsyncEmitter extends Emitter { - private _asyncDeliveryQueue: [Listener, T, Thenable[]][]; + private _asyncDeliveryQueue: [Listener, T, Promise[]][]; - async fireAsync(eventFn: (thenables: Thenable[], listener: Function) => T): Promise { + async fireAsync(eventFn: (thenables: Promise[], listener: Function) => T): Promise { if (!this._listeners) { return; } @@ -605,7 +605,7 @@ export class AsyncEmitter extends Emitter { } for (let iter = this._listeners.iterator(), e = iter.next(); !e.done; e = iter.next()) { - let thenables: Thenable[] = []; + let thenables: Promise[] = []; this._asyncDeliveryQueue.push([e.value, eventFn(thenables, typeof e.value === 'function' ? e.value : e.value[0]), thenables]); } diff --git a/src/vs/base/common/paging.ts b/src/vs/base/common/paging.ts index a6518831a93..cc808e645b7 100644 --- a/src/vs/base/common/paging.ts +++ b/src/vs/base/common/paging.ts @@ -15,12 +15,12 @@ export interface IPager { firstPage: T[]; total: number; pageSize: number; - getPage(pageIndex: number, cancellationToken: CancellationToken): Thenable; + getPage(pageIndex: number, cancellationToken: CancellationToken): Promise; } interface IPage { isResolved: boolean; - promise: Thenable | null; + promise: Promise | null; cts: CancellationTokenSource | null; promiseIndexes: Set; elements: T[]; @@ -43,7 +43,7 @@ export interface IPagedModel { length: number; isResolved(index: number): boolean; get(index: number): T; - resolve(index: number, cancellationToken: CancellationToken): Thenable; + resolve(index: number, cancellationToken: CancellationToken): Promise; } export function singlePagePager(elements: T[]): IPager { @@ -51,7 +51,7 @@ export function singlePagePager(elements: T[]): IPager { firstPage: elements, total: elements.length, pageSize: elements.length, - getPage: (pageIndex: number, cancellationToken: CancellationToken): Thenable => { + getPage: (pageIndex: number, cancellationToken: CancellationToken): Promise => { return Promise.resolve(elements); } }; @@ -90,7 +90,7 @@ export class PagedModel implements IPagedModel { return page.elements[indexInPage]; } - resolve(index: number, cancellationToken: CancellationToken): Thenable { + resolve(index: number, cancellationToken: CancellationToken): Promise { if (cancellationToken.isCancellationRequested) { return Promise.reject(canceled()); } @@ -151,7 +151,7 @@ export class DelayedPagedModel implements IPagedModel { return this.model.get(index); } - resolve(index: number, cancellationToken: CancellationToken): Thenable { + resolve(index: number, cancellationToken: CancellationToken): Promise { return new Promise((c, e) => { if (cancellationToken.isCancellationRequested) { return e(canceled()); @@ -196,7 +196,7 @@ export function mergePagers(one: IPager, other: IPager): IPager { firstPage: [...one.firstPage, ...other.firstPage], total: one.total + other.total, pageSize: one.pageSize + other.pageSize, - getPage(pageIndex: number, token): Thenable { + getPage(pageIndex: number, token): Promise { return Promise.all([one.getPage(pageIndex, token), other.getPage(pageIndex, token)]) .then(([onePage, otherPage]) => [...onePage, ...otherPage]); } diff --git a/src/vs/base/node/encoding.ts b/src/vs/base/node/encoding.ts index 516afbc93cc..0f975015eb6 100644 --- a/src/vs/base/node/encoding.ts +++ b/src/vs/base/node/encoding.ts @@ -36,7 +36,7 @@ export function toDecodeStream(readable: Readable, options: IDecodeStreamOptions readable.pipe(new class extends Writable { private _decodeStream: NodeJS.ReadWriteStream; - private _decodeStreamConstruction: Thenable; + private _decodeStreamConstruction: Promise; private _buffer: Buffer[] = []; private _bytesBuffered = 0; diff --git a/src/vs/base/node/ports.ts b/src/vs/base/node/ports.ts index 4a4316a8bf1..a077f020fa9 100644 --- a/src/vs/base/node/ports.ts +++ b/src/vs/base/node/ports.ts @@ -18,7 +18,7 @@ export function randomPort(): number { * Given a start point and a max number of retries, will find a port that * is openable. Will return 0 in case no free port can be found. */ -export function findFreePort(startPort: number, giveUpAfter: number, timeout: number): Thenable { +export function findFreePort(startPort: number, giveUpAfter: number, timeout: number): Promise { let done = false; return new Promise(resolve => { diff --git a/src/vs/base/node/processes.ts b/src/vs/base/node/processes.ts index 8ea9f18803c..dbe416c83a4 100644 --- a/src/vs/base/node/processes.ts +++ b/src/vs/base/node/processes.ts @@ -17,7 +17,7 @@ import { CommandOptions, ForkOptions, SuccessData, Source, TerminateResponse, Te import { getPathFromAmdModule } from 'vs/base/common/amd'; export { CommandOptions, ForkOptions, SuccessData, Source, TerminateResponse, TerminateResponseCode }; -export type ValueCallback = (value?: T | Thenable) => void; +export type ValueCallback = (value?: T | Promise) => void; export type ErrorCallback = (error?: any) => void; export type ProgressCallback = (progress: T) => void; diff --git a/src/vs/base/node/storage.ts b/src/vs/base/node/storage.ts index 1ba69a7ac4a..29f240df167 100644 --- a/src/vs/base/node/storage.ts +++ b/src/vs/base/node/storage.ts @@ -39,12 +39,12 @@ export interface IStorageDatabase { readonly onDidChangeItemsExternal: Event; - getItems(): Thenable>; - updateItems(request: IUpdateRequest): Thenable; + getItems(): Promise>; + updateItems(request: IUpdateRequest): Promise; - close(): Thenable; + close(): Promise; - checkIntegrity(full: boolean): Thenable; + checkIntegrity(full: boolean): Promise; } export interface IStorage extends IDisposable { @@ -53,7 +53,7 @@ export interface IStorage extends IDisposable { readonly size: number; readonly onDidChangeStorage: Event; - init(): Thenable; + init(): Promise; get(key: string, fallbackValue: string): string; get(key: string, fallbackValue?: string): string | undefined; @@ -64,12 +64,12 @@ export interface IStorage extends IDisposable { getInteger(key: string, fallbackValue: number): number; getInteger(key: string, fallbackValue?: number): number | undefined; - set(key: string, value: any): Thenable; - delete(key: string): Thenable; + set(key: string, value: any): Promise; + delete(key: string): Promise; - close(): Thenable; + close(): Promise; - checkIntegrity(full: boolean): Thenable; + checkIntegrity(full: boolean): Promise; } enum StorageState { @@ -152,7 +152,7 @@ export class Storage extends Disposable implements IStorage { return this.cache.size; } - init(): Thenable { + init(): Promise { if (this.state !== StorageState.None) { return Promise.resolve(); // either closed or already initialized } @@ -207,7 +207,7 @@ export class Storage extends Disposable implements IStorage { return parseInt(value, 10); } - set(key: string, value: any): Thenable { + set(key: string, value: any): Promise { if (this.state === StorageState.Closed) { return Promise.resolve(); // Return early if we are already closed } @@ -238,7 +238,7 @@ export class Storage extends Disposable implements IStorage { return this.flushDelayer.trigger(() => this.flushPending()); } - delete(key: string): Thenable { + delete(key: string): Promise { if (this.state === StorageState.Closed) { return Promise.resolve(); // Return early if we are already closed } @@ -262,7 +262,7 @@ export class Storage extends Disposable implements IStorage { return this.flushDelayer.trigger(() => this.flushPending()); } - close(): Thenable { + close(): Promise { if (this.state === StorageState.Closed) { return Promise.resolve(); // return if already closed } @@ -277,7 +277,7 @@ export class Storage extends Disposable implements IStorage { return this.flushDelayer.trigger(() => this.flushPending(), 0 /* as soon as possible */).then(onDone, onDone); } - private flushPending(): Thenable { + private flushPending(): Promise { if (this.pendingInserts.size === 0 && this.pendingDeletes.size === 0) { return Promise.resolve(); // return early if nothing to do } @@ -293,7 +293,7 @@ export class Storage extends Disposable implements IStorage { return this.database.updateItems(updateRequest); } - checkIntegrity(full: boolean): Thenable { + checkIntegrity(full: boolean): Promise { return this.database.checkIntegrity(full); } } @@ -669,11 +669,11 @@ export class InMemoryStorageDatabase implements IStorageDatabase { private items = new Map(); - getItems(): Thenable> { + getItems(): Promise> { return Promise.resolve(this.items); } - updateItems(request: IUpdateRequest): Thenable { + updateItems(request: IUpdateRequest): Promise { if (request.insert) { request.insert.forEach((value, key) => this.items.set(key, value)); } @@ -685,11 +685,11 @@ export class InMemoryStorageDatabase implements IStorageDatabase { return Promise.resolve(); } - close(): Thenable { + close(): Promise { return Promise.resolve(); } - checkIntegrity(full: boolean): Thenable { + checkIntegrity(full: boolean): Promise { return Promise.resolve('ok'); } } \ No newline at end of file diff --git a/src/vs/base/parts/ipc/node/ipc.cp.ts b/src/vs/base/parts/ipc/node/ipc.cp.ts index 147adec58a1..2217c707d22 100644 --- a/src/vs/base/parts/ipc/node/ipc.cp.ts +++ b/src/vs/base/parts/ipc/node/ipc.cp.ts @@ -105,7 +105,7 @@ export class Client implements IChannelClient, IDisposable { const that = this; return { - call(command: string, arg?: any, cancellationToken?: CancellationToken): Thenable { + call(command: string, arg?: any, cancellationToken?: CancellationToken): Promise { return that.requestPromise(channelName, command, arg, cancellationToken); }, listen(event: string, arg?: any) { @@ -114,7 +114,7 @@ export class Client implements IChannelClient, IDisposable { } as T; } - protected requestPromise(channelName: string, name: string, arg?: any, cancellationToken = CancellationToken.None): Thenable { + protected requestPromise(channelName: string, name: string, arg?: any, cancellationToken = CancellationToken.None): Promise { if (!this.disposeDelayer) { return Promise.reject(new Error('disposed')); } diff --git a/src/vs/base/parts/ipc/node/ipc.net.ts b/src/vs/base/parts/ipc/node/ipc.net.ts index 8014e7fb044..9a2235a92d8 100644 --- a/src/vs/base/parts/ipc/node/ipc.net.ts +++ b/src/vs/base/parts/ipc/node/ipc.net.ts @@ -249,9 +249,9 @@ export class Client extends IPCClient { } } -export function serve(port: number): Thenable; -export function serve(namedPipe: string): Thenable; -export function serve(hook: any): Thenable { +export function serve(port: number): Promise; +export function serve(namedPipe: string): Promise; +export function serve(hook: any): Promise { return new Promise((c, e) => { const server = createServer(); @@ -263,10 +263,10 @@ export function serve(hook: any): Thenable { }); } -export function connect(options: { host: string, port: number }, clientId: string): Thenable; -export function connect(port: number, clientId: string): Thenable; -export function connect(namedPipe: string, clientId: string): Thenable; -export function connect(hook: any, clientId: string): Thenable { +export function connect(options: { host: string, port: number }, clientId: string): Promise; +export function connect(port: number, clientId: string): Promise; +export function connect(namedPipe: string, clientId: string): Promise; +export function connect(hook: any, clientId: string): Promise { return new Promise((c, e) => { const socket = createConnection(hook, () => { socket.removeListener('error', e); diff --git a/src/vs/base/parts/ipc/node/ipc.ts b/src/vs/base/parts/ipc/node/ipc.ts index eb7ef91c707..61a97a3ff5c 100644 --- a/src/vs/base/parts/ipc/node/ipc.ts +++ b/src/vs/base/parts/ipc/node/ipc.ts @@ -58,7 +58,7 @@ enum State { * with at most one single return value. */ export interface IChannel { - call(command: string, arg?: any, cancellationToken?: CancellationToken): Thenable; + call(command: string, arg?: any, cancellationToken?: CancellationToken): Promise; listen(event: string, arg?: any): Event; } @@ -68,7 +68,7 @@ export interface IChannel { * if you'd like to handle remote promises or events. */ export interface IServerChannel { - call(ctx: TContext, command: string, arg?: any, cancellationToken?: CancellationToken): Thenable; + call(ctx: TContext, command: string, arg?: any, cancellationToken?: CancellationToken): Promise; listen(ctx: TContext, event: string, arg?: any): Event; } @@ -103,8 +103,8 @@ export interface IConnectionHub { * channels (each from a separate client) to pick from. */ export interface IClientRouter { - routeCall(hub: IConnectionHub, command: string, arg?: any, cancellationToken?: CancellationToken): Thenable>; - routeEvent(hub: IConnectionHub, event: string, arg?: any): Thenable>; + routeCall(hub: IConnectionHub, command: string, arg?: any, cancellationToken?: CancellationToken): Promise>; + routeEvent(hub: IConnectionHub, event: string, arg?: any): Promise>; } /** @@ -290,7 +290,7 @@ export class ChannelServer implements IChannelServer; + let promise: Promise; try { promise = channel.call(this.ctx, request.name, request.arg, cancellationTokenSource.token); @@ -380,7 +380,7 @@ export class ChannelClient implements IChannelClient, IDisposable { } as T; } - private requestPromise(channelName: string, name: string, arg?: any, cancellationToken = CancellationToken.None): Thenable { + private requestPromise(channelName: string, name: string, arg?: any, cancellationToken = CancellationToken.None): Promise { const id = this.lastRequestId++; const type = RequestType.Promise; const request: IRawRequest = { id, type, channelName, name, arg }; @@ -539,7 +539,7 @@ export class ChannelClient implements IChannelClient, IDisposable { } } - private whenInitialized(): Thenable { + private whenInitialized(): Promise { if (this.state === State.Idle) { return Promise.resolve(); } else { @@ -681,9 +681,9 @@ export class IPCClient implements IChannelClient, IChannelSer } } -export function getDelayedChannel(promise: Thenable): T { +export function getDelayedChannel(promise: Promise): T { return { - call(command: string, arg?: any, cancellationToken?: CancellationToken): Thenable { + call(command: string, arg?: any, cancellationToken?: CancellationToken): Promise { return promise.then(c => c.call(command, arg, cancellationToken)); }, @@ -699,7 +699,7 @@ export function getNextTickChannel(channel: T): T { let didTick = false; return { - call(command: string, arg?: any, cancellationToken?: CancellationToken): Thenable { + call(command: string, arg?: any, cancellationToken?: CancellationToken): Promise { if (didTick) { return channel.call(command, arg, cancellationToken); } @@ -726,13 +726,13 @@ export function getNextTickChannel(channel: T): T { export class StaticRouter implements IClientRouter { - constructor(private fn: (ctx: TContext) => boolean | Thenable) { } + constructor(private fn: (ctx: TContext) => boolean | Promise) { } - routeCall(hub: IConnectionHub): Thenable> { + routeCall(hub: IConnectionHub): Promise> { return this.route(hub); } - routeEvent(hub: IConnectionHub): Thenable> { + routeEvent(hub: IConnectionHub): Promise> { return this.route(hub); } diff --git a/src/vs/base/parts/ipc/test/node/ipc.test.ts b/src/vs/base/parts/ipc/test/node/ipc.test.ts index 9aa937b63da..625f1a65922 100644 --- a/src/vs/base/parts/ipc/test/node/ipc.test.ts +++ b/src/vs/base/parts/ipc/test/node/ipc.test.ts @@ -95,11 +95,11 @@ class TestIPCServer extends IPCServer { const TestChannelId = 'testchannel'; interface ITestService { - marco(): Thenable; - error(message: string): Thenable; - neverComplete(): Thenable; - neverCompleteCT(cancellationToken: CancellationToken): Thenable; - buffersLength(buffers: Buffer[]): Thenable; + marco(): Promise; + error(message: string): Promise; + neverComplete(): Promise; + neverCompleteCT(cancellationToken: CancellationToken): Promise; + buffersLength(buffers: Buffer[]): Promise; pong: Event; } @@ -109,19 +109,19 @@ class TestService implements ITestService { private _pong = new Emitter(); readonly pong = this._pong.event; - marco(): Thenable { + marco(): Promise { return Promise.resolve('polo'); } - error(message: string): Thenable { + error(message: string): Promise { return Promise.reject(new Error(message)); } - neverComplete(): Thenable { + neverComplete(): Promise { return new Promise(_ => { }); } - neverCompleteCT(cancellationToken: CancellationToken): Thenable { + neverCompleteCT(cancellationToken: CancellationToken): Promise { if (cancellationToken.isCancellationRequested) { return Promise.reject(canceled()); } @@ -129,7 +129,7 @@ class TestService implements ITestService { return new Promise((_, e) => cancellationToken.onCancellationRequested(() => e(canceled()))); } - buffersLength(buffers: Buffer[]): Thenable { + buffersLength(buffers: Buffer[]): Promise { return Promise.resolve(buffers.reduce((r, b) => r + b.length, 0)); } @@ -142,7 +142,7 @@ class TestChannel implements IServerChannel { constructor(private service: ITestService) { } - call(_, command: string, arg: any, cancellationToken: CancellationToken): Thenable { + call(_, command: string, arg: any, cancellationToken: CancellationToken): Promise { switch (command) { case 'marco': return this.service.marco(); case 'error': return this.service.error(arg); @@ -169,23 +169,23 @@ class TestChannelClient implements ITestService { constructor(private channel: IChannel) { } - marco(): Thenable { + marco(): Promise { return this.channel.call('marco'); } - error(message: string): Thenable { + error(message: string): Promise { return this.channel.call('error', message); } - neverComplete(): Thenable { + neverComplete(): Promise { return this.channel.call('neverComplete'); } - neverCompleteCT(cancellationToken: CancellationToken): Thenable { + neverCompleteCT(cancellationToken: CancellationToken): Promise { return this.channel.call('neverCompleteCT', undefined, cancellationToken); } - buffersLength(buffers: Buffer[]): Thenable { + buffersLength(buffers: Buffer[]): Promise { return this.channel.call('buffersLength', buffers); } } diff --git a/src/vs/base/parts/ipc/test/node/testService.ts b/src/vs/base/parts/ipc/test/node/testService.ts index 241402397d4..6c35db5e4ea 100644 --- a/src/vs/base/parts/ipc/test/node/testService.ts +++ b/src/vs/base/parts/ipc/test/node/testService.ts @@ -13,9 +13,9 @@ export interface IMarcoPoloEvent { export interface ITestService { onMarco: Event; - marco(): Thenable; - pong(ping: string): Thenable<{ incoming: string, outgoing: string }>; - cancelMe(): Thenable; + marco(): Promise; + pong(ping: string): Promise<{ incoming: string, outgoing: string }>; + cancelMe(): Promise; } export class TestService implements ITestService { @@ -23,16 +23,16 @@ export class TestService implements ITestService { private _onMarco = new Emitter(); onMarco: Event = this._onMarco.event; - marco(): Thenable { + marco(): Promise { this._onMarco.fire({ answer: 'polo' }); return Promise.resolve('polo'); } - pong(ping: string): Thenable<{ incoming: string, outgoing: string }> { + pong(ping: string): Promise<{ incoming: string, outgoing: string }> { return Promise.resolve({ incoming: ping, outgoing: 'pong' }); } - cancelMe(): Thenable { + cancelMe(): Promise { return Promise.resolve(timeout(100)).then(() => true); } } @@ -49,7 +49,7 @@ export class TestChannel implements IServerChannel { throw new Error('Event not found'); } - call(_, command: string, ...args: any[]): Thenable { + call(_, command: string, ...args: any[]): Promise { switch (command) { case 'pong': return this.testService.pong(args[0]); case 'cancelMe': return this.testService.cancelMe(); @@ -65,15 +65,15 @@ export class TestServiceClient implements ITestService { constructor(private channel: IChannel) { } - marco(): Thenable { + marco(): Promise { return this.channel.call('marco'); } - pong(ping: string): Thenable<{ incoming: string, outgoing: string }> { + pong(ping: string): Promise<{ incoming: string, outgoing: string }> { return this.channel.call('pong', ping); } - cancelMe(): Thenable { + cancelMe(): Promise { return this.channel.call('cancelMe'); } } \ No newline at end of file diff --git a/src/vs/base/parts/quickopen/browser/quickOpenViewer.ts b/src/vs/base/parts/quickopen/browser/quickOpenViewer.ts index fd8df5f680f..042d649f924 100644 --- a/src/vs/base/parts/quickopen/browser/quickOpenViewer.ts +++ b/src/vs/base/parts/quickopen/browser/quickOpenViewer.ts @@ -36,12 +36,12 @@ export class DataSource implements IDataSource { return model && model === element && model.entries.length > 0; } - getChildren(tree: ITree, element: any): Thenable { + getChildren(tree: ITree, element: any): Promise { const model = this.modelProvider.getModel(); return Promise.resolve(model === element ? model.entries : []); } - getParent(tree: ITree, element: any): Thenable { + getParent(tree: ITree, element: any): Promise { return Promise.resolve(null); } } diff --git a/src/vs/base/parts/tree/browser/tree.ts b/src/vs/base/parts/tree/browser/tree.ts index 311af266ab5..9c10466ddf7 100644 --- a/src/vs/base/parts/tree/browser/tree.ts +++ b/src/vs/base/parts/tree/browser/tree.ts @@ -49,7 +49,7 @@ export interface ITree { /** * Sets the input of the tree. */ - setInput(element: any): Thenable; + setInput(element: any): Promise; /** * Returns the tree's input. @@ -75,7 +75,7 @@ export interface ITree { * Refreshes an element. * Provide no arguments and it will refresh the input element. */ - refresh(element?: any, recursive?: boolean): Thenable; + refresh(element?: any, recursive?: boolean): Promise; /** * Updates an element's width. @@ -86,36 +86,36 @@ export interface ITree { * Expands an element. * The returned promise returns a boolean for whether the element was expanded or not. */ - expand(element: any): Thenable; + expand(element: any): Promise; /** * Expands several elements. * The returned promise returns a boolean array for whether the elements were expanded or not. */ - expandAll(elements?: any[]): Thenable; + expandAll(elements?: any[]): Promise; /** * Collapses an element. * The returned promise returns a boolean for whether the element was collapsed or not. */ - collapse(element: any, recursive?: boolean): Thenable; + collapse(element: any, recursive?: boolean): Promise; /** * Collapses several elements. * Provide no arguments and it will recursively collapse all elements in the tree * The returned promise returns a boolean for whether the elements were collapsed or not. */ - collapseAll(elements?: any[], recursive?: boolean): Thenable; + collapseAll(elements?: any[], recursive?: boolean): Promise; /** * Toggles an element's expansion state. */ - toggleExpansion(element: any, recursive?: boolean): Thenable; + toggleExpansion(element: any, recursive?: boolean): Promise; /** * Toggles several element's expansion state. */ - toggleExpansionAll(elements: any[]): Thenable; + toggleExpansionAll(elements: any[]): Promise; /** * Returns whether an element is expanded or not. @@ -131,7 +131,7 @@ export interface ITree { * Reveals an element in the tree. The relativeTop is a value between 0 and 1. The closer to 0 the more the * element will scroll up to the top. */ - reveal(element: any, relativeTop?: number): Thenable; + reveal(element: any, relativeTop?: number): Promise; /** * Returns the relative top position of any given element, if visible. @@ -377,12 +377,12 @@ export interface IDataSource { /** * Returns the element's children as an array in a promise. */ - getChildren(tree: ITree, element: any): Thenable; + getChildren(tree: ITree, element: any): Promise; /** * Returns the element's parent in a promise. */ - getParent(tree: ITree, element: any): Thenable; + getParent(tree: ITree, element: any): Promise; /** * Returns whether an element should be expanded when first added to the tree. diff --git a/src/vs/base/parts/tree/browser/treeDefaults.ts b/src/vs/base/parts/tree/browser/treeDefaults.ts index 13fce9da63a..5980bea0d08 100644 --- a/src/vs/base/parts/tree/browser/treeDefaults.ts +++ b/src/vs/base/parts/tree/browser/treeDefaults.ts @@ -555,7 +555,7 @@ export class CollapseAllAction extends Action { super('vs.tree.collapse', nls.localize('collapse', "Collapse"), 'monaco-tree-action collapse-all', enabled); } - public run(context?: any): Thenable { + public run(context?: any): Promise { if (this.viewer.getHighlight()) { return Promise.resolve(); // Global action disabled if user is in edit mode from another action } diff --git a/src/vs/base/parts/tree/browser/treeImpl.ts b/src/vs/base/parts/tree/browser/treeImpl.ts index 24d1868227c..1bd18fb65ff 100644 --- a/src/vs/base/parts/tree/browser/treeImpl.ts +++ b/src/vs/base/parts/tree/browser/treeImpl.ts @@ -149,7 +149,7 @@ export class Tree implements _.ITree { this.view.onHidden(); } - public setInput(element: any): Thenable { + public setInput(element: any): Promise { return this.model.setInput(element); } @@ -157,7 +157,7 @@ export class Tree implements _.ITree { return this.model.getInput(); } - public refresh(element: any = null, recursive = true): Thenable { + public refresh(element: any = null, recursive = true): Promise { return this.model.refresh(element, recursive); } @@ -166,27 +166,27 @@ export class Tree implements _.ITree { return this.view.updateWidth(item); } - public expand(element: any): Thenable { + public expand(element: any): Promise { return this.model.expand(element); } - public expandAll(elements: any[]): Thenable { + public expandAll(elements: any[]): Promise { return this.model.expandAll(elements); } - public collapse(element: any, recursive: boolean = false): Thenable { + public collapse(element: any, recursive: boolean = false): Promise { return this.model.collapse(element, recursive); } - public collapseAll(elements: any[] | null = null, recursive: boolean = false): Thenable { + public collapseAll(elements: any[] | null = null, recursive: boolean = false): Promise { return this.model.collapseAll(elements, recursive); } - public toggleExpansion(element: any, recursive: boolean = false): Thenable { + public toggleExpansion(element: any, recursive: boolean = false): Promise { return this.model.toggleExpansion(element, recursive); } - public toggleExpansionAll(elements: any[]): Thenable { + public toggleExpansionAll(elements: any[]): Promise { return this.model.toggleExpansionAll(elements); } @@ -198,7 +198,7 @@ export class Tree implements _.ITree { return this.model.getExpandedElements(); } - public reveal(element: any, relativeTop: number | null = null): Thenable { + public reveal(element: any, relativeTop: number | null = null): Promise { return this.model.reveal(element, relativeTop); } diff --git a/src/vs/base/parts/tree/browser/treeModel.ts b/src/vs/base/parts/tree/browser/treeModel.ts index 0e87d9def40..9be92db0bc6 100644 --- a/src/vs/base/parts/tree/browser/treeModel.ts +++ b/src/vs/base/parts/tree/browser/treeModel.ts @@ -78,7 +78,7 @@ export class Lock { return !!this.locks[item.id]; } - public run(item: Item, fn: () => Thenable): Thenable { + public run(item: Item, fn: () => Promise): Promise { var lock = this.getLock(item); if (lock) { @@ -89,7 +89,7 @@ export class Lock { }); } - var result: Thenable; + var result: Promise; return new Promise((c, e) => { @@ -350,7 +350,7 @@ export class Item { this._onDidReveal.fire(eventData); } - public expand(): Thenable { + public expand(): Promise { if (this.isExpanded() || !this.doesHaveChildren || this.lock.isLocked(this)) { return Promise.resolve(false); } @@ -361,7 +361,7 @@ export class Item { } var eventData: IItemExpandEvent = { item: this }; - var result: Thenable; + var result: Promise; this._onExpand.fire(eventData); if (this.needsChildrenRefresh) { @@ -391,7 +391,7 @@ export class Item { }); } - public collapse(recursive: boolean = false): Thenable { + public collapse(recursive: boolean = false): Promise { if (recursive) { var collapseChildrenPromise = Promise.resolve(null); this.forEachChild((child) => { @@ -447,7 +447,7 @@ export class Item { return this.height; } - private refreshChildren(recursive: boolean, safe: boolean = false, force: boolean = false): Thenable { + private refreshChildren(recursive: boolean, safe: boolean = false, force: boolean = false): Promise { if (!force && !this.isExpanded()) { const setNeedsChildrenRefresh = (item: Item) => { item.needsChildrenRefresh = true; @@ -465,7 +465,7 @@ export class Item { var eventData: IItemChildrenRefreshEvent = { item: this, isNested: safe }; this._onRefreshChildren.fire(eventData); - var childrenPromise: Thenable; + var childrenPromise: Promise; if (this.doesHaveChildren) { childrenPromise = this.context.dataSource.getChildren(this.context.tree, this.element); } else { @@ -532,7 +532,7 @@ export class Item { return safe ? doRefresh() : this.lock.run(this, doRefresh); } - private doRefresh(recursive: boolean, safe: boolean = false): Thenable { + private doRefresh(recursive: boolean, safe: boolean = false): Promise { this.doesHaveChildren = this.context.dataSource.hasChildren(this.context.tree, this.element); this.height = this._getHeight(); this.updateVisibility(); @@ -546,7 +546,7 @@ export class Item { this.setVisible(this._isVisible()); } - public refresh(recursive: boolean): Thenable { + public refresh(recursive: boolean): Promise { return this.doRefresh(recursive); } @@ -929,7 +929,7 @@ export class TreeModel { this.traitsToItems = {}; } - public setInput(element: any): Thenable { + public setInput(element: any): Promise { var eventData: IInputEvent = { item: this.input }; this._onSetInput.fire(eventData); @@ -976,7 +976,7 @@ export class TreeModel { return this.input ? this.input.getElement() : null; } - public refresh(element: any = null, recursive: boolean = true): Thenable { + public refresh(element: any = null, recursive: boolean = true): Promise { var item = this.getItem(element); if (!item) { @@ -990,7 +990,7 @@ export class TreeModel { }); } - public expand(element: any): Thenable { + public expand(element: any): Promise { var item = this.getItem(element); if (!item) { @@ -1000,7 +1000,7 @@ export class TreeModel { return item.expand(); } - public expandAll(elements?: any[]): Thenable { + public expandAll(elements?: any[]): Promise { if (!elements) { elements = []; @@ -1015,7 +1015,7 @@ export class TreeModel { return this._expandAll(elements); } - private _expandAll(elements: any[]): Thenable { + private _expandAll(elements: any[]): Promise { if (elements.length === 0) { return Promise.resolve(null); } @@ -1041,7 +1041,7 @@ export class TreeModel { .then(() => this._expandAll(elementsToDelay)); } - private __expandAll(elements: any[]): Thenable { + private __expandAll(elements: any[]): Promise { var promises = []; for (var i = 0, len = elements.length; i < len; i++) { promises.push(this.expand(elements[i])); @@ -1049,7 +1049,7 @@ export class TreeModel { return Promise.all(promises); } - public collapse(element: any, recursive: boolean = false): Thenable { + public collapse(element: any, recursive: boolean = false): Promise { var item = this.getItem(element); if (!item) { @@ -1059,7 +1059,7 @@ export class TreeModel { return item.collapse(recursive); } - public collapseAll(elements: any[] | null = null, recursive: boolean = false): Thenable { + public collapseAll(elements: any[] | null = null, recursive: boolean = false): Promise { if (!elements) { elements = [this.input]; recursive = true; @@ -1071,11 +1071,11 @@ export class TreeModel { return Promise.all(promises); } - public toggleExpansion(element: any, recursive: boolean = false): Thenable { + public toggleExpansion(element: any, recursive: boolean = false): Promise { return this.isExpanded(element) ? this.collapse(element, recursive) : this.expand(element); } - public toggleExpansionAll(elements: any[]): Thenable { + public toggleExpansionAll(elements: any[]): Promise { var promises = []; for (var i = 0, len = elements.length; i < len; i++) { promises.push(this.toggleExpansion(elements[i])); @@ -1107,7 +1107,7 @@ export class TreeModel { return result; } - public reveal(element: any, relativeTop: number | null = null): Thenable { + public reveal(element: any, relativeTop: number | null = null): Promise { return this.resolveUnknownParentChain(element).then((chain: any[]) => { var result = Promise.resolve(null); @@ -1125,7 +1125,7 @@ export class TreeModel { }); } - private resolveUnknownParentChain(element: any): Thenable { + private resolveUnknownParentChain(element: any): Promise { return this.context.dataSource.getParent(this.context.tree, element).then((parent) => { if (!parent) { return Promise.resolve([]); diff --git a/src/vs/base/parts/tree/test/browser/treeModel.test.ts b/src/vs/base/parts/tree/test/browser/treeModel.test.ts index 76ff355c4c5..03c321bb0de 100644 --- a/src/vs/base/parts/tree/test/browser/treeModel.test.ts +++ b/src/vs/base/parts/tree/test/browser/treeModel.test.ts @@ -169,11 +169,11 @@ class TestDataSource implements _.IDataSource { return !!element.children; } - public getChildren(tree, element): Thenable { + public getChildren(tree, element): Promise { return Promise.resolve(element.children); } - public getParent(tree, element): Thenable { + public getParent(tree, element): Promise { throw new Error('Not implemented'); } } @@ -683,7 +683,7 @@ suite('TreeModel - Expansion', () => { if (e === 'b') { return Promise.resolve(['b1']); } return Promise.resolve([]); }, - getParent: (_, e): Thenable => { throw new Error('not implemented'); }, + getParent: (_, e): Promise => { throw new Error('not implemented'); }, shouldAutoexpand: (_, e) => e === 'b' } }); @@ -1079,7 +1079,7 @@ suite('TreeModel - Traits', () => { class DynamicModel implements _.IDataSource { private data: any; - public promiseFactory: { (): Thenable; } | null; + public promiseFactory: { (): Promise; } | null; private _onGetChildren = new Emitter(); readonly onGetChildren: Event = this._onGetChildren.event; @@ -1124,7 +1124,7 @@ class DynamicModel implements _.IDataSource { return !!this.data[element]; } - public getChildren(tree, element): Thenable { + public getChildren(tree, element): Promise { this._onGetChildren.fire(element); var result = this.promiseFactory ? this.promiseFactory() : Promise.resolve(null); return result.then(() => { @@ -1133,7 +1133,7 @@ class DynamicModel implements _.IDataSource { }); } - public getParent(tree, element): Thenable { + public getParent(tree, element): Promise { throw new Error('Not implemented'); } } @@ -1529,7 +1529,7 @@ suite('TreeModel - Dynamic data model', () => { // delay expansions and refreshes dataModel.promiseFactory = () => { return timeout(0); }; - var promises: Thenable[] = []; + var promises: Promise[] = []; promises.push(model.expand('father')); dataModel.removeChild('root', 'father'); @@ -1573,7 +1573,7 @@ suite('TreeModel - bugs', () => { if (e === 'bart') { return getBartChildren(); } return Promise.resolve([]); }, - getParent: (_, e): Thenable => { throw new Error('not implemented'); }, + getParent: (_, e): Promise => { throw new Error('not implemented'); }, } }); diff --git a/src/vs/base/test/browser/ui/tree/asyncDataTree.test.ts b/src/vs/base/test/browser/ui/tree/asyncDataTree.test.ts index 96dfbbd5b44..fb37d930de1 100644 --- a/src/vs/base/test/browser/ui/tree/asyncDataTree.test.ts +++ b/src/vs/base/test/browser/ui/tree/asyncDataTree.test.ts @@ -55,7 +55,7 @@ suite('AsyncDataTree', function () { hasChildren(element: Element | null): boolean { return !element || (element.children && element.children.length > 0); } - getChildren(element: Element | null): Thenable { + getChildren(element: Element | null): Promise { if (!element) { return Promise.resolve(root.children); } diff --git a/src/vs/base/test/common/async.test.ts b/src/vs/base/test/common/async.test.ts index a18872a82b7..76257d43640 100644 --- a/src/vs/base/test/common/async.test.ts +++ b/src/vs/base/test/common/async.test.ts @@ -140,7 +140,7 @@ suite('Async', () => { let throttler = new async.Throttler(); - let promises: Thenable[] = []; + let promises: Promise[] = []; promises.push(throttler.queue(factoryFactory(1)).then((n) => { assert.equal(n, 1); })); promises.push(throttler.queue(factoryFactory(2)).then((n) => { assert.equal(n, 3); })); @@ -156,7 +156,7 @@ suite('Async', () => { }; let delayer = new async.Delayer(0); - let promises: Thenable[] = []; + let promises: Promise[] = []; assert(!delayer.isTriggered()); @@ -204,7 +204,7 @@ suite('Async', () => { }; let delayer = new async.Delayer(0); - let promises: Thenable[] = []; + let promises: Promise[] = []; assert(!delayer.isTriggered()); @@ -231,7 +231,7 @@ suite('Async', () => { }; let delayer = new async.Delayer(0); - let promises: Thenable[] = []; + let promises: Promise[] = []; assert(!delayer.isTriggered()); @@ -281,7 +281,7 @@ suite('Async', () => { }; let delayer = new async.Delayer(0); - let promises: Thenable[] = []; + let promises: Promise[] = []; assert(!delayer.isTriggered()); @@ -326,7 +326,7 @@ suite('Async', () => { let limiter = new async.Limiter(1); - let promises: Thenable[] = []; + let promises: Promise[] = []; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].forEach(n => promises.push(limiter.queue(factoryFactory(n)))); return Promise.all(promises).then((res) => { @@ -347,7 +347,7 @@ suite('Async', () => { let factoryFactory = (n: number) => () => async.timeout(0).then(() => n); let limiter = new async.Limiter(1); - let promises: Thenable[] = []; + let promises: Promise[] = []; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].forEach(n => promises.push(limiter.queue(factoryFactory(n)))); return Promise.all(promises).then((res) => { @@ -374,7 +374,7 @@ suite('Async', () => { let limiter = new async.Limiter(5); - let promises: Thenable[] = []; + let promises: Promise[] = []; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].forEach(n => promises.push(limiter.queue(factoryFactory(n)))); return Promise.all(promises).then((res) => { diff --git a/src/vs/base/test/common/event.test.ts b/src/vs/base/test/common/event.test.ts index 69522e2b2a2..186f3112ff7 100644 --- a/src/vs/base/test/common/event.test.ts +++ b/src/vs/base/test/common/event.test.ts @@ -254,7 +254,7 @@ suite('AsyncEmitter', function () { emitter.fireAsync(thenables => ({ foo: true, bar: 1, - waitUntil(t: Thenable) { thenables.push(t); } + waitUntil(t: Promise) { thenables.push(t); } })); emitter.dispose(); }); diff --git a/src/vs/base/test/common/paging.test.ts b/src/vs/base/test/common/paging.test.ts index fe332c0bd31..3ce69663384 100644 --- a/src/vs/base/test/common/paging.test.ts +++ b/src/vs/base/test/common/paging.test.ts @@ -8,7 +8,7 @@ import { IPager, PagedModel } from 'vs/base/common/paging'; import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation'; import { isPromiseCanceledError, canceled } from 'vs/base/common/errors'; -function getPage(pageIndex: number, cancellationToken: CancellationToken): Thenable { +function getPage(pageIndex: number, cancellationToken: CancellationToken): Promise { if (cancellationToken.isCancellationRequested) { return Promise.reject(canceled()); } @@ -21,9 +21,9 @@ class TestPager implements IPager { readonly firstPage = [0, 1, 2, 3, 4]; readonly pageSize = 5; readonly total = 100; - readonly getPage: (pageIndex: number, cancellationToken: CancellationToken) => Thenable; + readonly getPage: (pageIndex: number, cancellationToken: CancellationToken) => Promise; - constructor(getPageFn?: (pageIndex: number, cancellationToken: CancellationToken) => Thenable) { + constructor(getPageFn?: (pageIndex: number, cancellationToken: CancellationToken) => Promise) { this.getPage = getPageFn || getPage; } } diff --git a/src/vs/base/test/common/utils.ts b/src/vs/base/test/common/utils.ts index dae0e054b00..63e4393926b 100644 --- a/src/vs/base/test/common/utils.ts +++ b/src/vs/base/test/common/utils.ts @@ -7,7 +7,7 @@ import * as paths from 'vs/base/common/paths'; import { URI } from 'vs/base/common/uri'; import { canceled } from 'vs/base/common/errors'; -export type ValueCallback = (value: T | Thenable) => void; +export type ValueCallback = (value: T | Promise) => void; export class DeferredPromise { diff --git a/src/vs/base/test/node/utils.ts b/src/vs/base/test/node/utils.ts index 2ee7de39d71..9bc3a59a16d 100644 --- a/src/vs/base/test/node/utils.ts +++ b/src/vs/base/test/node/utils.ts @@ -10,10 +10,10 @@ import { mkdirp, del } from 'vs/base/node/pfs'; export interface ITestFileResult { testFile: string; - cleanUp: () => Thenable; + cleanUp: () => Promise; } -export function testFile(folder: string, file: string): Thenable { +export function testFile(folder: string, file: string): Promise { const id = generateUuid(); const parentDir = join(tmpdir(), 'vsctests', id); const newDir = join(parentDir, 'config', id); diff --git a/src/vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts b/src/vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts index 3f14814bdee..931eeab83fd 100644 --- a/src/vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts +++ b/src/vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts @@ -47,7 +47,7 @@ export class NodeCachedDataCleaner { readdir(nodeCachedDataRootDir).then(entries => { const now = Date.now(); - const deletes: Thenable[] = []; + const deletes: Promise[] = []; entries.forEach(entry => { // name check diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 457818a9755..fb0305ca329 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -149,8 +149,8 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I }); } -function setupIPC(hook: string): Thenable { - function setup(retry: boolean): Thenable { +function setupIPC(hook: string): Promise { + function setup(retry: boolean): Promise { return serve(hook).then(null, err => { if (!retry || platform.isWindows || err.code !== 'EADDRINUSE') { return Promise.reject(err); diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 363b6cb1220..b25ad242115 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -84,7 +84,7 @@ export class CodeApplication extends Disposable { private electronIpcServer: ElectronIPCServer; private sharedProcess: SharedProcess; - private sharedProcessClient: Thenable; + private sharedProcessClient: Promise; constructor( private mainIpcServer: Server, @@ -172,7 +172,7 @@ export class CodeApplication extends Disposable { class ActiveConnection { private _authority: string; - private _client: Thenable>; + private _client: Promise>; private _disposeRunner: RunOnceScheduler; constructor(authority: string, host: string, port: number) { @@ -189,7 +189,7 @@ export class CodeApplication extends Disposable { }); } - public getClient(): Thenable> { + public getClient(): Promise> { this._disposeRunner.schedule(); return this._client; } @@ -381,7 +381,7 @@ export class CodeApplication extends Disposable { } } - startup(): Thenable { + startup(): Promise { this.logService.debug('Starting VS Code'); this.logService.debug(`from: ${this.environmentService.appRoot}`); this.logService.debug('args:', this.environmentService.args); @@ -456,7 +456,7 @@ export class CodeApplication extends Disposable { } } - private resolveMachineId(): string | Thenable { + private resolveMachineId(): string | Promise { const machineId = this.stateService.getItem(CodeApplication.MACHINE_ID_KEY); if (machineId) { return machineId; @@ -504,7 +504,7 @@ export class CodeApplication extends Disposable { }); } - private initServices(machineId: string): Thenable { + private initServices(machineId: string): Promise { const services = new ServiceCollection(); if (process.platform === 'win32') { @@ -544,7 +544,7 @@ export class CodeApplication extends Disposable { return appInstantiationService.invokeFunction(accessor => this.initStorageService(accessor)).then(() => appInstantiationService); } - private initStorageService(accessor: ServicesAccessor): Thenable { + private initStorageService(accessor: ServicesAccessor): Promise { const storageMainService = accessor.get(IStorageMainService) as StorageMainService; // Ensure to close storage on shutdown @@ -644,7 +644,7 @@ export class CodeApplication extends Disposable { const environmentService = accessor.get(IEnvironmentService); urlService.registerHandler({ - handleURL(uri: URI): Thenable { + handleURL(uri: URI): Promise { if (windowsMainService.getWindowCount() === 0) { const cli = { ...environmentService.args, goto: true }; const [window] = windowsMainService.open({ context: OpenContext.API, cli, forceEmpty: true }); diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts index 62183f13f3e..822428ee28d 100644 --- a/src/vs/code/electron-main/main.ts +++ b/src/vs/code/electron-main/main.ts @@ -88,7 +88,7 @@ async function cleanupOlderLogs(environmentService: EnvironmentService): Promise await Promise.all(toDelete.map(name => rimraf(path.join(logsRoot, name)))); } -function createPaths(environmentService: IEnvironmentService): Thenable { +function createPaths(environmentService: IEnvironmentService): Promise { const paths = [ environmentService.extensionsPath, environmentService.nodeCachedDataDir, @@ -104,14 +104,14 @@ class ExpectedError extends Error { public readonly isExpected = true; } -function setupIPC(accessor: ServicesAccessor): Thenable { +function setupIPC(accessor: ServicesAccessor): Promise { const logService = accessor.get(ILogService); const environmentService = accessor.get(IEnvironmentService); const requestService = accessor.get(IRequestService); const diagnosticsService = accessor.get(IDiagnosticsService); - function allowSetForegroundWindow(service: LaunchChannelClient): Thenable { - let promise: Thenable = Promise.resolve(); + function allowSetForegroundWindow(service: LaunchChannelClient): Promise { + let promise: Promise = Promise.resolve(); if (platform.isWindows) { promise = service.getMainProcessId() .then(processId => { @@ -129,7 +129,7 @@ function setupIPC(accessor: ServicesAccessor): Thenable { return promise; } - function setup(retry: boolean): Thenable { + function setup(retry: boolean): Promise { return serve(environmentService.mainIPCHandle).then(server => { // Print --status usage info diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index af6af4d5dd0..e0e46e1b08f 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -74,7 +74,7 @@ export class CodeWindow extends Disposable implements ICodeWindow { private currentConfig: IWindowConfiguration; private pendingLoadConfig: IWindowConfiguration; - private marketplaceHeadersPromise: Thenable; + private marketplaceHeadersPromise: Promise; private touchBarGroups: Electron.TouchBarSegmentedControl[]; @@ -277,7 +277,7 @@ export class CodeWindow extends Disposable implements ICodeWindow { } } - ready(): Thenable { + ready(): Promise { return new Promise(resolve => { if (this.isReady) { return resolve(this); diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index e7ea37b2d9f..2b769bf1c65 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -1488,15 +1488,15 @@ export class WindowsManager implements IWindowsMainService { }); } - saveAndEnterWorkspace(win: ICodeWindow, path: string): Thenable { + saveAndEnterWorkspace(win: ICodeWindow, path: string): Promise { return this.workspacesManager.saveAndEnterWorkspace(win, path).then(result => this.doEnterWorkspace(win, result)); } - enterWorkspace(win: ICodeWindow, path: string): Thenable { + enterWorkspace(win: ICodeWindow, path: string): Promise { return this.workspacesManager.enterWorkspace(win, path).then(result => this.doEnterWorkspace(win, result)); } - createAndEnterWorkspace(win: ICodeWindow, folders?: IWorkspaceFolderCreationData[], path?: string): Thenable { + createAndEnterWorkspace(win: ICodeWindow, folders?: IWorkspaceFolderCreationData[], path?: string): Promise { return this.workspacesManager.createAndEnterWorkspace(win, folders, path).then(result => this.doEnterWorkspace(win, result)); } @@ -1585,7 +1585,7 @@ export class WindowsManager implements IWindowsMainService { return this.open({ context, cli: this.environmentService.args, forceNewTabbedWindow: true, forceEmpty: true }); } - waitForWindowCloseOrLoad(windowId: number): Thenable { + waitForWindowCloseOrLoad(windowId: number): Promise { return new Promise(resolve => { function handler(id: number) { if (id === windowId) { @@ -1773,15 +1773,15 @@ export class WindowsManager implements IWindowsMainService { this.dialogs.pickAndOpen(internalOptions); } - showMessageBox(options: Electron.MessageBoxOptions, win?: ICodeWindow): Thenable { + showMessageBox(options: Electron.MessageBoxOptions, win?: ICodeWindow): Promise { return this.dialogs.showMessageBox(options, win); } - showSaveDialog(options: Electron.SaveDialogOptions, win?: ICodeWindow): Thenable { + showSaveDialog(options: Electron.SaveDialogOptions, win?: ICodeWindow): Promise { return this.dialogs.showSaveDialog(options, win); } - showOpenDialog(options: Electron.OpenDialogOptions, win?: ICodeWindow): Thenable { + showOpenDialog(options: Electron.OpenDialogOptions, win?: ICodeWindow): Promise { return this.dialogs.showOpenDialog(options, win); } @@ -1852,7 +1852,7 @@ class Dialogs { }); } - private getFileOrFolderUris(options: IInternalNativeOpenDialogOptions): Thenable { + private getFileOrFolderUris(options: IInternalNativeOpenDialogOptions): Promise { // Ensure dialog options if (!options.dialogOptions) { @@ -1911,7 +1911,7 @@ class Dialogs { return windowDialogQueue; } - showMessageBox(options: Electron.MessageBoxOptions, window?: ICodeWindow): Thenable { + showMessageBox(options: Electron.MessageBoxOptions, window?: ICodeWindow): Promise { return this.getDialogQueue(window).queue(() => { return new Promise(resolve => { dialog.showMessageBox(window ? window.win : void 0, options, (response: number, checkboxChecked: boolean) => { @@ -1921,7 +1921,7 @@ class Dialogs { }); } - showSaveDialog(options: Electron.SaveDialogOptions, window?: ICodeWindow): Thenable { + showSaveDialog(options: Electron.SaveDialogOptions, window?: ICodeWindow): Promise { function normalizePath(path: string): string { if (path && isMacintosh) { @@ -1940,7 +1940,7 @@ class Dialogs { }); } - showOpenDialog(options: Electron.OpenDialogOptions, window?: ICodeWindow): Thenable { + showOpenDialog(options: Electron.OpenDialogOptions, window?: ICodeWindow): Promise { function normalizePaths(paths: string[]): string[] { if (paths && paths.length > 0 && isMacintosh) { @@ -1984,7 +1984,7 @@ class WorkspacesManager { ) { } - saveAndEnterWorkspace(window: ICodeWindow, path: string): Thenable { + saveAndEnterWorkspace(window: ICodeWindow, path: string): Promise { if (!window || !window.win || !window.isReady || !window.openedWorkspace || !path || !this.isValidTargetWorkspacePath(window, path)) { return Promise.resolve(null); // return early if the window is not ready or disposed or does not have a workspace } @@ -1992,7 +1992,7 @@ class WorkspacesManager { return this.doSaveAndOpenWorkspace(window, window.openedWorkspace, path); } - enterWorkspace(window: ICodeWindow, path: string): Thenable { + enterWorkspace(window: ICodeWindow, path: string): Promise { if (!window || !window.win || !window.isReady) { return Promise.resolve(null); // return early if the window is not ready or disposed } @@ -2009,7 +2009,7 @@ class WorkspacesManager { } - createAndEnterWorkspace(window: ICodeWindow, folders?: IWorkspaceFolderCreationData[], path?: string): Thenable { + createAndEnterWorkspace(window: ICodeWindow, folders?: IWorkspaceFolderCreationData[], path?: string): Promise { if (!window || !window.win || !window.isReady) { return Promise.resolve(null); // return early if the window is not ready or disposed } @@ -2026,7 +2026,7 @@ class WorkspacesManager { } - private isValidTargetWorkspacePath(window: ICodeWindow, path?: string): Thenable { + private isValidTargetWorkspacePath(window: ICodeWindow, path?: string): Promise { if (!path) { return Promise.resolve(true); } @@ -2052,8 +2052,8 @@ class WorkspacesManager { return Promise.resolve(true); // OK } - private doSaveAndOpenWorkspace(window: ICodeWindow, workspace: IWorkspaceIdentifier, path?: string): Thenable { - let savePromise: Thenable; + private doSaveAndOpenWorkspace(window: ICodeWindow, workspace: IWorkspaceIdentifier, path?: string): Promise { + let savePromise: Promise; if (path) { savePromise = this.workspacesMainService.saveWorkspace(workspace, path); } else { @@ -2098,7 +2098,7 @@ class WorkspacesManager { }); } - promptToSaveUntitledWorkspace(window: ICodeWindow, workspace: IWorkspaceIdentifier): Thenable { + promptToSaveUntitledWorkspace(window: ICodeWindow, workspace: IWorkspaceIdentifier): Promise { enum ConfirmResult { SAVE, DONT_SAVE, diff --git a/src/vs/code/node/cli.ts b/src/vs/code/node/cli.ts index 9154f6813e6..fdf5f292fe1 100644 --- a/src/vs/code/node/cli.ts +++ b/src/vs/code/node/cli.ts @@ -29,7 +29,7 @@ function shouldSpawnCliProcess(argv: ParsedArgs): boolean { } interface IMainCli { - main: (argv: ParsedArgs) => Thenable; + main: (argv: ParsedArgs) => Promise; } export async function main(argv: string[]): Promise { @@ -121,7 +121,7 @@ export async function main(argv: string[]): Promise { delete env['ELECTRON_RUN_AS_NODE']; - const processCallbacks: ((child: ChildProcess) => Thenable)[] = []; + const processCallbacks: ((child: ChildProcess) => Promise)[] = []; const verbose = args.verbose || args.status || typeof args['upload-logs'] !== 'undefined'; if (verbose) { diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index 8df36e47959..67fe22445f5 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -62,7 +62,7 @@ export function getIdAndVersion(id: string): [string, string] { } -type Task = { (): Thenable }; +type Task = { (): Promise }; class Main { @@ -205,7 +205,7 @@ class Main { } } - private uninstallExtension(extensions: string[]): Thenable { + private uninstallExtension(extensions: string[]): Promise { async function getExtensionId(extensionDescription: string): Promise { if (!/\.vsix$/i.test(extensionDescription)) { return extensionDescription; diff --git a/src/vs/editor/browser/editorExtensions.ts b/src/vs/editor/browser/editorExtensions.ts index 40a1ff7bbb9..20cdbad8f5c 100644 --- a/src/vs/editor/browser/editorExtensions.ts +++ b/src/vs/editor/browser/editorExtensions.ts @@ -108,7 +108,7 @@ export abstract class Command { } } - public abstract runCommand(accessor: ServicesAccessor, args: any): void | Thenable; + public abstract runCommand(accessor: ServicesAccessor, args: any): void | Promise; } //#endregion Command @@ -145,7 +145,7 @@ export abstract class EditorCommand extends Command { }; } - public runCommand(accessor: ServicesAccessor, args: any): void | Thenable { + public runCommand(accessor: ServicesAccessor, args: any): void | Promise { const codeEditorService = accessor.get(ICodeEditorService); // Find the editor with text focus or active @@ -166,7 +166,7 @@ export abstract class EditorCommand extends Command { }); } - public abstract runEditorCommand(accessor: ServicesAccessor | null, editor: ICodeEditor, args: any): void | Thenable; + public abstract runEditorCommand(accessor: ServicesAccessor | null, editor: ICodeEditor, args: any): void | Promise; } //#endregion EditorCommand @@ -213,7 +213,7 @@ export abstract class EditorAction extends EditorCommand { super.register(); } - public runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void | Thenable { + public runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void | Promise { this.reportTelemetry(accessor, editor); return this.run(accessor, editor, args || {}); } @@ -231,7 +231,7 @@ export abstract class EditorAction extends EditorCommand { accessor.get(ITelemetryService).publicLog('editorActionInvoked', { name: this.label, id: this.id, ...editor.getTelemetryData() }); } - public abstract run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void | Thenable; + public abstract run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void | Promise; } //#endregion EditorAction diff --git a/src/vs/editor/browser/services/abstractCodeEditorService.ts b/src/vs/editor/browser/services/abstractCodeEditorService.ts index 7c8eabb46dd..8ca0f1ce5c9 100644 --- a/src/vs/editor/browser/services/abstractCodeEditorService.ts +++ b/src/vs/editor/browser/services/abstractCodeEditorService.ts @@ -126,7 +126,7 @@ export abstract class AbstractCodeEditorService extends Disposable implements IC } abstract getActiveCodeEditor(): ICodeEditor | null; - abstract openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Thenable; + abstract openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Promise; } export class ModelTransientSettingWatcher { diff --git a/src/vs/editor/browser/services/codeEditorService.ts b/src/vs/editor/browser/services/codeEditorService.ts index 914a77ae3b3..68f4c24fc6e 100644 --- a/src/vs/editor/browser/services/codeEditorService.ts +++ b/src/vs/editor/browser/services/codeEditorService.ts @@ -45,5 +45,5 @@ export interface ICodeEditorService { getTransientModelProperty(model: ITextModel, key: string): any; getActiveCodeEditor(): ICodeEditor | null; - openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Thenable; + openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Promise; } diff --git a/src/vs/editor/browser/services/codeEditorServiceImpl.ts b/src/vs/editor/browser/services/codeEditorServiceImpl.ts index b490643881b..a4cccb9e658 100644 --- a/src/vs/editor/browser/services/codeEditorServiceImpl.ts +++ b/src/vs/editor/browser/services/codeEditorServiceImpl.ts @@ -67,7 +67,7 @@ export abstract class CodeEditorServiceImpl extends AbstractCodeEditorService { } abstract getActiveCodeEditor(): ICodeEditor | null; - abstract openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Thenable; + abstract openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Promise; } interface IModelDecorationOptionsProvider extends IDisposable { diff --git a/src/vs/editor/browser/services/openerService.ts b/src/vs/editor/browser/services/openerService.ts index 4d73c2bfc4f..f2b0f9f9ed6 100644 --- a/src/vs/editor/browser/services/openerService.ts +++ b/src/vs/editor/browser/services/openerService.ts @@ -39,7 +39,7 @@ export class OpenerService implements IOpenerService { } const { scheme, path, query, fragment } = resource; - let promise: Thenable | undefined = undefined; + let promise: Promise | undefined = undefined; if (scheme === Schemas.http || scheme === Schemas.https || scheme === Schemas.mailto) { // open http or default mail application diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 010cc950d8e..081927c1d8f 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -221,7 +221,7 @@ export interface IState { * to that type `T`. In addition, `null` and `undefined` can be returned - either directly or from a * thenable. */ -export type ProviderResult = T | undefined | null | Thenable; +export type ProviderResult = T | undefined | null | Promise; /** * A hover represents additional information for a symbol or word. Hovers are @@ -1405,7 +1405,7 @@ export interface ITokenizationRegistry { /** * Register a promise for a tokenization support. */ - registerPromise(language: string, promise: Thenable): Thenable; + registerPromise(language: string, promise: Promise): Promise; /** * Get the tokenization support for a language. @@ -1417,7 +1417,7 @@ export interface ITokenizationRegistry { * Get the promise of a tokenization support for a language. * `null` is returned if no support is available and no promise for the support has been registered yet. */ - getPromise(language: string): Thenable | null; + getPromise(language: string): Promise | null; /** * Set the new color map that all tokens will use in their ColorId binary encoded bits for foreground and background. diff --git a/src/vs/editor/common/modes/tokenizationRegistry.ts b/src/vs/editor/common/modes/tokenizationRegistry.ts index 7282be4a653..beef379fcc9 100644 --- a/src/vs/editor/common/modes/tokenizationRegistry.ts +++ b/src/vs/editor/common/modes/tokenizationRegistry.ts @@ -11,7 +11,7 @@ import { ColorId, ITokenizationRegistry, ITokenizationSupport, ITokenizationSupp export class TokenizationRegistryImpl implements ITokenizationRegistry { private _map: { [language: string]: ITokenizationSupport }; - private _promises: { [language: string]: Thenable }; + private _promises: { [language: string]: Promise }; private readonly _onDidChange: Emitter = new Emitter(); public readonly onDidChange: Event = this._onDidChange.event; @@ -43,7 +43,7 @@ export class TokenizationRegistryImpl implements ITokenizationRegistry { }); } - public registerPromise(language: string, supportPromise: Thenable): Thenable { + public registerPromise(language: string, supportPromise: Promise): Promise { const promise = this._promises[language] = supportPromise.then(support => { delete this._promises[language]; if (support) { @@ -55,7 +55,7 @@ export class TokenizationRegistryImpl implements ITokenizationRegistry { return promise; } - public getPromise(language: string): Thenable | null { + public getPromise(language: string): Promise | null { const support = this.get(language); if (support) { return Promise.resolve(support); diff --git a/src/vs/editor/common/services/resolverService.ts b/src/vs/editor/common/services/resolverService.ts index 4793776643e..43fa6cf2160 100644 --- a/src/vs/editor/common/services/resolverService.ts +++ b/src/vs/editor/common/services/resolverService.ts @@ -18,7 +18,7 @@ export interface ITextModelService { * Provided a resource URI, it will return a model reference * which should be disposed once not needed anymore. */ - createModelReference(resource: URI): Thenable>; + createModelReference(resource: URI): Promise>; /** * Registers a specific `scheme` content provider. @@ -31,7 +31,7 @@ export interface ITextModelContentProvider { /** * Given a resource, return the content of the resource as `ITextModel`. */ - provideTextContent(resource: URI): Thenable; + provideTextContent(resource: URI): Promise; } export interface ITextEditorModel extends IEditorModel { diff --git a/src/vs/editor/contrib/codeAction/codeActionCommands.ts b/src/vs/editor/contrib/codeAction/codeActionCommands.ts index 34ee776f095..96acb0aa447 100644 --- a/src/vs/editor/contrib/codeAction/codeActionCommands.ts +++ b/src/vs/editor/contrib/codeAction/codeActionCommands.ts @@ -128,7 +128,7 @@ export class QuickFixController implements IEditorContribution { } } - public triggerFromEditorSelection(filter?: CodeActionFilter, autoApply?: CodeActionAutoApply): Thenable { + public triggerFromEditorSelection(filter?: CodeActionFilter, autoApply?: CodeActionAutoApply): Promise { return this._model.trigger({ type: 'manual', filter, autoApply }); } diff --git a/src/vs/editor/contrib/codeAction/codeActionModel.ts b/src/vs/editor/contrib/codeAction/codeActionModel.ts index 3c4c4b90cd0..84d29a8949f 100644 --- a/src/vs/editor/contrib/codeAction/codeActionModel.ts +++ b/src/vs/editor/contrib/codeAction/codeActionModel.ts @@ -112,7 +112,7 @@ export class CodeActionOracle { return selection ? selection : undefined; } - private _createEventAndSignalChange(trigger: CodeActionTrigger, selection: Selection | undefined): Thenable { + private _createEventAndSignalChange(trigger: CodeActionTrigger, selection: Selection | undefined): Promise { if (!selection) { // cancel this._signalChange({ @@ -221,7 +221,7 @@ export class CodeActionModel { } } - trigger(trigger: CodeActionTrigger): Thenable { + trigger(trigger: CodeActionTrigger): Promise { if (this._codeActionOracle) { return this._codeActionOracle.trigger(trigger); } diff --git a/src/vs/editor/contrib/codeAction/codeActionWidget.ts b/src/vs/editor/contrib/codeAction/codeActionWidget.ts index a4af30a6584..04c1bb3eda1 100644 --- a/src/vs/editor/contrib/codeAction/codeActionWidget.ts +++ b/src/vs/editor/contrib/codeAction/codeActionWidget.ts @@ -27,7 +27,7 @@ export class CodeActionContextMenu { private readonly _onApplyCodeAction: (action: CodeAction) => Promise ) { } - show(fixes: Thenable, at: { x: number; y: number } | Position) { + show(fixes: Promise, at: { x: number; y: number } | Position) { const actionsPromise = fixes ? fixes.then(value => { return value.map(action => { diff --git a/src/vs/editor/contrib/codelens/codelens.ts b/src/vs/editor/contrib/codelens/codelens.ts index 6dccdfd1375..30468bf74a1 100644 --- a/src/vs/editor/contrib/codelens/codelens.ts +++ b/src/vs/editor/contrib/codelens/codelens.ts @@ -68,7 +68,7 @@ registerLanguageCommand('_executeCodeLensProvider', function (accessor, args) { const result: ICodeLensSymbol[] = []; return getCodeLensData(model, CancellationToken.None).then(value => { - let resolve: Thenable[] = []; + let resolve: Promise[] = []; for (const item of value) { if (typeof itemResolveCount === 'undefined' || Boolean(item.symbol.command)) { diff --git a/src/vs/editor/contrib/folding/folding.ts b/src/vs/editor/contrib/folding/folding.ts index 5035b697113..698296e20c7 100644 --- a/src/vs/editor/contrib/folding/folding.ts +++ b/src/vs/editor/contrib/folding/folding.ts @@ -36,7 +36,7 @@ export const ID = 'editor.contrib.folding'; export interface RangeProvider { readonly id: string; - compute(cancelationToken: CancellationToken): Thenable; + compute(cancelationToken: CancellationToken): Promise; dispose(): void; } @@ -70,7 +70,7 @@ export class FoldingController implements IEditorContribution { private foldingStateMemento: FoldingStateMemento | null; - private foldingModelPromise: Thenable | null; + private foldingModelPromise: Promise | null; private updateScheduler: Delayer | null; private globalToDispose: IDisposable[]; @@ -432,7 +432,7 @@ abstract class FoldingAction extends EditorAction { abstract invoke(foldingController: FoldingController, foldingModel: FoldingModel, editor: ICodeEditor, args: T): void; - public runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor, args: T): void | Thenable { + public runEditorCommand(accessor: ServicesAccessor, editor: ICodeEditor, args: T): void | Promise { let foldingController = FoldingController.get(editor); if (!foldingController) { return; diff --git a/src/vs/editor/contrib/folding/indentRangeProvider.ts b/src/vs/editor/contrib/folding/indentRangeProvider.ts index 3804acfeee6..886dcbb6bab 100644 --- a/src/vs/editor/contrib/folding/indentRangeProvider.ts +++ b/src/vs/editor/contrib/folding/indentRangeProvider.ts @@ -26,7 +26,7 @@ export class IndentRangeProvider implements RangeProvider { dispose() { } - compute(cancelationToken: CancellationToken): Thenable { + compute(cancelationToken: CancellationToken): Promise { let foldingRules = LanguageConfigurationRegistry.getFoldingRules(this.editorModel.getLanguageIdentifier().id); let offSide = foldingRules && !!foldingRules.offSide; let markers = foldingRules && foldingRules.markers; diff --git a/src/vs/editor/contrib/folding/intializingRangeProvider.ts b/src/vs/editor/contrib/folding/intializingRangeProvider.ts index 02d411a3490..a783ffa9755 100644 --- a/src/vs/editor/contrib/folding/intializingRangeProvider.ts +++ b/src/vs/editor/contrib/folding/intializingRangeProvider.ts @@ -48,7 +48,7 @@ export class InitializingRangeProvider implements RangeProvider { } } - compute(cancelationToken: CancellationToken): Thenable { + compute(cancelationToken: CancellationToken): Promise { let foldingRangeData: IFoldingRangeData[] = []; if (this.decorationIds) { for (let id of this.decorationIds) { diff --git a/src/vs/editor/contrib/folding/syntaxRangeProvider.ts b/src/vs/editor/contrib/folding/syntaxRangeProvider.ts index 5d7c1b28a27..dc9f10ba2f1 100644 --- a/src/vs/editor/contrib/folding/syntaxRangeProvider.ts +++ b/src/vs/editor/contrib/folding/syntaxRangeProvider.ts @@ -28,7 +28,7 @@ export class SyntaxRangeProvider implements RangeProvider { constructor(private editorModel: ITextModel, private providers: FoldingRangeProvider[], private limit = MAX_FOLDING_REGIONS) { } - compute(cancellationToken: CancellationToken): Thenable { + compute(cancellationToken: CancellationToken): Promise { return collectSyntaxRanges(this.providers, this.editorModel, cancellationToken).then(ranges => { if (ranges) { let res = sanitizeRanges(ranges, this.limit); @@ -43,7 +43,7 @@ export class SyntaxRangeProvider implements RangeProvider { } -function collectSyntaxRanges(providers: FoldingRangeProvider[], model: ITextModel, cancellationToken: CancellationToken): Thenable { +function collectSyntaxRanges(providers: FoldingRangeProvider[], model: ITextModel, cancellationToken: CancellationToken): Promise { let rangeData: IFoldingRangeData[] | null = null; let promises = providers.map((provider, i) => { return Promise.resolve(provider.provideFoldingRanges(model, foldingContext, cancellationToken)).then(ranges => { diff --git a/src/vs/editor/contrib/goToDefinition/goToDefinition.ts b/src/vs/editor/contrib/goToDefinition/goToDefinition.ts index 28b14740ec9..4866a02f2b8 100644 --- a/src/vs/editor/contrib/goToDefinition/goToDefinition.ts +++ b/src/vs/editor/contrib/goToDefinition/goToDefinition.ts @@ -17,12 +17,12 @@ function getDefinitions( model: ITextModel, position: Position, registry: LanguageFeatureRegistry, - provide: (provider: T, model: ITextModel, position: Position) => DefinitionLink | DefinitionLink[] | null | undefined | Thenable -): Thenable { + provide: (provider: T, model: ITextModel, position: Position) => DefinitionLink | DefinitionLink[] | null | undefined | Promise +): Promise { const provider = registry.ordered(model); // get results - const promises = provider.map((provider): Thenable => { + const promises = provider.map((provider): Promise => { return Promise.resolve(provide(provider, model, position)).then(undefined, err => { onUnexpectedExternalError(err); return null; @@ -34,25 +34,25 @@ function getDefinitions( } -export function getDefinitionsAtPosition(model: ITextModel, position: Position, token: CancellationToken): Thenable { +export function getDefinitionsAtPosition(model: ITextModel, position: Position, token: CancellationToken): Promise { return getDefinitions(model, position, DefinitionProviderRegistry, (provider, model, position) => { return provider.provideDefinition(model, position, token); }); } -export function getDeclarationsAtPosition(model: ITextModel, position: Position, token: CancellationToken): Thenable { +export function getDeclarationsAtPosition(model: ITextModel, position: Position, token: CancellationToken): Promise { return getDefinitions(model, position, DeclarationProviderRegistry, (provider, model, position) => { return provider.provideDeclaration(model, position, token); }); } -export function getImplementationsAtPosition(model: ITextModel, position: Position, token: CancellationToken): Thenable { +export function getImplementationsAtPosition(model: ITextModel, position: Position, token: CancellationToken): Promise { return getDefinitions(model, position, ImplementationProviderRegistry, (provider, model, position) => { return provider.provideImplementation(model, position, token); }); } -export function getTypeDefinitionsAtPosition(model: ITextModel, position: Position, token: CancellationToken): Thenable { +export function getTypeDefinitionsAtPosition(model: ITextModel, position: Position, token: CancellationToken): Promise { return getDefinitions(model, position, TypeDefinitionProviderRegistry, (provider, model, position) => { return provider.provideTypeDefinition(model, position, token); }); diff --git a/src/vs/editor/contrib/goToDefinition/goToDefinitionCommands.ts b/src/vs/editor/contrib/goToDefinition/goToDefinitionCommands.ts index aee05dc747e..36f2d0e6eb1 100644 --- a/src/vs/editor/contrib/goToDefinition/goToDefinitionCommands.ts +++ b/src/vs/editor/contrib/goToDefinition/goToDefinitionCommands.ts @@ -51,7 +51,7 @@ export class DefinitionAction extends EditorAction { this._configuration = configuration; } - public run(accessor: ServicesAccessor, editor: ICodeEditor): Thenable { + public run(accessor: ServicesAccessor, editor: ICodeEditor): Promise { const notificationService = accessor.get(INotificationService); const editorService = accessor.get(ICodeEditorService); const progressService = accessor.get(IProgressService); @@ -114,7 +114,7 @@ export class DefinitionAction extends EditorAction { return definitionPromise; } - protected _getTargetLocationForPosition(model: ITextModel, position: corePosition.Position, token: CancellationToken): Thenable { + protected _getTargetLocationForPosition(model: ITextModel, position: corePosition.Position, token: CancellationToken): Promise { return getDefinitionsAtPosition(model, position, token); } @@ -147,7 +147,7 @@ export class DefinitionAction extends EditorAction { } } - private _openReference(editor: ICodeEditor, editorService: ICodeEditorService, reference: Location, sideBySide: boolean): Thenable { + private _openReference(editor: ICodeEditor, editorService: ICodeEditorService, reference: Location, sideBySide: boolean): Promise { return editorService.openCodeEditor({ resource: reference.uri, options: { @@ -258,7 +258,7 @@ export class PeekDefinitionAction extends DefinitionAction { export class DeclarationAction extends DefinitionAction { - protected _getTargetLocationForPosition(model: ITextModel, position: corePosition.Position, token: CancellationToken): Thenable { + protected _getTargetLocationForPosition(model: ITextModel, position: corePosition.Position, token: CancellationToken): Promise { return getDeclarationsAtPosition(model, position, token); } @@ -322,7 +322,7 @@ export class PeekDeclarationAction extends DeclarationAction { } export class ImplementationAction extends DefinitionAction { - protected _getTargetLocationForPosition(model: ITextModel, position: corePosition.Position, token: CancellationToken): Thenable { + protected _getTargetLocationForPosition(model: ITextModel, position: corePosition.Position, token: CancellationToken): Promise { return getImplementationsAtPosition(model, position, token); } @@ -380,7 +380,7 @@ export class PeekImplementationAction extends ImplementationAction { } export class TypeDefinitionAction extends DefinitionAction { - protected _getTargetLocationForPosition(model: ITextModel, position: corePosition.Position, token: CancellationToken): Thenable { + protected _getTargetLocationForPosition(model: ITextModel, position: corePosition.Position, token: CancellationToken): Promise { return getTypeDefinitionsAtPosition(model, position, token); } diff --git a/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts b/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts index 7118ce9d891..3dbccd60ba0 100644 --- a/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts +++ b/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts @@ -281,7 +281,7 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC DefinitionProviderRegistry.has(this.editor.getModel()); } - private findDefinition(target: IMouseTarget, token: CancellationToken): Thenable { + private findDefinition(target: IMouseTarget, token: CancellationToken): Promise { const model = this.editor.getModel(); if (!model) { return Promise.resolve(null); @@ -290,7 +290,7 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC return getDefinitionsAtPosition(model, target.position, token); } - private gotoDefinition(target: IMouseTarget, sideBySide: boolean): Thenable { + private gotoDefinition(target: IMouseTarget, sideBySide: boolean): Promise { this.editor.setPosition(target.position); const action = new DefinitionAction(new DefinitionActionConfig(sideBySide, false, true, false), { alias: undefined, label: undefined, id: undefined, precondition: undefined }); return this.editor.invokeWithinContext(accessor => action.run(accessor, this.editor)); diff --git a/src/vs/editor/contrib/gotoError/gotoError.ts b/src/vs/editor/contrib/gotoError/gotoError.ts index 8551d1fb962..58cda9b9d4f 100644 --- a/src/vs/editor/contrib/gotoError/gotoError.ts +++ b/src/vs/editor/contrib/gotoError/gotoError.ts @@ -320,7 +320,7 @@ class MarkerNavigationAction extends EditorAction { this._multiFile = multiFile; } - public run(accessor: ServicesAccessor, editor: ICodeEditor): Thenable { + public run(accessor: ServicesAccessor, editor: ICodeEditor): Promise { const markerService = accessor.get(IMarkerService); const editorService = accessor.get(ICodeEditorService); diff --git a/src/vs/editor/contrib/links/getLinks.ts b/src/vs/editor/contrib/links/getLinks.ts index 8ee3eabb7f0..5a75d3db2e5 100644 --- a/src/vs/editor/contrib/links/getLinks.ts +++ b/src/vs/editor/contrib/links/getLinks.ts @@ -37,7 +37,7 @@ export class Link implements ILink { return this._link.url; } - resolve(token: CancellationToken): Thenable { + resolve(token: CancellationToken): Promise { if (this._link.url) { try { return Promise.resolve(URI.parse(this._link.url)); diff --git a/src/vs/editor/contrib/parameterHints/test/parameterHintsModel.test.ts b/src/vs/editor/contrib/parameterHints/test/parameterHintsModel.test.ts index 0c0a8e8b015..8d80428ad0f 100644 --- a/src/vs/editor/contrib/parameterHints/test/parameterHintsModel.test.ts +++ b/src/vs/editor/contrib/parameterHints/test/parameterHintsModel.test.ts @@ -84,7 +84,7 @@ suite('ParameterHintsModel', () => { signatureHelpTriggerCharacters = [triggerChar]; signatureHelpRetriggerCharacters = []; - provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelp | Thenable { + provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelp | Promise { ++invokeCount; if (invokeCount === 1) { assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter); @@ -117,7 +117,7 @@ suite('ParameterHintsModel', () => { signatureHelpTriggerCharacters = [triggerChar]; signatureHelpRetriggerCharacters = []; - provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelp | Thenable { + provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelp | Promise { ++invokeCount; if (invokeCount === 1) { assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter); @@ -179,7 +179,7 @@ suite('ParameterHintsModel', () => { signatureHelpTriggerCharacters = ['a', 'b']; signatureHelpRetriggerCharacters = []; - provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelp | Thenable { + provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelp | Promise { ++invokeCount; if (invokeCount === 1) { assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter); @@ -214,7 +214,7 @@ suite('ParameterHintsModel', () => { signatureHelpRetriggerCharacters = []; - provideSignatureHelp(_model: ITextModel, _position: Position, token: CancellationToken): modes.SignatureHelp | Thenable { + provideSignatureHelp(_model: ITextModel, _position: Position, token: CancellationToken): modes.SignatureHelp | Promise { const count = invokeCount++; token.onCancellationRequested(() => { didRequestCancellationOf = count; }); @@ -267,7 +267,7 @@ suite('ParameterHintsModel', () => { signatureHelpTriggerCharacters = [triggerChar]; signatureHelpRetriggerCharacters = [retriggerChar]; - provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelp | Thenable { + provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelp | Promise { ++invokeCount; if (invokeCount === 1) { assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter); diff --git a/src/vs/editor/contrib/quickOpen/quickOpen.ts b/src/vs/editor/contrib/quickOpen/quickOpen.ts index 716cf33db87..48c01f13058 100644 --- a/src/vs/editor/contrib/quickOpen/quickOpen.ts +++ b/src/vs/editor/contrib/quickOpen/quickOpen.ts @@ -12,7 +12,7 @@ import { DocumentSymbol, DocumentSymbolProviderRegistry } from 'vs/editor/common import { IModelService } from 'vs/editor/common/services/modelService'; import { CancellationToken } from 'vs/base/common/cancellation'; -export function getDocumentSymbols(model: ITextModel, flat: boolean, token: CancellationToken): Thenable { +export function getDocumentSymbols(model: ITextModel, flat: boolean, token: CancellationToken): Promise { let roots: DocumentSymbol[] = []; diff --git a/src/vs/editor/contrib/referenceSearch/referencesController.ts b/src/vs/editor/contrib/referenceSearch/referencesController.ts index 8fd4231cf89..39646d1713d 100644 --- a/src/vs/editor/contrib/referenceSearch/referencesController.ts +++ b/src/vs/editor/contrib/referenceSearch/referencesController.ts @@ -25,7 +25,7 @@ export const ctxReferenceSearchVisible = new RawContextKey('referenceSe export interface RequestOptions { getMetaTitle(model: ReferencesModel): string; - onGoto?: (reference: Location) => Thenable; + onGoto?: (reference: Location) => Promise; } export abstract class ReferencesController implements editorCommon.IEditorContribution { @@ -192,7 +192,7 @@ export abstract class ReferencesController implements editorCommon.IEditorContri this._requestIdPool += 1; // Cancel pending requests } - private _gotoReference(ref: Location): Thenable { + private _gotoReference(ref: Location): Promise { this._widget.hide(); this._ignoreModelChangeEvent = true; diff --git a/src/vs/editor/contrib/referenceSearch/referencesTree.ts b/src/vs/editor/contrib/referenceSearch/referencesTree.ts index 7db27ea761a..ffda710aa84 100644 --- a/src/vs/editor/contrib/referenceSearch/referencesTree.ts +++ b/src/vs/editor/contrib/referenceSearch/referencesTree.ts @@ -47,7 +47,7 @@ export class DataSource implements IDataSource { return false; } - getChildren(element: TreeElement): Thenable { + getChildren(element: TreeElement): Promise { if (!element && this.root instanceof FileReferences) { element = this.root; } diff --git a/src/vs/editor/contrib/referenceSearch/referencesWidget.ts b/src/vs/editor/contrib/referenceSearch/referencesWidget.ts index 20bcb427f2d..e27a095b0f4 100644 --- a/src/vs/editor/contrib/referenceSearch/referencesWidget.ts +++ b/src/vs/editor/contrib/referenceSearch/referencesWidget.ts @@ -441,7 +441,7 @@ export class ReferenceWidget extends PeekViewWidget { }); } - public setModel(newModel: ReferencesModel): Thenable { + public setModel(newModel: ReferencesModel): Promise { // clean up this._disposeOnNewModel = dispose(this._disposeOnNewModel); this._model = newModel; @@ -451,7 +451,7 @@ export class ReferenceWidget extends PeekViewWidget { return undefined; } - private _onNewModel(): Thenable { + private _onNewModel(): Promise { if (this._model.empty) { this.setTitle(''); diff --git a/src/vs/editor/contrib/rename/rename.ts b/src/vs/editor/contrib/rename/rename.ts index 293a0676232..234a02c58d1 100644 --- a/src/vs/editor/contrib/rename/rename.ts +++ b/src/vs/editor/contrib/rename/rename.ts @@ -245,7 +245,7 @@ export class RenameAction extends EditorAction { }); } - runCommand(accessor: ServicesAccessor, args: [URI, IPosition]): void | Thenable { + runCommand(accessor: ServicesAccessor, args: [URI, IPosition]): void | Promise { const editorService = accessor.get(ICodeEditorService); const [uri, pos] = args || [undefined, undefined]; diff --git a/src/vs/editor/contrib/suggest/suggest.ts b/src/vs/editor/contrib/suggest/suggest.ts index 395219bc57c..969e5cef5aa 100644 --- a/src/vs/editor/contrib/suggest/suggest.ts +++ b/src/vs/editor/contrib/suggest/suggest.ts @@ -28,7 +28,7 @@ export class CompletionItem { _brand: 'ISuggestionItem'; - readonly resolve: (token: CancellationToken) => Thenable; + readonly resolve: (token: CancellationToken) => Promise; // perf readonly labelLow: string; @@ -250,7 +250,7 @@ registerDefaultLanguageCommand('_executeCompletionItemProvider', (model, positio suggestions: [] }; - let resolving: Thenable[] = []; + let resolving: Promise[] = []; let maxItemsToResolve = args['maxItemsToResolve'] || 0; return provideSuggestionItems(model, position).then(items => { diff --git a/src/vs/editor/contrib/suggest/wordDistance.ts b/src/vs/editor/contrib/suggest/wordDistance.ts index 17c8b46f451..825b2175a3b 100644 --- a/src/vs/editor/contrib/suggest/wordDistance.ts +++ b/src/vs/editor/contrib/suggest/wordDistance.ts @@ -17,7 +17,7 @@ export abstract class WordDistance { distance() { return 0; } }; - static create(service: IEditorWorkerService, editor: ICodeEditor): Thenable { + static create(service: IEditorWorkerService, editor: ICodeEditor): Promise { if (!editor.getConfiguration().contribInfo.suggest.localityBonus) { return Promise.resolve(WordDistance.None); diff --git a/src/vs/editor/contrib/wordHighlighter/wordHighlighter.ts b/src/vs/editor/contrib/wordHighlighter/wordHighlighter.ts index f525b8d039f..e448e3fffad 100644 --- a/src/vs/editor/contrib/wordHighlighter/wordHighlighter.ts +++ b/src/vs/editor/contrib/wordHighlighter/wordHighlighter.ts @@ -66,7 +66,7 @@ abstract class OccurenceAtPositionRequest implements IOccurenceAtPositionRequest this.result = createCancelablePromise(token => this._compute(model, selection, wordSeparators, token)); } - protected abstract _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Thenable; + protected abstract _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise; private _getCurrentWordRange(model: ITextModel, selection: Selection): Range | null { const word = model.getWordAtPosition(selection.getPosition()); @@ -105,7 +105,7 @@ abstract class OccurenceAtPositionRequest implements IOccurenceAtPositionRequest } class SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest { - protected _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Thenable { + protected _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise { return getOccurrencesAtPosition(model, selection.getPosition(), token); } } @@ -119,7 +119,7 @@ class TextualOccurenceAtPositionRequest extends OccurenceAtPositionRequest { this._selectionIsEmpty = selection.isEmpty(); } - protected _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Thenable { + protected _compute(model: ITextModel, selection: Selection, wordSeparators: string, token: CancellationToken): Promise { return timeout(250, token).then(() => { if (!selection.isEmpty()) { return []; diff --git a/src/vs/editor/standalone/browser/quickOpen/quickOutline.ts b/src/vs/editor/standalone/browser/quickOpen/quickOutline.ts index 37f229f1ff2..646bda8a909 100644 --- a/src/vs/editor/standalone/browser/quickOpen/quickOutline.ts +++ b/src/vs/editor/standalone/browser/quickOpen/quickOutline.ts @@ -128,7 +128,7 @@ export class QuickOutlineAction extends BaseEditorQuickOpenAction { }); } - public run(accessor: ServicesAccessor, editor: ICodeEditor): Thenable { + public run(accessor: ServicesAccessor, editor: ICodeEditor): Promise { let model = editor.getModel(); diff --git a/src/vs/editor/standalone/browser/simpleServices.ts b/src/vs/editor/standalone/browser/simpleServices.ts index b0818279377..2a2b5dc59ad 100644 --- a/src/vs/editor/standalone/browser/simpleServices.ts +++ b/src/vs/editor/standalone/browser/simpleServices.ts @@ -57,7 +57,7 @@ export class SimpleModel implements ITextEditorModel { return this._onDispose.event; } - public load(): Thenable { + public load(): Promise { return Promise.resolve(this); } @@ -141,7 +141,7 @@ export class SimpleProgressService implements IProgressService { return SimpleProgressService.NULL_PROGRESS_RUNNER; } - showWhile(promise: Thenable, delay?: number): Thenable { + showWhile(promise: Promise, delay?: number): Promise { return Promise.resolve(void 0); } } @@ -150,7 +150,7 @@ export class SimpleDialogService implements IDialogService { public _serviceBrand: any; - public confirm(confirmation: IConfirmation): Thenable { + public confirm(confirmation: IConfirmation): Promise { return this.doConfirm(confirmation).then(confirmed => { return { confirmed, @@ -159,7 +159,7 @@ export class SimpleDialogService implements IDialogService { }); } - private doConfirm(confirmation: IConfirmation): Thenable { + private doConfirm(confirmation: IConfirmation): Promise { let messageText = confirmation.message; if (confirmation.detail) { messageText = messageText + '\n\n' + confirmation.detail; @@ -168,7 +168,7 @@ export class SimpleDialogService implements IDialogService { return Promise.resolve(window.confirm(messageText)); } - public show(severity: Severity, message: string, buttons: string[], options?: IDialogOptions): Thenable { + public show(severity: Severity, message: string, buttons: string[], options?: IDialogOptions): Promise { return Promise.resolve(0); } } diff --git a/src/vs/editor/standalone/browser/standaloneCodeServiceImpl.ts b/src/vs/editor/standalone/browser/standaloneCodeServiceImpl.ts index 1e060eaa872..c52be42a833 100644 --- a/src/vs/editor/standalone/browser/standaloneCodeServiceImpl.ts +++ b/src/vs/editor/standalone/browser/standaloneCodeServiceImpl.ts @@ -19,7 +19,7 @@ export class StandaloneCodeEditorServiceImpl extends CodeEditorServiceImpl { return null; // not supported in the standalone case } - public openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Thenable { + public openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Promise { if (!source) { return Promise.resolve(null); } diff --git a/src/vs/editor/standalone/browser/standaloneLanguages.ts b/src/vs/editor/standalone/browser/standaloneLanguages.ts index 8db8f4a7805..1fecf4a297c 100644 --- a/src/vs/editor/standalone/browser/standaloneLanguages.ts +++ b/src/vs/editor/standalone/browser/standaloneLanguages.ts @@ -345,7 +345,7 @@ export function registerSignatureHelpProvider(languageId: string, provider: mode */ export function registerHoverProvider(languageId: string, provider: modes.HoverProvider): IDisposable { return modes.HoverProviderRegistry.register(languageId, { - provideHover: (model: model.ITextModel, position: Position, token: CancellationToken): Thenable => { + provideHover: (model: model.ITextModel, position: Position, token: CancellationToken): Promise => { let word = model.getWordAtPosition(position); return Promise.resolve(provider.provideHover(model, position, token)).then((value) => { @@ -411,7 +411,7 @@ export function registerCodeLensProvider(languageId: string, provider: modes.Cod */ export function registerCodeActionProvider(languageId: string, provider: CodeActionProvider): IDisposable { return modes.CodeActionProviderRegistry.register(languageId, { - provideCodeActions: (model: model.ITextModel, range: Range, context: modes.CodeActionContext, token: CancellationToken): (modes.Command | modes.CodeAction)[] | Thenable<(modes.Command | modes.CodeAction)[]> => { + provideCodeActions: (model: model.ITextModel, range: Range, context: modes.CodeActionContext, token: CancellationToken): (modes.Command | modes.CodeAction)[] | Promise<(modes.Command | modes.CodeAction)[]> => { let markers = StaticServices.markerService.get().read({ resource: model.uri }).filter(m => { return Range.areIntersectingOrTouching(m, range); }); @@ -496,7 +496,7 @@ export interface CodeActionProvider { /** * Provide commands for the given document and range. */ - provideCodeActions(model: model.ITextModel, range: Range, context: CodeActionContext, token: CancellationToken): (modes.Command | modes.CodeAction)[] | Thenable<(modes.Command | modes.CodeAction)[]>; + provideCodeActions(model: model.ITextModel, range: Range, context: CodeActionContext, token: CancellationToken): (modes.Command | modes.CodeAction)[] | Promise<(modes.Command | modes.CodeAction)[]>; } /** diff --git a/src/vs/editor/test/browser/editorTestServices.ts b/src/vs/editor/test/browser/editorTestServices.ts index 4f27495b5ab..31a6abfe92c 100644 --- a/src/vs/editor/test/browser/editorTestServices.ts +++ b/src/vs/editor/test/browser/editorTestServices.ts @@ -15,7 +15,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti export class TestCodeEditorService extends AbstractCodeEditorService { public lastInput: IResourceInput; public getActiveCodeEditor(): ICodeEditor | null { return null; } - public openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Thenable { + public openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Promise { this.lastInput = input; return Promise.resolve(null); } diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index e49a496e4eb..0d7d7c9ad9d 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -4386,7 +4386,7 @@ declare namespace monaco.languages { /** * Provide commands for the given document and range. */ - provideCodeActions(model: editor.ITextModel, range: Range, context: CodeActionContext, token: CancellationToken): (Command | CodeAction)[] | Thenable<(Command | CodeAction)[]>; + provideCodeActions(model: editor.ITextModel, range: Range, context: CodeActionContext, token: CancellationToken): (Command | CodeAction)[] | Promise<(Command | CodeAction)[]>; } /** @@ -4625,7 +4625,7 @@ declare namespace monaco.languages { * to that type `T`. In addition, `null` and `undefined` can be returned - either directly or from a * thenable. */ - export type ProviderResult = T | undefined | null | Thenable; + export type ProviderResult = T | undefined | null | Promise; /** * A hover represents additional information for a symbol or word. Hovers are diff --git a/src/vs/platform/configuration/test/common/testConfigurationService.ts b/src/vs/platform/configuration/test/common/testConfigurationService.ts index 36dda417ead..3fd7eac379b 100644 --- a/src/vs/platform/configuration/test/common/testConfigurationService.ts +++ b/src/vs/platform/configuration/test/common/testConfigurationService.ts @@ -37,7 +37,7 @@ export class TestConfigurationService implements IConfigurationService { return Promise.resolve(void 0); } - public setUserConfiguration(key: any, value: any, root?: URI): Thenable { + public setUserConfiguration(key: any, value: any, root?: URI): Promise { if (root) { const configForRoot = this.configurationByRoot.get(root.fsPath) || Object.create(null); configForRoot[key] = value; diff --git a/src/vs/platform/dialogs/common/dialogs.ts b/src/vs/platform/dialogs/common/dialogs.ts index 5a5b13003e9..6fcf6a53e22 100644 --- a/src/vs/platform/dialogs/common/dialogs.ts +++ b/src/vs/platform/dialogs/common/dialogs.ts @@ -127,7 +127,7 @@ export interface IDialogService { /** * Ask the user for confirmation with a modal dialog. */ - confirm(confirmation: IConfirmation): Thenable; + confirm(confirmation: IConfirmation): Promise; /** * Present a modal dialog to the user. @@ -136,7 +136,7 @@ export interface IDialogService { * then a promise with index of `cancelId` option is returned. If there is no such * option then promise with index `0` is returned. */ - show(severity: Severity, message: string, buttons: string[], options?: IDialogOptions): Thenable; + show(severity: Severity, message: string, buttons: string[], options?: IDialogOptions): Promise; } export const IFileDialogService = createDecorator('fileDialogService'); @@ -169,32 +169,32 @@ export interface IFileDialogService { /** * Shows a file-folder selection dialog and opens the selected entry. */ - pickFileFolderAndOpen(options: IPickAndOpenOptions): Thenable; + pickFileFolderAndOpen(options: IPickAndOpenOptions): Promise; /** * Shows a file selection dialog and opens the selected entry. */ - pickFileAndOpen(options: IPickAndOpenOptions): Thenable; + pickFileAndOpen(options: IPickAndOpenOptions): Promise; /** * Shows a folder selection dialog and opens the selected entry. */ - pickFolderAndOpen(options: IPickAndOpenOptions): Thenable; + pickFolderAndOpen(options: IPickAndOpenOptions): Promise; /** * Shows a workspace selection dialog and opens the selected entry. */ - pickWorkspaceAndOpen(options: IPickAndOpenOptions): Thenable; + pickWorkspaceAndOpen(options: IPickAndOpenOptions): Promise; /** * Shows a save file dialog and returns the chosen file URI. */ - showSaveDialog(options: ISaveDialogOptions): Thenable; + showSaveDialog(options: ISaveDialogOptions): Promise; /** * Shows a open file dialog and returns the chosen file URI. */ - showOpenDialog(options: IOpenDialogOptions): Thenable; + showOpenDialog(options: IOpenDialogOptions): Promise; } diff --git a/src/vs/platform/dialogs/node/dialogIpc.ts b/src/vs/platform/dialogs/node/dialogIpc.ts index adf6aad9432..db4c1cd607e 100644 --- a/src/vs/platform/dialogs/node/dialogIpc.ts +++ b/src/vs/platform/dialogs/node/dialogIpc.ts @@ -16,7 +16,7 @@ export class DialogChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, args?: any[]): Thenable { + call(_, command: string, args?: any[]): Promise { switch (command) { case 'show': return this.dialogService.show(args![0], args![1], args![2]); case 'confirm': return this.dialogService.confirm(args![0]); @@ -31,11 +31,11 @@ export class DialogChannelClient implements IDialogService { constructor(private channel: IChannel) { } - show(severity: Severity, message: string, options: string[]): Thenable { + show(severity: Severity, message: string, options: string[]): Promise { return this.channel.call('show', [severity, message, options]); } - confirm(confirmation: IConfirmation): Thenable { + confirm(confirmation: IConfirmation): Promise { return this.channel.call('confirm', [confirmation]); } } \ No newline at end of file diff --git a/src/vs/platform/download/node/downloadIpc.ts b/src/vs/platform/download/node/downloadIpc.ts index 06fff141f0b..61a9da3f354 100644 --- a/src/vs/platform/download/node/downloadIpc.ts +++ b/src/vs/platform/download/node/downloadIpc.ts @@ -35,7 +35,7 @@ export class DownloadServiceChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string): Thenable { + call(_, command: string): Promise { throw new Error(`Call not found: ${command}`); } } diff --git a/src/vs/platform/driver/node/driver.ts b/src/vs/platform/driver/node/driver.ts index 79b3343e14e..ef5c686b3a5 100644 --- a/src/vs/platform/driver/node/driver.ts +++ b/src/vs/platform/driver/node/driver.ts @@ -27,19 +27,19 @@ export interface IElement { export interface IDriver { _serviceBrand: any; - getWindowIds(): Thenable; - capturePage(windowId: number): Thenable; - reloadWindow(windowId: number): Thenable; - dispatchKeybinding(windowId: number, keybinding: string): Thenable; - click(windowId: number, selector: string, xoffset?: number | undefined, yoffset?: number | undefined): Thenable; - doubleClick(windowId: number, selector: string): Thenable; - setValue(windowId: number, selector: string, text: string): Thenable; - getTitle(windowId: number): Thenable; - isActiveElement(windowId: number, selector: string): Thenable; - getElements(windowId: number, selector: string, recursive?: boolean): Thenable; - typeInEditor(windowId: number, selector: string, text: string): Thenable; - getTerminalBuffer(windowId: number, selector: string): Thenable; - writeInTerminal(windowId: number, selector: string, text: string): Thenable; + getWindowIds(): Promise; + capturePage(windowId: number): Promise; + reloadWindow(windowId: number): Promise; + dispatchKeybinding(windowId: number, keybinding: string): Promise; + click(windowId: number, selector: string, xoffset?: number | undefined, yoffset?: number | undefined): Promise; + doubleClick(windowId: number, selector: string): Promise; + setValue(windowId: number, selector: string, text: string): Promise; + getTitle(windowId: number): Promise; + isActiveElement(windowId: number, selector: string): Promise; + getElements(windowId: number, selector: string, recursive?: boolean): Promise; + typeInEditor(windowId: number, selector: string, text: string): Promise; + getTerminalBuffer(windowId: number, selector: string): Promise; + writeInTerminal(windowId: number, selector: string, text: string): Promise; } //*END @@ -51,7 +51,7 @@ export class DriverChannel implements IServerChannel { throw new Error('No event found'); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'getWindowIds': return this.driver.getWindowIds(); case 'capturePage': return this.driver.capturePage(arg); @@ -78,55 +78,55 @@ export class DriverChannelClient implements IDriver { constructor(private channel: IChannel) { } - getWindowIds(): Thenable { + getWindowIds(): Promise { return this.channel.call('getWindowIds'); } - capturePage(windowId: number): Thenable { + capturePage(windowId: number): Promise { return this.channel.call('capturePage', windowId); } - reloadWindow(windowId: number): Thenable { + reloadWindow(windowId: number): Promise { return this.channel.call('reloadWindow', windowId); } - dispatchKeybinding(windowId: number, keybinding: string): Thenable { + dispatchKeybinding(windowId: number, keybinding: string): Promise { return this.channel.call('dispatchKeybinding', [windowId, keybinding]); } - click(windowId: number, selector: string, xoffset: number | undefined, yoffset: number | undefined): Thenable { + click(windowId: number, selector: string, xoffset: number | undefined, yoffset: number | undefined): Promise { return this.channel.call('click', [windowId, selector, xoffset, yoffset]); } - doubleClick(windowId: number, selector: string): Thenable { + doubleClick(windowId: number, selector: string): Promise { return this.channel.call('doubleClick', [windowId, selector]); } - setValue(windowId: number, selector: string, text: string): Thenable { + setValue(windowId: number, selector: string, text: string): Promise { return this.channel.call('setValue', [windowId, selector, text]); } - getTitle(windowId: number): Thenable { + getTitle(windowId: number): Promise { return this.channel.call('getTitle', [windowId]); } - isActiveElement(windowId: number, selector: string): Thenable { + isActiveElement(windowId: number, selector: string): Promise { return this.channel.call('isActiveElement', [windowId, selector]); } - getElements(windowId: number, selector: string, recursive: boolean): Thenable { + getElements(windowId: number, selector: string, recursive: boolean): Promise { return this.channel.call('getElements', [windowId, selector, recursive]); } - typeInEditor(windowId: number, selector: string, text: string): Thenable { + typeInEditor(windowId: number, selector: string, text: string): Promise { return this.channel.call('typeInEditor', [windowId, selector, text]); } - getTerminalBuffer(windowId: number, selector: string): Thenable { + getTerminalBuffer(windowId: number, selector: string): Promise { return this.channel.call('getTerminalBuffer', [windowId, selector]); } - writeInTerminal(windowId: number, selector: string, text: string): Thenable { + writeInTerminal(windowId: number, selector: string, text: string): Promise { return this.channel.call('writeInTerminal', [windowId, selector, text]); } } @@ -136,8 +136,8 @@ export interface IDriverOptions { } export interface IWindowDriverRegistry { - registerWindowDriver(windowId: number): Thenable; - reloadWindowDriver(windowId: number): Thenable; + registerWindowDriver(windowId: number): Promise; + reloadWindowDriver(windowId: number): Promise; } export class WindowDriverRegistryChannel implements IServerChannel { @@ -148,7 +148,7 @@ export class WindowDriverRegistryChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'registerWindowDriver': return this.registry.registerWindowDriver(arg); case 'reloadWindowDriver': return this.registry.reloadWindowDriver(arg); @@ -164,25 +164,25 @@ export class WindowDriverRegistryChannelClient implements IWindowDriverRegistry constructor(private channel: IChannel) { } - registerWindowDriver(windowId: number): Thenable { + registerWindowDriver(windowId: number): Promise { return this.channel.call('registerWindowDriver', windowId); } - reloadWindowDriver(windowId: number): Thenable { + reloadWindowDriver(windowId: number): Promise { return this.channel.call('reloadWindowDriver', windowId); } } export interface IWindowDriver { - click(selector: string, xoffset?: number | undefined, yoffset?: number | undefined): Thenable; - doubleClick(selector: string): Thenable; - setValue(selector: string, text: string): Thenable; - getTitle(): Thenable; - isActiveElement(selector: string): Thenable; - getElements(selector: string, recursive: boolean): Thenable; - typeInEditor(selector: string, text: string): Thenable; - getTerminalBuffer(selector: string): Thenable; - writeInTerminal(selector: string, text: string): Thenable; + click(selector: string, xoffset?: number | undefined, yoffset?: number | undefined): Promise; + doubleClick(selector: string): Promise; + setValue(selector: string, text: string): Promise; + getTitle(): Promise; + isActiveElement(selector: string): Promise; + getElements(selector: string, recursive: boolean): Promise; + typeInEditor(selector: string, text: string): Promise; + getTerminalBuffer(selector: string): Promise; + writeInTerminal(selector: string, text: string): Promise; } export class WindowDriverChannel implements IServerChannel { @@ -193,7 +193,7 @@ export class WindowDriverChannel implements IServerChannel { throw new Error(`No event found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'click': return this.driver.click(arg[0], arg[1], arg[2]); case 'doubleClick': return this.driver.doubleClick(arg); @@ -216,39 +216,39 @@ export class WindowDriverChannelClient implements IWindowDriver { constructor(private channel: IChannel) { } - click(selector: string, xoffset?: number, yoffset?: number): Thenable { + click(selector: string, xoffset?: number, yoffset?: number): Promise { return this.channel.call('click', [selector, xoffset, yoffset]); } - doubleClick(selector: string): Thenable { + doubleClick(selector: string): Promise { return this.channel.call('doubleClick', selector); } - setValue(selector: string, text: string): Thenable { + setValue(selector: string, text: string): Promise { return this.channel.call('setValue', [selector, text]); } - getTitle(): Thenable { + getTitle(): Promise { return this.channel.call('getTitle'); } - isActiveElement(selector: string): Thenable { + isActiveElement(selector: string): Promise { return this.channel.call('isActiveElement', selector); } - getElements(selector: string, recursive: boolean): Thenable { + getElements(selector: string, recursive: boolean): Promise { return this.channel.call('getElements', [selector, recursive]); } - typeInEditor(selector: string, text: string): Thenable { + typeInEditor(selector: string, text: string): Promise { return this.channel.call('typeInEditor', [selector, text]); } - getTerminalBuffer(selector: string): Thenable { + getTerminalBuffer(selector: string): Promise { return this.channel.call('getTerminalBuffer', selector); } - writeInTerminal(selector: string, text: string): Thenable { + writeInTerminal(selector: string, text: string): Promise { return this.channel.call('writeInTerminal', [selector, text]); } } diff --git a/src/vs/platform/editor/common/editor.ts b/src/vs/platform/editor/common/editor.ts index 906769fae65..b07aeaa04a2 100644 --- a/src/vs/platform/editor/common/editor.ts +++ b/src/vs/platform/editor/common/editor.ts @@ -16,7 +16,7 @@ export interface IEditorModel { /** * Loads the model. */ - load(): Thenable; + load(): Promise; /** * Dispose associated resources diff --git a/src/vs/platform/extensionManagement/node/extensionLifecycle.ts b/src/vs/platform/extensionManagement/node/extensionLifecycle.ts index 6de328ec850..a65f0317565 100644 --- a/src/vs/platform/extensionManagement/node/extensionLifecycle.ts +++ b/src/vs/platform/extensionManagement/node/extensionLifecycle.ts @@ -50,7 +50,7 @@ export class ExtensionsLifecycle extends Disposable { return null; } - private runLifecycleHook(lifecycleHook: string, lifecycleType: string, args: string[], timeout: boolean, extension: ILocalExtension): Thenable { + private runLifecycleHook(lifecycleHook: string, lifecycleType: string, args: string[], timeout: boolean, extension: ILocalExtension): Promise { return new Promise((c, e) => { const extensionLifecycleProcess = this.start(lifecycleHook, lifecycleType, args, extension); diff --git a/src/vs/platform/extensionManagement/node/extensionManagementIpc.ts b/src/vs/platform/extensionManagement/node/extensionManagementIpc.ts index 17f5c5bb8a0..a1f0d010abf 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementIpc.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementIpc.ts @@ -35,7 +35,7 @@ export class ExtensionManagementChannel implements IServerChannel { throw new Error('Invalid listen'); } - call(context, command: string, args?: any): Thenable { + call(context, command: string, args?: any): Promise { const uriTransformer = this.getUriTransformer(context); switch (command) { case 'zip': return this.service.zip(this._transformIncoming(args[0], uriTransformer)).then(uri => uriTransformer.transformOutgoing(uri)); diff --git a/src/vs/platform/extensionManagement/node/multiExtensionManagement.ts b/src/vs/platform/extensionManagement/node/multiExtensionManagement.ts index c1057928ede..6ea0adf85f3 100644 --- a/src/vs/platform/extensionManagement/node/multiExtensionManagement.ts +++ b/src/vs/platform/extensionManagement/node/multiExtensionManagement.ts @@ -112,8 +112,8 @@ export class MultiExtensionManagementService extends Disposable implements IExte return this.extensionManagementServerService.getExtensionManagementServer(extension.location); } - private _remoteAuthorityResolverPromise: Thenable; - private hasToSyncExtensions(): Thenable { + private _remoteAuthorityResolverPromise: Promise; + private hasToSyncExtensions(): Promise { if (!this.extensionManagementServerService.remoteExtensionManagementServer) { return Promise.resolve(false); } diff --git a/src/vs/platform/files/common/files.ts b/src/vs/platform/files/common/files.ts index 2c8b94bdba3..b007b6f1840 100644 --- a/src/vs/platform/files/common/files.ts +++ b/src/vs/platform/files/common/files.ts @@ -52,7 +52,7 @@ export interface IFileService { /** * Tries to activate a provider with the given scheme. */ - activateProvider(scheme: string): Thenable; + activateProvider(scheme: string): Promise; /** * Checks if this file service can handle the given resource. @@ -70,51 +70,51 @@ export interface IFileService { * the stat service is asked to automatically resolve child folders that only * contain a single element. */ - resolveFile(resource: URI, options?: IResolveFileOptions): Thenable; + resolveFile(resource: URI, options?: IResolveFileOptions): Promise; /** * Same as resolveFile but supports resolving multiple resources in parallel. * If one of the resolve targets fails to resolve returns a fake IFileStat instead of making the whole call fail. */ - resolveFiles(toResolve: { resource: URI, options?: IResolveFileOptions }[]): Thenable; + resolveFiles(toResolve: { resource: URI, options?: IResolveFileOptions }[]): Promise; /** * Finds out if a file identified by the resource exists. */ - existsFile(resource: URI): Thenable; + existsFile(resource: URI): Promise; /** * Resolve the contents of a file identified by the resource. * * The returned object contains properties of the file and the full value as string. */ - resolveContent(resource: URI, options?: IResolveContentOptions): Thenable; + resolveContent(resource: URI, options?: IResolveContentOptions): Promise; /** * Resolve the contents of a file identified by the resource. * * The returned object contains properties of the file and the value as a readable stream. */ - resolveStreamContent(resource: URI, options?: IResolveContentOptions): Thenable; + resolveStreamContent(resource: URI, options?: IResolveContentOptions): Promise; /** * Updates the content replacing its previous value. */ - updateContent(resource: URI, value: string | ITextSnapshot, options?: IUpdateContentOptions): Thenable; + updateContent(resource: URI, value: string | ITextSnapshot, options?: IUpdateContentOptions): Promise; /** * Moves the file to a new path identified by the resource. * * The optional parameter overwrite can be set to replace an existing file at the location. */ - moveFile(source: URI, target: URI, overwrite?: boolean): Thenable; + moveFile(source: URI, target: URI, overwrite?: boolean): Promise; /** * Copies the file to a path identified by the resource. * * The optional parameter overwrite can be set to replace an existing file at the location. */ - copyFile(source: URI, target: URI, overwrite?: boolean): Thenable; + copyFile(source: URI, target: URI, overwrite?: boolean): Promise; /** * Creates a new file with the given path. The returned promise @@ -122,26 +122,26 @@ export interface IFileService { * * The optional parameter content can be used as value to fill into the new file. */ - createFile(resource: URI, content?: string, options?: ICreateFileOptions): Thenable; + createFile(resource: URI, content?: string, options?: ICreateFileOptions): Promise; /** * Reads a folder's content with the given path. The returned promise * will have the list of children as a result. */ - readFolder(resource: URI): Thenable; + readFolder(resource: URI): Promise; /** * Creates a new folder with the given path. The returned promise * will have the stat model object as a result. */ - createFolder(resource: URI): Thenable; + createFolder(resource: URI): Promise; /** * Deletes the provided file. The optional useTrash parameter allows to * move the file to trash. The optional recursive parameter allows to delete * non-empty folders recursively. */ - del(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Thenable; + del(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Promise; /** * Allows to start a watcher that reports file change events on the provided resource. @@ -208,21 +208,21 @@ export interface IFileSystemProvider { onDidChangeFile: Event; watch(resource: URI, opts: IWatchOptions): IDisposable; - stat(resource: URI): Thenable; - mkdir(resource: URI): Thenable; - readdir(resource: URI): Thenable<[string, FileType][]>; - delete(resource: URI, opts: FileDeleteOptions): Thenable; + stat(resource: URI): Promise; + mkdir(resource: URI): Promise; + readdir(resource: URI): Promise<[string, FileType][]>; + delete(resource: URI, opts: FileDeleteOptions): Promise; - rename(from: URI, to: URI, opts: FileOverwriteOptions): Thenable; - copy?(from: URI, to: URI, opts: FileOverwriteOptions): Thenable; + rename(from: URI, to: URI, opts: FileOverwriteOptions): Promise; + copy?(from: URI, to: URI, opts: FileOverwriteOptions): Promise; - readFile?(resource: URI): Thenable; - writeFile?(resource: URI, content: Uint8Array, opts: FileWriteOptions): Thenable; + readFile?(resource: URI): Promise; + writeFile?(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise; - open?(resource: URI): Thenable; - close?(fd: number): Thenable; - read?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Thenable; - write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Thenable; + open?(resource: URI): Promise; + close?(fd: number): Promise; + read?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise; + write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise; } export interface IFileSystemProviderRegistrationEvent { diff --git a/src/vs/platform/integrity/common/integrity.ts b/src/vs/platform/integrity/common/integrity.ts index e326da2bac3..37c0fe97ed6 100644 --- a/src/vs/platform/integrity/common/integrity.ts +++ b/src/vs/platform/integrity/common/integrity.ts @@ -23,5 +23,5 @@ export interface IntegrityTestResult { export interface IIntegrityService { _serviceBrand: any; - isPure(): Thenable; + isPure(): Promise; } diff --git a/src/vs/platform/integrity/node/integrityServiceImpl.ts b/src/vs/platform/integrity/node/integrityServiceImpl.ts index 670230c6d4e..ca2e3ac9cce 100644 --- a/src/vs/platform/integrity/node/integrityServiceImpl.ts +++ b/src/vs/platform/integrity/node/integrityServiceImpl.ts @@ -57,7 +57,7 @@ export class IntegrityServiceImpl implements IIntegrityService { _serviceBrand: any; private _storage: IntegrityStorage; - private _isPurePromise: Thenable; + private _isPurePromise: Promise; constructor( @INotificationService private notificationService: INotificationService, @@ -101,11 +101,11 @@ export class IntegrityServiceImpl implements IIntegrityService { ); } - isPure(): Thenable { + isPure(): Promise { return this._isPurePromise; } - private _isPure(): Thenable { + private _isPure(): Promise { const expectedChecksums = product.checksums || {}; return this.lifecycleService.when(LifecyclePhase.Eventually).then(() => { diff --git a/src/vs/platform/issue/common/issue.ts b/src/vs/platform/issue/common/issue.ts index ef78a8d1bb7..90c4b4356ce 100644 --- a/src/vs/platform/issue/common/issue.ts +++ b/src/vs/platform/issue/common/issue.ts @@ -87,6 +87,6 @@ export interface ProcessExplorerData extends WindowData { export interface IIssueService { _serviceBrand: any; - openReporter(data: IssueReporterData): Thenable; - openProcessExplorer(data: ProcessExplorerData): Thenable; + openReporter(data: IssueReporterData): Promise; + openProcessExplorer(data: ProcessExplorerData): Promise; } diff --git a/src/vs/platform/issue/node/issueIpc.ts b/src/vs/platform/issue/node/issueIpc.ts index c6b2ad7e786..a4a3df818fb 100644 --- a/src/vs/platform/issue/node/issueIpc.ts +++ b/src/vs/platform/issue/node/issueIpc.ts @@ -15,7 +15,7 @@ export class IssueChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'openIssueReporter': return this.service.openReporter(arg); @@ -33,11 +33,11 @@ export class IssueChannelClient implements IIssueService { constructor(private channel: IChannel) { } - openReporter(data: IssueReporterData): Thenable { + openReporter(data: IssueReporterData): Promise { return this.channel.call('openIssueReporter', data); } - openProcessExplorer(data: ProcessExplorerData): Thenable { + openProcessExplorer(data: ProcessExplorerData): Promise { return this.channel.call('openProcessExplorer', data); } } \ No newline at end of file diff --git a/src/vs/platform/launch/electron-main/launchService.ts b/src/vs/platform/launch/electron-main/launchService.ts index 9a85fd26d8b..20a6d4b95ce 100644 --- a/src/vs/platform/launch/electron-main/launchService.ts +++ b/src/vs/platform/launch/electron-main/launchService.ts @@ -60,10 +60,10 @@ function parseOpenUrl(args: ParsedArgs): URI[] { export interface ILaunchService { _serviceBrand: any; - start(args: ParsedArgs, userEnv: IProcessEnvironment): Thenable; - getMainProcessId(): Thenable; - getMainProcessInfo(): Thenable; - getLogsPath(): Thenable; + start(args: ParsedArgs, userEnv: IProcessEnvironment): Promise; + getMainProcessId(): Promise; + getMainProcessInfo(): Promise; + getLogsPath(): Promise; } export class LaunchChannel implements IServerChannel { @@ -74,7 +74,7 @@ export class LaunchChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg: any): Thenable { + call(_, command: string, arg: any): Promise { switch (command) { case 'start': const { args, userEnv } = arg as IStartArguments; @@ -100,19 +100,19 @@ export class LaunchChannelClient implements ILaunchService { constructor(private channel: IChannel) { } - start(args: ParsedArgs, userEnv: IProcessEnvironment): Thenable { + start(args: ParsedArgs, userEnv: IProcessEnvironment): Promise { return this.channel.call('start', { args, userEnv }); } - getMainProcessId(): Thenable { + getMainProcessId(): Promise { return this.channel.call('get-main-process-id', null); } - getMainProcessInfo(): Thenable { + getMainProcessInfo(): Promise { return this.channel.call('get-main-process-info', null); } - getLogsPath(): Thenable { + getLogsPath(): Promise { return this.channel.call('get-logs-path', null); } } @@ -130,14 +130,14 @@ export class LaunchService implements ILaunchService { @IConfigurationService private readonly configurationService: IConfigurationService ) { } - start(args: ParsedArgs, userEnv: IProcessEnvironment): Thenable { + start(args: ParsedArgs, userEnv: IProcessEnvironment): Promise { this.logService.trace('Received data from other instance: ', args, userEnv); const urlsToOpen = parseOpenUrl(args); // Check early for open-url which is handled in URL service if (urlsToOpen.length) { - let whenWindowReady: Thenable = Promise.resolve(null); + let whenWindowReady: Promise = Promise.resolve(null); // Create a window if there is none if (this.windowsMainService.getWindowCount() === 0) { @@ -159,7 +159,7 @@ export class LaunchService implements ILaunchService { return this.startOpenWindow(args, userEnv); } - private startOpenWindow(args: ParsedArgs, userEnv: IProcessEnvironment): Thenable { + private startOpenWindow(args: ParsedArgs, userEnv: IProcessEnvironment): Promise { const context = !!userEnv['VSCODE_CLI'] ? OpenContext.CLI : OpenContext.DESKTOP; let usedWindows: ICodeWindow[] = []; @@ -232,13 +232,13 @@ export class LaunchService implements ILaunchService { return Promise.resolve(void 0); } - getMainProcessId(): Thenable { + getMainProcessId(): Promise { this.logService.trace('Received request for process ID from other instance.'); return Promise.resolve(process.pid); } - getMainProcessInfo(): Thenable { + getMainProcessInfo(): Promise { this.logService.trace('Received request for main process info from other instance.'); const windows: IWindowInfo[] = []; @@ -258,7 +258,7 @@ export class LaunchService implements ILaunchService { }); } - getLogsPath(): Thenable { + getLogsPath(): Promise { this.logService.trace('Received request for logs path from other instance.'); return Promise.resolve(this.environmentService.logsPath); diff --git a/src/vs/platform/lifecycle/common/lifecycle.ts b/src/vs/platform/lifecycle/common/lifecycle.ts index 41fe7ac9089..4879ee13e8d 100644 --- a/src/vs/platform/lifecycle/common/lifecycle.ts +++ b/src/vs/platform/lifecycle/common/lifecycle.ts @@ -24,7 +24,7 @@ export interface BeforeShutdownEvent { * Allows to veto the shutdown. The veto can be a long running operation but it * will block the application from closing. */ - veto(value: boolean | Thenable): void; + veto(value: boolean | Promise): void; /** * The reason why the application will be shutting down. @@ -46,7 +46,7 @@ export interface WillShutdownEvent { * Allows to join the shutdown. The promise can be a long running operation but it * will block the application from closing. */ - join(promise: Thenable): void; + join(promise: Promise): void; /** * The reason why the application is shutting down. @@ -162,7 +162,7 @@ export interface ILifecycleService { * Returns a promise that resolves when a certain lifecycle phase * has started. */ - when(phase: LifecyclePhase): Thenable; + when(phase: LifecyclePhase): Promise; } export const NullLifecycleService: ILifecycleService = { @@ -176,12 +176,12 @@ export const NullLifecycleService: ILifecycleService = { }; // Shared veto handling across main and renderer -export function handleVetos(vetos: (boolean | Thenable)[], onError: (error: Error) => void): Promise { +export function handleVetos(vetos: (boolean | Promise)[], onError: (error: Error) => void): Promise { if (vetos.length === 0) { return Promise.resolve(false); } - const promises: Thenable[] = []; + const promises: Promise[] = []; let lazyValue = false; for (let valueOrPromise of vetos) { diff --git a/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts b/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts index a9563520938..cbb965509fe 100644 --- a/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts +++ b/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts @@ -116,7 +116,7 @@ export class LifecycleService extends Disposable implements ILifecycleService { } private handleBeforeShutdown(reason: ShutdownReason): Promise { - const vetos: (boolean | Thenable)[] = []; + const vetos: (boolean | Promise)[] = []; this._onBeforeShutdown.fire({ veto(value) { @@ -131,8 +131,8 @@ export class LifecycleService extends Disposable implements ILifecycleService { }); } - private handleWillShutdown(reason: ShutdownReason): Thenable { - const joiners: Thenable[] = []; + private handleWillShutdown(reason: ShutdownReason): Promise { + const joiners: Promise[] = []; this._onWillShutdown.fire({ join(promise) { @@ -169,7 +169,7 @@ export class LifecycleService extends Disposable implements ILifecycleService { } } - when(phase: LifecyclePhase): Thenable { + when(phase: LifecyclePhase): Promise { if (phase <= this._phase) { return Promise.resolve(); } diff --git a/src/vs/platform/lifecycle/electron-main/lifecycleMain.ts b/src/vs/platform/lifecycle/electron-main/lifecycleMain.ts index 9c1a284a297..786ee14504b 100644 --- a/src/vs/platform/lifecycle/electron-main/lifecycleMain.ts +++ b/src/vs/platform/lifecycle/electron-main/lifecycleMain.ts @@ -26,7 +26,7 @@ export const enum UnloadReason { export interface IWindowUnloadEvent { window: ICodeWindow; reason: UnloadReason; - veto(value: boolean | Thenable): void; + veto(value: boolean | Promise): void; } export interface ShutdownEvent { @@ -35,7 +35,7 @@ export interface ShutdownEvent { * Allows to join the shutdown. The promise can be a long running operation but it * will block the application from closing. */ - join(promise: Thenable): void; + join(promise: Promise): void; } export interface ILifecycleService { @@ -79,7 +79,7 @@ export interface ILifecycleService { /** * Unload a window for the provided reason. All lifecycle event handlers are triggered. */ - unload(window: ICodeWindow, reason: UnloadReason): Thenable; + unload(window: ICodeWindow, reason: UnloadReason): Promise; /** * Restart the application with optional arguments (CLI). All lifecycle event handlers are triggered. @@ -89,7 +89,7 @@ export interface ILifecycleService { /** * Shutdown the application normally. All lifecycle event handlers are triggered. */ - quit(fromUpdate?: boolean): Thenable; + quit(fromUpdate?: boolean): Promise; /** * Forcefully shutdown the application. No livecycle event handlers are triggered. @@ -107,10 +107,10 @@ export class LifecycleService extends Disposable implements ILifecycleService { private oneTimeListenerTokenGenerator = 0; private windowCounter = 0; - private pendingQuitPromise: Thenable | null; + private pendingQuitPromise: Promise | null; private pendingQuitPromiseResolve: { (veto: boolean): void } | null; - private pendingWillShutdownPromise: Thenable | null; + private pendingWillShutdownPromise: Promise | null; private _quitRequested = false; get quitRequested(): boolean { return this._quitRequested; } @@ -217,14 +217,14 @@ export class LifecycleService extends Disposable implements ILifecycleService { }); } - private beginOnWillShutdown(): Thenable { + private beginOnWillShutdown(): Promise { if (this.pendingWillShutdownPromise) { return this.pendingWillShutdownPromise; // shutdown is already running } this.logService.trace('Lifecycle#onWillShutdown.fire()'); - const joiners: Thenable[] = []; + const joiners: Promise[] = []; this._onWillShutdown.fire({ join(promise) { @@ -292,7 +292,7 @@ export class LifecycleService extends Disposable implements ILifecycleService { }); } - unload(window: ICodeWindow, reason: UnloadReason): Thenable { + unload(window: ICodeWindow, reason: UnloadReason): Promise { // Always allow to unload a window that is not yet ready if (!window.isReady) { @@ -348,7 +348,7 @@ export class LifecycleService extends Disposable implements ILifecycleService { } } - private onBeforeUnloadWindowInRenderer(window: ICodeWindow, reason: UnloadReason): Thenable { + private onBeforeUnloadWindowInRenderer(window: ICodeWindow, reason: UnloadReason): Promise { return new Promise(c => { const oneTimeEventToken = this.oneTimeListenerTokenGenerator++; const okChannel = `vscode:ok${oneTimeEventToken}`; @@ -366,8 +366,8 @@ export class LifecycleService extends Disposable implements ILifecycleService { }); } - private onBeforeUnloadWindowInMain(window: ICodeWindow, reason: UnloadReason): Thenable { - const vetos: (boolean | Thenable)[] = []; + private onBeforeUnloadWindowInMain(window: ICodeWindow, reason: UnloadReason): Promise { + const vetos: (boolean | Promise)[] = []; this._onBeforeWindowUnload.fire({ reason, @@ -380,7 +380,7 @@ export class LifecycleService extends Disposable implements ILifecycleService { return handleVetos(vetos, err => this.logService.error(err)); } - private onWillUnloadWindowInRenderer(window: ICodeWindow, reason: UnloadReason): Thenable { + private onWillUnloadWindowInRenderer(window: ICodeWindow, reason: UnloadReason): Promise { return new Promise(resolve => { const oneTimeEventToken = this.oneTimeListenerTokenGenerator++; const replyChannel = `vscode:reply${oneTimeEventToken}`; @@ -395,7 +395,7 @@ export class LifecycleService extends Disposable implements ILifecycleService { * A promise that completes to indicate if the quit request has been veto'd * by the user or not. */ - quit(fromUpdate?: boolean): Thenable { + quit(fromUpdate?: boolean): Promise { if (this.pendingQuitPromise) { return this.pendingQuitPromise; } diff --git a/src/vs/platform/list/browser/listService.ts b/src/vs/platform/list/browser/listService.ts index bf79fbd8adb..3848455b466 100644 --- a/src/vs/platform/list/browser/listService.ts +++ b/src/vs/platform/list/browser/listService.ts @@ -794,7 +794,7 @@ export class HighlightingWorkbenchTree extends WorkbenchTree { this.disposables.push(this._onDidStartFilter); } - setInput(element: any): Thenable { + setInput(element: any): Promise { this.input.setEnabled(false); return super.setInput(element).then(value => { if (!this.input.inputElement) { diff --git a/src/vs/platform/localizations/common/localizations.ts b/src/vs/platform/localizations/common/localizations.ts index 82a18ef351a..2f70e80f400 100644 --- a/src/vs/platform/localizations/common/localizations.ts +++ b/src/vs/platform/localizations/common/localizations.ts @@ -29,7 +29,7 @@ export interface ILocalizationsService { _serviceBrand: any; readonly onDidLanguagesChange: Event; - getLanguageIds(type?: LanguageType): Thenable; + getLanguageIds(type?: LanguageType): Promise; } export function isValidLocalization(localization: ILocalization): boolean { diff --git a/src/vs/platform/localizations/node/localizations.ts b/src/vs/platform/localizations/node/localizations.ts index b609124430d..15c1419bc4e 100644 --- a/src/vs/platform/localizations/node/localizations.ts +++ b/src/vs/platform/localizations/node/localizations.ts @@ -55,7 +55,7 @@ export class LocalizationsService extends Disposable implements ILocalizationsSe this.extensionManagementService.getInstalled().then(installed => this.cache.update(installed)); } - getLanguageIds(type: LanguageType): Thenable { + getLanguageIds(type: LanguageType): Promise { if (type === LanguageType.Core) { return Promise.resolve([...systemLanguages]); } @@ -110,7 +110,7 @@ class LanguagePacksCache extends Disposable { this.languagePacksFileLimiter = new Queue(); } - getLanguagePacks(): Thenable<{ [language: string]: ILanguagePack }> { + getLanguagePacks(): Promise<{ [language: string]: ILanguagePack }> { // if queue is not empty, fetch from disk if (this.languagePacksFileLimiter.size) { return this.withLanguagePacks() @@ -119,7 +119,7 @@ class LanguagePacksCache extends Disposable { return Promise.resolve(this.languagePacks); } - update(extensions: ILocalExtension[]): Thenable<{ [language: string]: ILanguagePack }> { + update(extensions: ILocalExtension[]): Promise<{ [language: string]: ILanguagePack }> { return this.withLanguagePacks(languagePacks => { Object.keys(languagePacks).forEach(language => delete languagePacks[language]); this.createLanguagePacksFromExtensions(languagePacks, ...extensions); @@ -168,7 +168,7 @@ class LanguagePacksCache extends Disposable { } } - private withLanguagePacks(fn: (languagePacks: { [language: string]: ILanguagePack }) => T | null = () => null): Thenable { + private withLanguagePacks(fn: (languagePacks: { [language: string]: ILanguagePack }) => T | null = () => null): Promise { return this.languagePacksFileLimiter.queue(() => { let result: T | null = null; return pfs.readFile(this.languagePacksFilePath, 'utf8') diff --git a/src/vs/platform/localizations/node/localizationsIpc.ts b/src/vs/platform/localizations/node/localizationsIpc.ts index fa5a5518ae6..f37957e46c0 100644 --- a/src/vs/platform/localizations/node/localizationsIpc.ts +++ b/src/vs/platform/localizations/node/localizationsIpc.ts @@ -23,7 +23,7 @@ export class LocalizationsChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'getLanguageIds': return this.service.getLanguageIds(arg); } @@ -40,7 +40,7 @@ export class LocalizationsChannelClient implements ILocalizationsService { get onDidLanguagesChange(): Event { return this.channel.listen('onDidLanguagesChange'); } - getLanguageIds(type?: LanguageType): Thenable { + getLanguageIds(type?: LanguageType): Promise { return this.channel.call('getLanguageIds', type); } } \ No newline at end of file diff --git a/src/vs/platform/log/node/logIpc.ts b/src/vs/platform/log/node/logIpc.ts index 7cb099b5021..92846e6d86d 100644 --- a/src/vs/platform/log/node/logIpc.ts +++ b/src/vs/platform/log/node/logIpc.ts @@ -23,7 +23,7 @@ export class LogLevelSetterChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'setLevel': this.service.setLevel(arg); } diff --git a/src/vs/platform/menubar/common/menubar.ts b/src/vs/platform/menubar/common/menubar.ts index f43c83a4d9a..c88dab47842 100644 --- a/src/vs/platform/menubar/common/menubar.ts +++ b/src/vs/platform/menubar/common/menubar.ts @@ -11,7 +11,7 @@ export const IMenubarService = createDecorator('menubarService' export interface IMenubarService { _serviceBrand: any; - updateMenubar(windowId: number, menuData: IMenubarData): Thenable; + updateMenubar(windowId: number, menuData: IMenubarData): Promise; } export interface IMenubarData { diff --git a/src/vs/platform/menubar/node/menubarIpc.ts b/src/vs/platform/menubar/node/menubarIpc.ts index 70d61f0d879..ff2166784ef 100644 --- a/src/vs/platform/menubar/node/menubarIpc.ts +++ b/src/vs/platform/menubar/node/menubarIpc.ts @@ -14,7 +14,7 @@ export class MenubarChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'updateMenubar': return this.service.updateMenubar(arg[0], arg[1]); } @@ -29,7 +29,7 @@ export class MenubarChannelClient implements IMenubarService { constructor(private channel: IChannel) { } - updateMenubar(windowId: number, menuData: IMenubarData): Thenable { + updateMenubar(windowId: number, menuData: IMenubarData): Promise { return this.channel.call('updateMenubar', [windowId, menuData]); } } diff --git a/src/vs/platform/progress/common/progress.ts b/src/vs/platform/progress/common/progress.ts index 99144374abb..27195ab0d54 100644 --- a/src/vs/platform/progress/common/progress.ts +++ b/src/vs/platform/progress/common/progress.ts @@ -22,7 +22,7 @@ export interface IProgressService { * Indicate progress for the duration of the provided promise. Progress will stop in * any case of promise completion, error or cancellation. */ - showWhile(promise: Thenable, delay?: number): Thenable; + showWhile(promise: Promise, delay?: number): Promise; } export const enum ProgressLocation { @@ -52,7 +52,7 @@ export interface IProgressService2 { _serviceBrand: any; - withProgress

, R=any>(options: IProgressOptions, task: (progress: IProgress) => P, onDidCancel?: () => void): P; + withProgress

, R=any>(options: IProgressOptions, task: (progress: IProgress) => P, onDidCancel?: () => void): P; } export interface IProgressRunner { diff --git a/src/vs/platform/quickOpen/common/quickOpen.ts b/src/vs/platform/quickOpen/common/quickOpen.ts index 390fcac7daf..a5232810f36 100644 --- a/src/vs/platform/quickOpen/common/quickOpen.ts +++ b/src/vs/platform/quickOpen/common/quickOpen.ts @@ -26,7 +26,7 @@ export interface IQuickOpenService { * * The returned promise completes when quick open is closing. */ - show(prefix?: string, options?: IShowOptions): Thenable; + show(prefix?: string, options?: IShowOptions): Promise; /** * Allows to navigate from the outside in an opened picker. diff --git a/src/vs/platform/quickinput/common/quickInput.ts b/src/vs/platform/quickinput/common/quickInput.ts index e273c0918a2..7dde852bb12 100644 --- a/src/vs/platform/quickinput/common/quickInput.ts +++ b/src/vs/platform/quickinput/common/quickInput.ts @@ -114,7 +114,7 @@ export interface IInputOptions { /** * an optional function that is used to validate user input. */ - validateInput?: (input: string) => Thenable; + validateInput?: (input: string) => Promise; } export interface IQuickInput { @@ -230,9 +230,9 @@ export interface IQuickInputService { /** * Opens the quick input box for selecting items and returns a promise with the user selected item(s) if any. */ - pick(picks: Thenable[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: true }, token?: CancellationToken): Promise; - pick(picks: Thenable[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: false }, token?: CancellationToken): Promise; - pick(picks: Thenable[]> | QuickPickInput[], options?: Omit, 'canPickMany'>, token?: CancellationToken): Promise; + pick(picks: Promise[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: true }, token?: CancellationToken): Promise; + pick(picks: Promise[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: false }, token?: CancellationToken): Promise; + pick(picks: Promise[]> | QuickPickInput[], options?: Omit, 'canPickMany'>, token?: CancellationToken): Promise; /** * Opens the quick input box for text input and returns a promise with the user typed value if any. diff --git a/src/vs/platform/remote/common/remoteAuthorityResolver.ts b/src/vs/platform/remote/common/remoteAuthorityResolver.ts index ea9f3c1056a..51628f97ee5 100644 --- a/src/vs/platform/remote/common/remoteAuthorityResolver.ts +++ b/src/vs/platform/remote/common/remoteAuthorityResolver.ts @@ -18,7 +18,7 @@ export interface IRemoteAuthorityResolverService { _serviceBrand: any; - resolveAuthority(authority: string): Thenable; + resolveAuthority(authority: string): Promise; setResolvedAuthority(resolvedAuthority: ResolvedAuthority): void; } diff --git a/src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts b/src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts index 705f1cedf94..475677e05a2 100644 --- a/src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts +++ b/src/vs/platform/remote/electron-browser/remoteAuthorityResolverService.ts @@ -27,7 +27,7 @@ export class RemoteAuthorityResolverService implements IRemoteAuthorityResolverS this._resolvedAuthorities = Object.create(null); } - resolveAuthority(authority: string): Thenable { + resolveAuthority(authority: string): Promise { if (this._resolvedAuthorities[authority]) { return Promise.resolve(this._resolvedAuthorities[authority]); } diff --git a/src/vs/platform/remote/node/remoteAgentConnection.ts b/src/vs/platform/remote/node/remoteAgentConnection.ts index 9c053ad7d05..ddcb7177b4d 100644 --- a/src/vs/platform/remote/node/remoteAgentConnection.ts +++ b/src/vs/platform/remote/node/remoteAgentConnection.ts @@ -11,7 +11,7 @@ export interface RemoteAgentConnectionContext { clientId: string; } -export function connectRemoteAgentManagement(remoteAuthority: string, host: string, port: number, clientId: string): Thenable> { +export function connectRemoteAgentManagement(remoteAuthority: string, host: string, port: number, clientId: string): Promise> { throw new Error(`Not implemented`); } @@ -20,6 +20,6 @@ export interface IExtensionHostConnectionResult { debugPort?: number; } -export function connectRemoteAgentExtensionHost(host: string, port: number, debugArguments: IExtensionHostDebugParams): Thenable { +export function connectRemoteAgentExtensionHost(host: string, port: number, debugArguments: IExtensionHostDebugParams): Promise { throw new Error(`Not implemented`); } diff --git a/src/vs/platform/remote/node/remoteAgentFileSystemChannel.ts b/src/vs/platform/remote/node/remoteAgentFileSystemChannel.ts index c479a3935c9..d083a69af11 100644 --- a/src/vs/platform/remote/node/remoteAgentFileSystemChannel.ts +++ b/src/vs/platform/remote/node/remoteAgentFileSystemChannel.ts @@ -75,36 +75,36 @@ export class RemoteExtensionsFileSystemProvider extends Disposable implements IF return Buffer.isBuffer(data) ? data : Buffer.from(data.buffer, data.byteOffset, data.byteLength); } - stat(resource: URI): Thenable { + stat(resource: URI): Promise { return this._channel.call('stat', [resource]); } - readFile(resource: URI): Thenable { + readFile(resource: URI): Promise { return this._channel.call('readFile', [resource]); } - writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Thenable { + writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise { const contents = RemoteExtensionsFileSystemProvider._asBuffer(content); return this._channel.call('writeFile', [resource, contents, opts]); } - delete(resource: URI, opts: FileDeleteOptions): Thenable { + delete(resource: URI, opts: FileDeleteOptions): Promise { return this._channel.call('delete', [resource, opts]); } - mkdir(resource: URI): Thenable { + mkdir(resource: URI): Promise { return this._channel.call('mkdir', [resource]); } - readdir(resource: URI): Thenable<[string, FileType][]> { + readdir(resource: URI): Promise<[string, FileType][]> { return this._channel.call('readdir', [resource]); } - rename(resource: URI, target: URI, opts: FileOverwriteOptions): Thenable { + rename(resource: URI, target: URI, opts: FileOverwriteOptions): Promise { return this._channel.call('rename', [resource, target, opts]); } - copy(resource: URI, target: URI, opts: FileOverwriteOptions): Thenable { + copy(resource: URI, target: URI, opts: FileOverwriteOptions): Promise { return this._channel.call('copy', [resource, target, opts]); } } diff --git a/src/vs/platform/search/common/search.ts b/src/vs/platform/search/common/search.ts index f84d037ca68..63c4bbaaa6a 100644 --- a/src/vs/platform/search/common/search.ts +++ b/src/vs/platform/search/common/search.ts @@ -28,7 +28,7 @@ export interface ISearchService { textSearch(query: ITextQuery, token?: CancellationToken, onProgress?: (result: ISearchProgressItem) => void): Promise; fileSearch(query: IFileQuery, token?: CancellationToken): Promise; extendQuery(query: ITextQuery | IFileQuery): void; - clearCache(cacheKey: string): Thenable; + clearCache(cacheKey: string): Promise; registerSearchResultProvider(scheme: string, type: SearchProviderType, provider: ISearchResultProvider): IDisposable; } @@ -59,7 +59,7 @@ export const enum SearchProviderType { export interface ISearchResultProvider { textSearch(query: ITextQuery, onProgress?: (p: ISearchProgressItem) => void, token?: CancellationToken): Promise; fileSearch(query: IFileQuery, token?: CancellationToken): Promise; - clearCache(cacheKey: string): Thenable; + clearCache(cacheKey: string): Promise; } export interface IFolderQuery { diff --git a/src/vs/platform/storage/node/storageIpc.ts b/src/vs/platform/storage/node/storageIpc.ts index 44ab2537c58..886049f1b15 100644 --- a/src/vs/platform/storage/node/storageIpc.ts +++ b/src/vs/platform/storage/node/storageIpc.ts @@ -70,7 +70,7 @@ export class GlobalStorageDatabaseChannel extends Disposable implements IServerC throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'getItems': { return Promise.resolve(mapToSerializable(this.storageMainService.items)); @@ -125,11 +125,11 @@ export class GlobalStorageDatabaseChannelClient extends Disposable implements IS } } - getItems(): Thenable> { + getItems(): Promise> { return this.channel.call('getItems').then((data: Item[]) => serializableToMap(data)); } - updateItems(request: IUpdateRequest): Thenable { + updateItems(request: IUpdateRequest): Promise { let updateCount = 0; const serializableRequest: ISerializableUpdateRequest = Object.create(null); @@ -150,11 +150,11 @@ export class GlobalStorageDatabaseChannelClient extends Disposable implements IS return this.channel.call('updateItems', serializableRequest); } - checkIntegrity(full: boolean): Thenable { + checkIntegrity(full: boolean): Promise { return this.channel.call('checkIntegrity', full); } - close(): Thenable { + close(): Promise { // when we are about to close, we start to ignore main-side changes since we close anyway this.onDidChangeItemsOnMainListener = dispose(this.onDidChangeItemsOnMainListener); diff --git a/src/vs/platform/storage/node/storageMainService.ts b/src/vs/platform/storage/node/storageMainService.ts index 345a913a092..9d4e8bad79c 100644 --- a/src/vs/platform/storage/node/storageMainService.ts +++ b/src/vs/platform/storage/node/storageMainService.ts @@ -130,7 +130,7 @@ export class StorageMainService extends Disposable implements IStorageMainServic } as ISQLiteStorageDatabaseLoggingOptions; } - initialize(): Thenable { + initialize(): Promise { const useInMemoryStorage = this.storagePath === SQLiteStorageDatabase.IN_MEMORY_PATH; let globalStorageExists: Promise; @@ -158,7 +158,7 @@ export class StorageMainService extends Disposable implements IStorageMainServic }).then(() => { // Migrate storage if this is the first start and we are not using in-memory - let migrationPromise: Thenable; + let migrationPromise: Promise; if (!useInMemoryStorage && !exists) { // TODO@Ben remove global storage migration and move Storage creation back to ctor migrationPromise = this.migrateGlobalStorage().then(() => this.logService.info('[storage] migrated global storage'), error => this.logService.error(`[storage] migration error ${error}`)); @@ -171,7 +171,7 @@ export class StorageMainService extends Disposable implements IStorageMainServic }); } - private migrateGlobalStorage(): Thenable { + private migrateGlobalStorage(): Promise { this.logService.info('[storage] migrating global storage from localStorage into SQLite'); const localStorageDBBackup = join(this.environmentService.userDataPath, 'Local Storage', 'file__0.vscmig'); @@ -357,15 +357,15 @@ export class StorageMainService extends Disposable implements IStorageMainServic return this.storage.getInteger(key, fallbackValue); } - store(key: string, value: any): Thenable { + store(key: string, value: any): Promise { return this.storage.set(key, value); } - remove(key: string): Thenable { + remove(key: string): Promise { return this.storage.delete(key); } - close(): Thenable { + close(): Promise { this.logService.trace('StorageMainService#close() - begin'); // Signal as event so that clients can still store data @@ -380,7 +380,7 @@ export class StorageMainService extends Disposable implements IStorageMainServic }); } - checkIntegrity(full: boolean): Thenable { + checkIntegrity(full: boolean): Promise { return this.storage.checkIntegrity(full); } } \ No newline at end of file diff --git a/src/vs/platform/storage/node/storageService.ts b/src/vs/platform/storage/node/storageService.ts index 6ff7e243226..21267cd4eeb 100644 --- a/src/vs/platform/storage/node/storageService.ts +++ b/src/vs/platform/storage/node/storageService.ts @@ -73,14 +73,14 @@ export class StorageService extends Disposable implements IStorageService { this._onDidChangeStorage.fire({ key, scope }); } - initialize(payload: IWorkspaceInitializationPayload): Thenable { + initialize(payload: IWorkspaceInitializationPayload): Promise { return Promise.all([ this.initializeGlobalStorage(), this.initializeWorkspaceStorage(payload) ]).then(() => void 0); } - private initializeGlobalStorage(): Thenable { + private initializeGlobalStorage(): Promise { mark('willInitGlobalStorage'); return this.globalStorage.init().then(() => { @@ -92,7 +92,7 @@ export class StorageService extends Disposable implements IStorageService { }); } - private initializeWorkspaceStorage(payload: IWorkspaceInitializationPayload): Thenable { + private initializeWorkspaceStorage(payload: IWorkspaceInitializationPayload): Promise { // Prepare workspace storage folder for DB return this.prepareWorkspaceStorageFolder(payload).then(result => { @@ -144,7 +144,7 @@ export class StorageService extends Disposable implements IStorageService { return join(this.environmentService.workspaceStorageHome, payload.id); // workspace home + workspace id; } - private prepareWorkspaceStorageFolder(payload: IWorkspaceInitializationPayload): Thenable<{ path: string, wasCreated: boolean }> { + private prepareWorkspaceStorageFolder(payload: IWorkspaceInitializationPayload): Promise<{ path: string, wasCreated: boolean }> { const workspaceStorageFolderPath = this.getWorkspaceStorageFolderPath(payload); return exists(workspaceStorageFolderPath).then(exists => { @@ -232,7 +232,7 @@ export class StorageService extends Disposable implements IStorageService { return scope === StorageScope.GLOBAL ? this.globalStorage.size : this.workspaceStorage.size; } - checkIntegrity(scope: StorageScope, full: boolean): Thenable { + checkIntegrity(scope: StorageScope, full: boolean): Promise { return scope === StorageScope.GLOBAL ? this.globalStorage.checkIntegrity(full) : this.workspaceStorage.checkIntegrity(full); } @@ -287,7 +287,7 @@ export class StorageService extends Disposable implements IStorageService { }); } - migrate(toWorkspace: IWorkspaceInitializationPayload): Thenable { + migrate(toWorkspace: IWorkspaceInitializationPayload): Promise { if (this.workspaceStoragePath === SQLiteStorageDatabase.IN_MEMORY_PATH) { return Promise.resolve(); // no migration needed if running in memory } @@ -324,7 +324,7 @@ export class LogStorageAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.storageService.logStorage(); return this.windowService.openDevTools(); diff --git a/src/vs/platform/telemetry/common/telemetry.ts b/src/vs/platform/telemetry/common/telemetry.ts index 159ad58dabe..93bb7eebd5b 100644 --- a/src/vs/platform/telemetry/common/telemetry.ts +++ b/src/vs/platform/telemetry/common/telemetry.ts @@ -27,9 +27,9 @@ export interface ITelemetryService { * Sends a telemetry event that has been privacy approved. * Do not call this unless you have been given approval. */ - publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Thenable; + publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Promise; - getTelemetryInfo(): Thenable; + getTelemetryInfo(): Promise; isOptedIn: boolean; } diff --git a/src/vs/platform/telemetry/common/telemetryService.ts b/src/vs/platform/telemetry/common/telemetryService.ts index 3b9110a8c81..7f300844819 100644 --- a/src/vs/platform/telemetry/common/telemetryService.ts +++ b/src/vs/platform/telemetry/common/telemetryService.ts @@ -16,7 +16,7 @@ import { Registry } from 'vs/platform/registry/common/platform'; export interface ITelemetryServiceConfig { appender: ITelemetryAppender; - commonProperties?: Thenable<{ [name: string]: any }>; + commonProperties?: Promise<{ [name: string]: any }>; piiPaths?: string[]; } @@ -28,7 +28,7 @@ export class TelemetryService implements ITelemetryService { _serviceBrand: any; private _appender: ITelemetryAppender; - private _commonProperties: Thenable<{ [name: string]: any; }>; + private _commonProperties: Promise<{ [name: string]: any; }>; private _piiPaths: string[]; private _userOptIn: boolean; @@ -72,7 +72,7 @@ export class TelemetryService implements ITelemetryService { return this._userOptIn; } - getTelemetryInfo(): Thenable { + getTelemetryInfo(): Promise { return this._commonProperties.then(values => { // well known properties let sessionId = values['sessionID']; @@ -87,7 +87,7 @@ export class TelemetryService implements ITelemetryService { this._disposables = dispose(this._disposables); } - publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Thenable { + publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Promise { // don't send events when the user is optout if (!this._userOptIn) { return Promise.resolve(undefined); diff --git a/src/vs/platform/telemetry/common/telemetryUtils.ts b/src/vs/platform/telemetry/common/telemetryUtils.ts index 0a2bc0dc06b..a89ec346ff4 100644 --- a/src/vs/platform/telemetry/common/telemetryUtils.ts +++ b/src/vs/platform/telemetry/common/telemetryUtils.ts @@ -29,7 +29,7 @@ export const NullTelemetryService = new class implements ITelemetryService { export interface ITelemetryAppender { log(eventName: string, data: any): void; - dispose(): Thenable | undefined; + dispose(): Promise | undefined; } export function combinedAppender(...appenders: ITelemetryAppender[]): ITelemetryAppender { diff --git a/src/vs/platform/telemetry/node/telemetryIpc.ts b/src/vs/platform/telemetry/node/telemetryIpc.ts index a99e372fa31..c0a1e657ea7 100644 --- a/src/vs/platform/telemetry/node/telemetryIpc.ts +++ b/src/vs/platform/telemetry/node/telemetryIpc.ts @@ -20,7 +20,7 @@ export class TelemetryAppenderChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, { eventName, data }: ITelemetryLog): Thenable { + call(_, command: string, { eventName, data }: ITelemetryLog): Promise { this.appender.log(eventName, data); return Promise.resolve(null); } diff --git a/src/vs/platform/telemetry/node/telemetryNodeUtils.ts b/src/vs/platform/telemetry/node/telemetryNodeUtils.ts index 6c42c1e752f..5540da30a71 100644 --- a/src/vs/platform/telemetry/node/telemetryNodeUtils.ts +++ b/src/vs/platform/telemetry/node/telemetryNodeUtils.ts @@ -9,7 +9,7 @@ import product from 'vs/platform/node/product'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -export function addGAParameters(telemetryService: ITelemetryService, environmentService: IEnvironmentService, uri: URI, origin: string, experiment = '1'): Thenable { +export function addGAParameters(telemetryService: ITelemetryService, environmentService: IEnvironmentService, uri: URI, origin: string, experiment = '1'): Promise { if (environmentService.isBuilt && !environmentService.isExtensionDevelopment && !environmentService.args['disable-telemetry'] && !!product.enableTelemetry) { if (uri.scheme === 'https' && uri.authority === 'code.visualstudio.com') { return telemetryService.getTelemetryInfo() diff --git a/src/vs/platform/telemetry/test/electron-browser/telemetryService.test.ts b/src/vs/platform/telemetry/test/electron-browser/telemetryService.test.ts index 712287504c9..193a20bf6f5 100644 --- a/src/vs/platform/telemetry/test/electron-browser/telemetryService.test.ts +++ b/src/vs/platform/telemetry/test/electron-browser/telemetryService.test.ts @@ -206,13 +206,13 @@ suite('TelemetryService', () => { class JoinableTelemetryService extends TelemetryService { - private readonly promises: Thenable[] = []; + private readonly promises: Promise[] = []; join(): Promise { return Promise.all(this.promises); } - publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Thenable { + publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Promise { let p = super.publicLog(eventName, data, anonymizeFilePaths); this.promises.push(p); return p; diff --git a/src/vs/platform/update/common/update.ts b/src/vs/platform/update/common/update.ts index 5f9d514d8de..205d961cece 100644 --- a/src/vs/platform/update/common/update.ts +++ b/src/vs/platform/update/common/update.ts @@ -76,7 +76,7 @@ export const State = { export interface IAutoUpdater extends Event.NodeEventEmitter { setFeedURL(url: string): void; checkForUpdates(): void; - applyUpdate?(): Thenable; + applyUpdate?(): Promise; quitAndInstall(): void; } @@ -88,10 +88,10 @@ export interface IUpdateService { readonly onStateChange: Event; readonly state: State; - checkForUpdates(context: any): Thenable; - downloadUpdate(): Thenable; - applyUpdate(): Thenable; - quitAndInstall(): Thenable; + checkForUpdates(context: any): Promise; + downloadUpdate(): Promise; + applyUpdate(): Promise; + quitAndInstall(): Promise; - isLatestVersion(): Thenable; + isLatestVersion(): Promise; } diff --git a/src/vs/platform/update/electron-main/abstractUpdateService.ts b/src/vs/platform/update/electron-main/abstractUpdateService.ts index 2e3a485737c..2283a9a9c77 100644 --- a/src/vs/platform/update/electron-main/abstractUpdateService.ts +++ b/src/vs/platform/update/electron-main/abstractUpdateService.ts @@ -80,7 +80,7 @@ export abstract class AbstractUpdateService implements IUpdateService { return quality === 'none' ? undefined : product.quality; } - private scheduleCheckForUpdates(delay = 60 * 60 * 1000): Thenable { + private scheduleCheckForUpdates(delay = 60 * 60 * 1000): Promise { return timeout(delay) .then(() => this.checkForUpdates(null)) .then(() => { @@ -127,7 +127,7 @@ export abstract class AbstractUpdateService implements IUpdateService { // noop } - quitAndInstall(): Thenable { + quitAndInstall(): Promise { this.logService.trace('update#quitAndInstall, state = ', this.state.type); if (this.state.type !== StateType.Ready) { @@ -149,7 +149,7 @@ export abstract class AbstractUpdateService implements IUpdateService { return Promise.resolve(void 0); } - isLatestVersion(): Thenable { + isLatestVersion(): Promise { if (!this.url) { return Promise.resolve(undefined); } diff --git a/src/vs/platform/update/electron-main/updateService.snap.ts b/src/vs/platform/update/electron-main/updateService.snap.ts index 62e8207ff4a..ed0cb25b057 100644 --- a/src/vs/platform/update/electron-main/updateService.snap.ts +++ b/src/vs/platform/update/electron-main/updateService.snap.ts @@ -50,7 +50,7 @@ abstract class AbstractUpdateService2 implements IUpdateService { this.scheduleCheckForUpdates(30 * 1000).then(undefined, err => this.logService.error(err)); } - private scheduleCheckForUpdates(delay = 60 * 60 * 1000): Thenable { + private scheduleCheckForUpdates(delay = 60 * 60 * 1000): Promise { return timeout(delay) .then(() => this.checkForUpdates(null)) .then(() => { @@ -93,11 +93,11 @@ abstract class AbstractUpdateService2 implements IUpdateService { await this.doApplyUpdate(); } - protected doApplyUpdate(): Thenable { + protected doApplyUpdate(): Promise { return Promise.resolve(void 0); } - quitAndInstall(): Thenable { + quitAndInstall(): Promise { this.logService.trace('update#quitAndInstall, state = ', this.state.type); if (this.state.type !== StateType.Ready) { @@ -128,7 +128,7 @@ abstract class AbstractUpdateService2 implements IUpdateService { // noop } - abstract isLatestVersion(): Thenable; + abstract isLatestVersion(): Promise; protected abstract doCheckForUpdates(context: any): void; } @@ -202,7 +202,7 @@ export class SnapUpdateService extends AbstractUpdateService2 { }); } - private isUpdateAvailable(): Thenable { + private isUpdateAvailable(): Promise { return new Promise((c, e) => { realpath(`/snap/${product.applicationName}/current`, (err, resolvedCurrentSnapPath) => { if (err) { return e(err); } @@ -213,7 +213,7 @@ export class SnapUpdateService extends AbstractUpdateService2 { }); } - isLatestVersion(): Thenable { + isLatestVersion(): Promise { return this.isUpdateAvailable().then(undefined, err => { this.logService.error('update#checkForSnapUpdate(): Could not get realpath of application.'); return undefined; diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts index 4a972956116..84a38e9b2a2 100644 --- a/src/vs/platform/update/electron-main/updateService.win32.ts +++ b/src/vs/platform/update/electron-main/updateService.win32.ts @@ -53,7 +53,7 @@ export class Win32UpdateService extends AbstractUpdateService { private availableUpdate: IAvailableUpdate | undefined; @memoize - get cachePath(): Thenable { + get cachePath(): Promise { const result = path.join(tmpdir(), `vscode-update-${product.target}-${process.arch}`); return pfs.mkdirp(result, void 0).then(() => result); } diff --git a/src/vs/platform/update/node/updateIpc.ts b/src/vs/platform/update/node/updateIpc.ts index f579a48f578..69308aaacb3 100644 --- a/src/vs/platform/update/node/updateIpc.ts +++ b/src/vs/platform/update/node/updateIpc.ts @@ -19,7 +19,7 @@ export class UpdateChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'checkForUpdates': return this.service.checkForUpdates(arg); case 'downloadUpdate': return this.service.downloadUpdate(); @@ -57,23 +57,23 @@ export class UpdateChannelClient implements IUpdateService { }); } - checkForUpdates(context: any): Thenable { + checkForUpdates(context: any): Promise { return this.channel.call('checkForUpdates', context); } - downloadUpdate(): Thenable { + downloadUpdate(): Promise { return this.channel.call('downloadUpdate'); } - applyUpdate(): Thenable { + applyUpdate(): Promise { return this.channel.call('applyUpdate'); } - quitAndInstall(): Thenable { + quitAndInstall(): Promise { return this.channel.call('quitAndInstall'); } - isLatestVersion(): Thenable { + isLatestVersion(): Promise { return this.channel.call('isLatestVersion'); } } diff --git a/src/vs/platform/url/common/url.ts b/src/vs/platform/url/common/url.ts index f5813089729..f73971c4e00 100644 --- a/src/vs/platform/url/common/url.ts +++ b/src/vs/platform/url/common/url.ts @@ -10,12 +10,12 @@ import { IDisposable } from 'vs/base/common/lifecycle'; export const IURLService = createDecorator('urlService'); export interface IURLHandler { - handleURL(uri: URI): Thenable; + handleURL(uri: URI): Promise; } export interface IURLService { _serviceBrand: any; - open(url: URI): Thenable; + open(url: URI): Promise; registerHandler(handler: IURLHandler): IDisposable; } diff --git a/src/vs/platform/url/common/urlService.ts b/src/vs/platform/url/common/urlService.ts index d70094077b3..78ebd68a2eb 100644 --- a/src/vs/platform/url/common/urlService.ts +++ b/src/vs/platform/url/common/urlService.ts @@ -18,7 +18,7 @@ export class URLService implements IURLService { private handlers = new Set(); - open(uri: URI): Thenable { + open(uri: URI): Promise { const handlers = Array.from(this.handlers); return first(handlers.map(h => () => h.handleURL(uri)), undefined, false); } @@ -35,11 +35,11 @@ export class RelayURLService extends URLService implements IURLHandler { super(); } - open(uri: URI): Thenable { + open(uri: URI): Promise { return this.urlService.open(uri); } - handleURL(uri: URI): Thenable { + handleURL(uri: URI): Promise { return super.open(uri); } } diff --git a/src/vs/platform/url/node/urlIpc.ts b/src/vs/platform/url/node/urlIpc.ts index 40e14de4b9b..9116fb66444 100644 --- a/src/vs/platform/url/node/urlIpc.ts +++ b/src/vs/platform/url/node/urlIpc.ts @@ -17,7 +17,7 @@ export class URLServiceChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'open': return this.service.open(URI.revive(arg)); } @@ -32,7 +32,7 @@ export class URLServiceChannelClient implements IURLService { constructor(private channel: IChannel) { } - open(url: URI): Thenable { + open(url: URI): Promise { return this.channel.call('open', url.toJSON()); } @@ -49,7 +49,7 @@ export class URLHandlerChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'handleURL': return this.handler.handleURL(URI.revive(arg)); } @@ -62,7 +62,7 @@ export class URLHandlerChannelClient implements IURLHandler { constructor(private channel: IChannel) { } - handleURL(uri: URI): Thenable { + handleURL(uri: URI): Promise { return this.channel.call('handleURL', uri.toJSON()); } } diff --git a/src/vs/platform/windows/common/windows.ts b/src/vs/platform/windows/common/windows.ts index de4bfdff63e..b35ab6b018d 100644 --- a/src/vs/platform/windows/common/windows.ts +++ b/src/vs/platform/windows/common/windows.ts @@ -102,72 +102,72 @@ export interface IWindowsService { onRecentlyOpenedChange: Event; // Dialogs - pickFileFolderAndOpen(options: INativeOpenDialogOptions): Thenable; - pickFileAndOpen(options: INativeOpenDialogOptions): Thenable; - pickFolderAndOpen(options: INativeOpenDialogOptions): Thenable; - pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Thenable; - showMessageBox(windowId: number, options: MessageBoxOptions): Thenable; - showSaveDialog(windowId: number, options: SaveDialogOptions): Thenable; - showOpenDialog(windowId: number, options: OpenDialogOptions): Thenable; + pickFileFolderAndOpen(options: INativeOpenDialogOptions): Promise; + pickFileAndOpen(options: INativeOpenDialogOptions): Promise; + pickFolderAndOpen(options: INativeOpenDialogOptions): Promise; + pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Promise; + showMessageBox(windowId: number, options: MessageBoxOptions): Promise; + showSaveDialog(windowId: number, options: SaveDialogOptions): Promise; + showOpenDialog(windowId: number, options: OpenDialogOptions): Promise; - reloadWindow(windowId: number, args?: ParsedArgs): Thenable; - openDevTools(windowId: number, options?: IDevToolsOptions): Thenable; - toggleDevTools(windowId: number): Thenable; - closeWorkspace(windowId: number): Thenable; - enterWorkspace(windowId: number, path: string): Thenable; - createAndEnterWorkspace(windowId: number, folders?: IWorkspaceFolderCreationData[], path?: string): Thenable; - saveAndEnterWorkspace(windowId: number, path: string): Thenable; - toggleFullScreen(windowId: number): Thenable; - setRepresentedFilename(windowId: number, fileName: string): Thenable; - addRecentlyOpened(files: URI[]): Thenable; - removeFromRecentlyOpened(paths: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier | URI | string)[]): Thenable; - clearRecentlyOpened(): Thenable; - getRecentlyOpened(windowId: number): Thenable; - focusWindow(windowId: number): Thenable; - closeWindow(windowId: number): Thenable; - isFocused(windowId: number): Thenable; - isMaximized(windowId: number): Thenable; - maximizeWindow(windowId: number): Thenable; - unmaximizeWindow(windowId: number): Thenable; - minimizeWindow(windowId: number): Thenable; - onWindowTitleDoubleClick(windowId: number): Thenable; - setDocumentEdited(windowId: number, flag: boolean): Thenable; - quit(): Thenable; - relaunch(options: { addArgs?: string[], removeArgs?: string[] }): Thenable; + reloadWindow(windowId: number, args?: ParsedArgs): Promise; + openDevTools(windowId: number, options?: IDevToolsOptions): Promise; + toggleDevTools(windowId: number): Promise; + closeWorkspace(windowId: number): Promise; + enterWorkspace(windowId: number, path: string): Promise; + createAndEnterWorkspace(windowId: number, folders?: IWorkspaceFolderCreationData[], path?: string): Promise; + saveAndEnterWorkspace(windowId: number, path: string): Promise; + toggleFullScreen(windowId: number): Promise; + setRepresentedFilename(windowId: number, fileName: string): Promise; + addRecentlyOpened(files: URI[]): Promise; + removeFromRecentlyOpened(paths: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier | URI | string)[]): Promise; + clearRecentlyOpened(): Promise; + getRecentlyOpened(windowId: number): Promise; + focusWindow(windowId: number): Promise; + closeWindow(windowId: number): Promise; + isFocused(windowId: number): Promise; + isMaximized(windowId: number): Promise; + maximizeWindow(windowId: number): Promise; + unmaximizeWindow(windowId: number): Promise; + minimizeWindow(windowId: number): Promise; + onWindowTitleDoubleClick(windowId: number): Promise; + setDocumentEdited(windowId: number, flag: boolean): Promise; + quit(): Promise; + relaunch(options: { addArgs?: string[], removeArgs?: string[] }): Promise; // macOS Native Tabs - newWindowTab(): Thenable; - showPreviousWindowTab(): Thenable; - showNextWindowTab(): Thenable; - moveWindowTabToNewWindow(): Thenable; - mergeAllWindowTabs(): Thenable; - toggleWindowTabsBar(): Thenable; + newWindowTab(): Promise; + showPreviousWindowTab(): Promise; + showNextWindowTab(): Promise; + moveWindowTabToNewWindow(): Promise; + mergeAllWindowTabs(): Promise; + toggleWindowTabsBar(): Promise; // macOS TouchBar - updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): Thenable; + updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): Promise; // Shared process - whenSharedProcessReady(): Thenable; - toggleSharedProcess(): Thenable; + whenSharedProcessReady(): Promise; + toggleSharedProcess(): Promise; // Global methods - openWindow(windowId: number, paths: URI[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }): Thenable; - openNewWindow(options?: INewWindowOptions): Thenable; - showWindow(windowId: number): Thenable; - getWindows(): Thenable<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]>; - getWindowCount(): Thenable; - log(severity: string, ...messages: string[]): Thenable; - showItemInFolder(path: string): Thenable; - getActiveWindowId(): Thenable; + openWindow(windowId: number, paths: URI[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }): Promise; + openNewWindow(options?: INewWindowOptions): Promise; + showWindow(windowId: number): Promise; + getWindows(): Promise<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]>; + getWindowCount(): Promise; + log(severity: string, ...messages: string[]): Promise; + showItemInFolder(path: string): Promise; + getActiveWindowId(): Promise; // This needs to be handled from browser process to prevent // foreground ordering issues on Windows - openExternal(url: string): Thenable; + openExternal(url: string): Promise; // TODO: this is a bit backwards - startCrashReporter(config: CrashReporterStartOptions): Thenable; + startCrashReporter(config: CrashReporterStartOptions): Promise; - openAboutDialog(): Thenable; + openAboutDialog(): Promise; resolveProxy(windowId: number, url: string): Promise; } @@ -189,35 +189,35 @@ export interface IWindowService { getConfiguration(): IWindowConfiguration; getCurrentWindowId(): number; - pickFileFolderAndOpen(options: INativeOpenDialogOptions): Thenable; - pickFileAndOpen(options: INativeOpenDialogOptions): Thenable; - pickFolderAndOpen(options: INativeOpenDialogOptions): Thenable; - pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Thenable; - reloadWindow(args?: ParsedArgs): Thenable; - openDevTools(options?: IDevToolsOptions): Thenable; - toggleDevTools(): Thenable; - closeWorkspace(): Thenable; - updateTouchBar(items: ISerializableCommandAction[][]): Thenable; - enterWorkspace(path: string): Thenable; - createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): Thenable; - saveAndEnterWorkspace(path: string): Thenable; - toggleFullScreen(): Thenable; - setRepresentedFilename(fileName: string): Thenable; - getRecentlyOpened(): Thenable; - focusWindow(): Thenable; - closeWindow(): Thenable; - openWindow(paths: URI[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }): Thenable; - isFocused(): Thenable; - setDocumentEdited(flag: boolean): Thenable; - isMaximized(): Thenable; - maximizeWindow(): Thenable; - unmaximizeWindow(): Thenable; - minimizeWindow(): Thenable; - onWindowTitleDoubleClick(): Thenable; - show(): Thenable; - showMessageBox(options: MessageBoxOptions): Thenable; - showSaveDialog(options: SaveDialogOptions): Thenable; - showOpenDialog(options: OpenDialogOptions): Thenable; + pickFileFolderAndOpen(options: INativeOpenDialogOptions): Promise; + pickFileAndOpen(options: INativeOpenDialogOptions): Promise; + pickFolderAndOpen(options: INativeOpenDialogOptions): Promise; + pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Promise; + reloadWindow(args?: ParsedArgs): Promise; + openDevTools(options?: IDevToolsOptions): Promise; + toggleDevTools(): Promise; + closeWorkspace(): Promise; + updateTouchBar(items: ISerializableCommandAction[][]): Promise; + enterWorkspace(path: string): Promise; + createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): Promise; + saveAndEnterWorkspace(path: string): Promise; + toggleFullScreen(): Promise; + setRepresentedFilename(fileName: string): Promise; + getRecentlyOpened(): Promise; + focusWindow(): Promise; + closeWindow(): Promise; + openWindow(paths: URI[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }): Promise; + isFocused(): Promise; + setDocumentEdited(flag: boolean): Promise; + isMaximized(): Promise; + maximizeWindow(): Promise; + unmaximizeWindow(): Promise; + minimizeWindow(): Promise; + onWindowTitleDoubleClick(): Promise; + show(): Promise; + showMessageBox(options: MessageBoxOptions): Promise; + showSaveDialog(options: SaveDialogOptions): Promise; + showOpenDialog(options: OpenDialogOptions): Promise; resolveProxy(url: string): Promise; } @@ -412,7 +412,7 @@ export interface IRunActionInWindowRequest { export class ActiveWindowManager implements IDisposable { private disposables: IDisposable[] = []; - private firstActiveWindowIdPromise: Thenable | null; + private firstActiveWindowIdPromise: Promise | null; private _activeWindowId: number | undefined; constructor(@IWindowsService windowsService: IWindowsService) { @@ -431,7 +431,7 @@ export class ActiveWindowManager implements IDisposable { this._activeWindowId = windowId; } - getActiveClientId(): Thenable { + getActiveClientId(): Promise { if (this.firstActiveWindowIdPromise) { return this.firstActiveWindowIdPromise; } diff --git a/src/vs/platform/windows/electron-browser/windowService.ts b/src/vs/platform/windows/electron-browser/windowService.ts index 2420fe22136..a6a0ce76ca6 100644 --- a/src/vs/platform/windows/electron-browser/windowService.ts +++ b/src/vs/platform/windows/electron-browser/windowService.ts @@ -49,127 +49,127 @@ export class WindowService extends Disposable implements IWindowService { return this.configuration; } - pickFileFolderAndOpen(options: INativeOpenDialogOptions): Thenable { + pickFileFolderAndOpen(options: INativeOpenDialogOptions): Promise { options.windowId = this.windowId; return this.windowsService.pickFileFolderAndOpen(options); } - pickFileAndOpen(options: INativeOpenDialogOptions): Thenable { + pickFileAndOpen(options: INativeOpenDialogOptions): Promise { options.windowId = this.windowId; return this.windowsService.pickFileAndOpen(options); } - pickFolderAndOpen(options: INativeOpenDialogOptions): Thenable { + pickFolderAndOpen(options: INativeOpenDialogOptions): Promise { options.windowId = this.windowId; return this.windowsService.pickFolderAndOpen(options); } - pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Thenable { + pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Promise { options.windowId = this.windowId; return this.windowsService.pickWorkspaceAndOpen(options); } - reloadWindow(args?: ParsedArgs): Thenable { + reloadWindow(args?: ParsedArgs): Promise { return this.windowsService.reloadWindow(this.windowId, args); } - openDevTools(options?: IDevToolsOptions): Thenable { + openDevTools(options?: IDevToolsOptions): Promise { return this.windowsService.openDevTools(this.windowId, options); } - toggleDevTools(): Thenable { + toggleDevTools(): Promise { return this.windowsService.toggleDevTools(this.windowId); } - closeWorkspace(): Thenable { + closeWorkspace(): Promise { return this.windowsService.closeWorkspace(this.windowId); } - enterWorkspace(path: string): Thenable { + enterWorkspace(path: string): Promise { return this.windowsService.enterWorkspace(this.windowId, path); } - createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): Thenable { + createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): Promise { return this.windowsService.createAndEnterWorkspace(this.windowId, folders, path); } - saveAndEnterWorkspace(path: string): Thenable { + saveAndEnterWorkspace(path: string): Promise { return this.windowsService.saveAndEnterWorkspace(this.windowId, path); } - openWindow(paths: URI[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }): Thenable { + openWindow(paths: URI[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }): Promise { return this.windowsService.openWindow(this.windowId, paths, options); } - closeWindow(): Thenable { + closeWindow(): Promise { return this.windowsService.closeWindow(this.windowId); } - toggleFullScreen(): Thenable { + toggleFullScreen(): Promise { return this.windowsService.toggleFullScreen(this.windowId); } - setRepresentedFilename(fileName: string): Thenable { + setRepresentedFilename(fileName: string): Promise { return this.windowsService.setRepresentedFilename(this.windowId, fileName); } - getRecentlyOpened(): Thenable { + getRecentlyOpened(): Promise { return this.windowsService.getRecentlyOpened(this.windowId); } - focusWindow(): Thenable { + focusWindow(): Promise { return this.windowsService.focusWindow(this.windowId); } - isFocused(): Thenable { + isFocused(): Promise { return this.windowsService.isFocused(this.windowId); } - isMaximized(): Thenable { + isMaximized(): Promise { return this.windowsService.isMaximized(this.windowId); } - maximizeWindow(): Thenable { + maximizeWindow(): Promise { return this.windowsService.maximizeWindow(this.windowId); } - unmaximizeWindow(): Thenable { + unmaximizeWindow(): Promise { return this.windowsService.unmaximizeWindow(this.windowId); } - minimizeWindow(): Thenable { + minimizeWindow(): Promise { return this.windowsService.minimizeWindow(this.windowId); } - onWindowTitleDoubleClick(): Thenable { + onWindowTitleDoubleClick(): Promise { return this.windowsService.onWindowTitleDoubleClick(this.windowId); } - setDocumentEdited(flag: boolean): Thenable { + setDocumentEdited(flag: boolean): Promise { return this.windowsService.setDocumentEdited(this.windowId, flag); } - show(): Thenable { + show(): Promise { return this.windowsService.showWindow(this.windowId); } - showMessageBox(options: Electron.MessageBoxOptions): Thenable { + showMessageBox(options: Electron.MessageBoxOptions): Promise { return this.windowsService.showMessageBox(this.windowId, options); } - showSaveDialog(options: Electron.SaveDialogOptions): Thenable { + showSaveDialog(options: Electron.SaveDialogOptions): Promise { return this.windowsService.showSaveDialog(this.windowId, options); } - showOpenDialog(options: Electron.OpenDialogOptions): Thenable { + showOpenDialog(options: Electron.OpenDialogOptions): Promise { return this.windowsService.showOpenDialog(this.windowId, options); } - updateTouchBar(items: ISerializableCommandAction[][]): Thenable { + updateTouchBar(items: ISerializableCommandAction[][]): Promise { return this.windowsService.updateTouchBar(this.windowId, items); } diff --git a/src/vs/platform/windows/electron-main/windows.ts b/src/vs/platform/windows/electron-main/windows.ts index 291fdcab149..daa26cca87d 100644 --- a/src/vs/platform/windows/electron-main/windows.ts +++ b/src/vs/platform/windows/electron-main/windows.ts @@ -45,7 +45,7 @@ export interface ICodeWindow { lastFocusTime: number; isReady: boolean; - ready(): Thenable; + ready(): Promise; addTabbedWindow(window: ICodeWindow): void; @@ -96,9 +96,9 @@ export interface IWindowsMainService { // methods ready(initialUserEnv: IProcessEnvironment): void; reload(win: ICodeWindow, cli?: ParsedArgs): void; - enterWorkspace(win: ICodeWindow, path: string): Thenable; - createAndEnterWorkspace(win: ICodeWindow, folders?: IWorkspaceFolderCreationData[], path?: string): Thenable; - saveAndEnterWorkspace(win: ICodeWindow, path: string): Thenable; + enterWorkspace(win: ICodeWindow, path: string): Promise; + createAndEnterWorkspace(win: ICodeWindow, folders?: IWorkspaceFolderCreationData[], path?: string): Promise; + saveAndEnterWorkspace(win: ICodeWindow, path: string): Promise; closeWorkspace(win: ICodeWindow): void; open(openConfig: IOpenConfiguration): ICodeWindow[]; openExtensionDevelopmentHostWindow(openConfig: IOpenConfiguration): void; @@ -106,12 +106,12 @@ export interface IWindowsMainService { pickFolderAndOpen(options: INativeOpenDialogOptions): void; pickFileAndOpen(options: INativeOpenDialogOptions): void; pickWorkspaceAndOpen(options: INativeOpenDialogOptions): void; - showMessageBox(options: Electron.MessageBoxOptions, win?: ICodeWindow): Thenable; - showSaveDialog(options: Electron.SaveDialogOptions, win?: ICodeWindow): Thenable; - showOpenDialog(options: Electron.OpenDialogOptions, win?: ICodeWindow): Thenable; + showMessageBox(options: Electron.MessageBoxOptions, win?: ICodeWindow): Promise; + showSaveDialog(options: Electron.SaveDialogOptions, win?: ICodeWindow): Promise; + showOpenDialog(options: Electron.OpenDialogOptions, win?: ICodeWindow): Promise; focusLastActive(cli: ParsedArgs, context: OpenContext): ICodeWindow; getLastActiveWindow(): ICodeWindow; - waitForWindowCloseOrLoad(windowId: number): Thenable; + waitForWindowCloseOrLoad(windowId: number): Promise; openNewWindow(context: OpenContext, options?: INewWindowOptions): ICodeWindow[]; openNewTabbedWindow(context: OpenContext): ICodeWindow[]; sendToFocused(channel: string, ...args: any[]): void; @@ -141,6 +141,6 @@ export interface IOpenConfiguration { } export interface ISharedProcess { - whenReady(): Thenable; + whenReady(): Promise; toggle(): void; } \ No newline at end of file diff --git a/src/vs/platform/windows/node/windowsIpc.ts b/src/vs/platform/windows/node/windowsIpc.ts index ecacad043a0..d6d16c4f7ae 100644 --- a/src/vs/platform/windows/node/windowsIpc.ts +++ b/src/vs/platform/windows/node/windowsIpc.ts @@ -43,7 +43,7 @@ export class WindowsChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'pickFileFolderAndOpen': return this.service.pickFileFolderAndOpen(arg); case 'pickFileAndOpen': return this.service.pickFileAndOpen(arg); @@ -135,83 +135,83 @@ export class WindowsChannelClient implements IWindowsService { get onWindowUnmaximize(): Event { return this.channel.listen('onWindowUnmaximize'); } get onRecentlyOpenedChange(): Event { return this.channel.listen('onRecentlyOpenedChange'); } - pickFileFolderAndOpen(options: INativeOpenDialogOptions): Thenable { + pickFileFolderAndOpen(options: INativeOpenDialogOptions): Promise { return this.channel.call('pickFileFolderAndOpen', options); } - pickFileAndOpen(options: INativeOpenDialogOptions): Thenable { + pickFileAndOpen(options: INativeOpenDialogOptions): Promise { return this.channel.call('pickFileAndOpen', options); } - pickFolderAndOpen(options: INativeOpenDialogOptions): Thenable { + pickFolderAndOpen(options: INativeOpenDialogOptions): Promise { return this.channel.call('pickFolderAndOpen', options); } - pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Thenable { + pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Promise { return this.channel.call('pickWorkspaceAndOpen', options); } - showMessageBox(windowId: number, options: MessageBoxOptions): Thenable { + showMessageBox(windowId: number, options: MessageBoxOptions): Promise { return this.channel.call('showMessageBox', [windowId, options]); } - showSaveDialog(windowId: number, options: SaveDialogOptions): Thenable { + showSaveDialog(windowId: number, options: SaveDialogOptions): Promise { return this.channel.call('showSaveDialog', [windowId, options]); } - showOpenDialog(windowId: number, options: OpenDialogOptions): Thenable { + showOpenDialog(windowId: number, options: OpenDialogOptions): Promise { return this.channel.call('showOpenDialog', [windowId, options]); } - reloadWindow(windowId: number, args?: ParsedArgs): Thenable { + reloadWindow(windowId: number, args?: ParsedArgs): Promise { return this.channel.call('reloadWindow', [windowId, args]); } - openDevTools(windowId: number, options?: IDevToolsOptions): Thenable { + openDevTools(windowId: number, options?: IDevToolsOptions): Promise { return this.channel.call('openDevTools', [windowId, options]); } - toggleDevTools(windowId: number): Thenable { + toggleDevTools(windowId: number): Promise { return this.channel.call('toggleDevTools', windowId); } - closeWorkspace(windowId: number): Thenable { + closeWorkspace(windowId: number): Promise { return this.channel.call('closeWorkspace', windowId); } - enterWorkspace(windowId: number, path: string): Thenable { + enterWorkspace(windowId: number, path: string): Promise { return this.channel.call('enterWorkspace', [windowId, path]); } - createAndEnterWorkspace(windowId: number, folders?: IWorkspaceFolderCreationData[], path?: string): Thenable { + createAndEnterWorkspace(windowId: number, folders?: IWorkspaceFolderCreationData[], path?: string): Promise { return this.channel.call('createAndEnterWorkspace', [windowId, folders, path]); } - saveAndEnterWorkspace(windowId: number, path: string): Thenable { + saveAndEnterWorkspace(windowId: number, path: string): Promise { return this.channel.call('saveAndEnterWorkspace', [windowId, path]); } - toggleFullScreen(windowId: number): Thenable { + toggleFullScreen(windowId: number): Promise { return this.channel.call('toggleFullScreen', windowId); } - setRepresentedFilename(windowId: number, fileName: string): Thenable { + setRepresentedFilename(windowId: number, fileName: string): Promise { return this.channel.call('setRepresentedFilename', [windowId, fileName]); } - addRecentlyOpened(files: URI[]): Thenable { + addRecentlyOpened(files: URI[]): Promise { return this.channel.call('addRecentlyOpened', files); } - removeFromRecentlyOpened(paths: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier | URI)[]): Thenable { + removeFromRecentlyOpened(paths: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier | URI)[]): Promise { return this.channel.call('removeFromRecentlyOpened', paths); } - clearRecentlyOpened(): Thenable { + clearRecentlyOpened(): Promise { return this.channel.call('clearRecentlyOpened'); } - getRecentlyOpened(windowId: number): Thenable { + getRecentlyOpened(windowId: number): Promise { return this.channel.call('getRecentlyOpened', windowId) .then((recentlyOpened: IRecentlyOpened) => { recentlyOpened.workspaces = recentlyOpened.workspaces.map(workspace => isWorkspaceIdentifier(workspace) ? workspace : URI.revive(workspace)); @@ -220,127 +220,127 @@ export class WindowsChannelClient implements IWindowsService { }); } - newWindowTab(): Thenable { + newWindowTab(): Promise { return this.channel.call('newWindowTab'); } - showPreviousWindowTab(): Thenable { + showPreviousWindowTab(): Promise { return this.channel.call('showPreviousWindowTab'); } - showNextWindowTab(): Thenable { + showNextWindowTab(): Promise { return this.channel.call('showNextWindowTab'); } - moveWindowTabToNewWindow(): Thenable { + moveWindowTabToNewWindow(): Promise { return this.channel.call('moveWindowTabToNewWindow'); } - mergeAllWindowTabs(): Thenable { + mergeAllWindowTabs(): Promise { return this.channel.call('mergeAllWindowTabs'); } - toggleWindowTabsBar(): Thenable { + toggleWindowTabsBar(): Promise { return this.channel.call('toggleWindowTabsBar'); } - focusWindow(windowId: number): Thenable { + focusWindow(windowId: number): Promise { return this.channel.call('focusWindow', windowId); } - closeWindow(windowId: number): Thenable { + closeWindow(windowId: number): Promise { return this.channel.call('closeWindow', windowId); } - isFocused(windowId: number): Thenable { + isFocused(windowId: number): Promise { return this.channel.call('isFocused', windowId); } - isMaximized(windowId: number): Thenable { + isMaximized(windowId: number): Promise { return this.channel.call('isMaximized', windowId); } - maximizeWindow(windowId: number): Thenable { + maximizeWindow(windowId: number): Promise { return this.channel.call('maximizeWindow', windowId); } - unmaximizeWindow(windowId: number): Thenable { + unmaximizeWindow(windowId: number): Promise { return this.channel.call('unmaximizeWindow', windowId); } - minimizeWindow(windowId: number): Thenable { + minimizeWindow(windowId: number): Promise { return this.channel.call('minimizeWindow', windowId); } - onWindowTitleDoubleClick(windowId: number): Thenable { + onWindowTitleDoubleClick(windowId: number): Promise { return this.channel.call('onWindowTitleDoubleClick', windowId); } - setDocumentEdited(windowId: number, flag: boolean): Thenable { + setDocumentEdited(windowId: number, flag: boolean): Promise { return this.channel.call('setDocumentEdited', [windowId, flag]); } - quit(): Thenable { + quit(): Promise { return this.channel.call('quit'); } - relaunch(options: { addArgs?: string[], removeArgs?: string[] }): Thenable { + relaunch(options: { addArgs?: string[], removeArgs?: string[] }): Promise { return this.channel.call('relaunch', [options]); } - whenSharedProcessReady(): Thenable { + whenSharedProcessReady(): Promise { return this.channel.call('whenSharedProcessReady'); } - toggleSharedProcess(): Thenable { + toggleSharedProcess(): Promise { return this.channel.call('toggleSharedProcess'); } - openWindow(windowId: number, paths: URI[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }): Thenable { + openWindow(windowId: number, paths: URI[], options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean, args?: ParsedArgs }): Promise { return this.channel.call('openWindow', [windowId, paths, options]); } - openNewWindow(options?: INewWindowOptions): Thenable { + openNewWindow(options?: INewWindowOptions): Promise { return this.channel.call('openNewWindow', options); } - showWindow(windowId: number): Thenable { + showWindow(windowId: number): Promise { return this.channel.call('showWindow', windowId); } - getWindows(): Thenable<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]> { + getWindows(): Promise<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]> { return this.channel.call<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]>('getWindows').then(result => { result.forEach(win => win.folderUri = win.folderUri ? URI.revive(win.folderUri) : win.folderUri); return result; }); } - getWindowCount(): Thenable { + getWindowCount(): Promise { return this.channel.call('getWindowCount'); } - log(severity: string, ...messages: string[]): Thenable { + log(severity: string, ...messages: string[]): Promise { return this.channel.call('log', [severity, messages]); } - showItemInFolder(path: string): Thenable { + showItemInFolder(path: string): Promise { return this.channel.call('showItemInFolder', path); } - getActiveWindowId(): Thenable { + getActiveWindowId(): Promise { return this.channel.call('getActiveWindowId'); } - openExternal(url: string): Thenable { + openExternal(url: string): Promise { return this.channel.call('openExternal', url); } - startCrashReporter(config: CrashReporterStartOptions): Thenable { + startCrashReporter(config: CrashReporterStartOptions): Promise { return this.channel.call('startCrashReporter', config); } - updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): Thenable { + updateTouchBar(windowId: number, items: ISerializableCommandAction[][]): Promise { return this.channel.call('updateTouchBar', [windowId, items]); } - openAboutDialog(): Thenable { + openAboutDialog(): Promise { return this.channel.call('openAboutDialog'); } diff --git a/src/vs/platform/workspaces/common/workspaces.ts b/src/vs/platform/workspaces/common/workspaces.ts index d7617021103..d913586c132 100644 --- a/src/vs/platform/workspaces/common/workspaces.ts +++ b/src/vs/platform/workspaces/common/workspaces.ts @@ -80,11 +80,11 @@ export interface IWorkspacesMainService extends IWorkspacesService { onWorkspaceSaved: Event; onUntitledWorkspaceDeleted: Event; - saveWorkspace(workspace: IWorkspaceIdentifier, target: string): Thenable; + saveWorkspace(workspace: IWorkspaceIdentifier, target: string): Promise; createWorkspaceSync(folders?: IWorkspaceFolderCreationData[]): IWorkspaceIdentifier; - resolveWorkspace(path: string): Thenable; + resolveWorkspace(path: string): Promise; resolveWorkspaceSync(path: string): IResolvedWorkspace | null; @@ -100,7 +100,7 @@ export interface IWorkspacesMainService extends IWorkspacesService { export interface IWorkspacesService { _serviceBrand: any; - createWorkspace(folders?: IWorkspaceFolderCreationData[]): Thenable; + createWorkspace(folders?: IWorkspaceFolderCreationData[]): Promise; } export function isSingleFolderWorkspaceIdentifier(obj: any): obj is ISingleFolderWorkspaceIdentifier { diff --git a/src/vs/platform/workspaces/electron-main/workspacesMainService.ts b/src/vs/platform/workspaces/electron-main/workspacesMainService.ts index 84d82b8529f..c91d7504af4 100644 --- a/src/vs/platform/workspaces/electron-main/workspacesMainService.ts +++ b/src/vs/platform/workspaces/electron-main/workspacesMainService.ts @@ -49,7 +49,7 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain this.workspacesHome = environmentService.workspacesHome; } - resolveWorkspace(path: string): Thenable { + resolveWorkspace(path: string): Promise { if (!this.isWorkspacePath(path)) { return Promise.resolve(null); // does not look like a valid workspace config file } @@ -114,7 +114,7 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain return isParent(path, this.environmentService.workspacesHome, !isLinux /* ignore case */); } - createWorkspace(folders?: IWorkspaceFolderCreationData[]): Thenable { + createWorkspace(folders?: IWorkspaceFolderCreationData[]): Promise { const { workspace, configParent, storedWorkspace } = this.createUntitledWorkspace(folders); return mkdirp(configParent).then(() => { @@ -186,7 +186,7 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain return this.isInsideWorkspacesHome(workspace.configPath); } - saveWorkspace(workspace: IWorkspaceIdentifier, targetConfigPath: string): Thenable { + saveWorkspace(workspace: IWorkspaceIdentifier, targetConfigPath: string): Promise { // Return early if target is same as source if (isEqual(workspace.configPath, targetConfigPath, !isLinux)) { diff --git a/src/vs/platform/workspaces/node/workspacesIpc.ts b/src/vs/platform/workspaces/node/workspacesIpc.ts index b59519ccaa0..bfd39ea3e0c 100644 --- a/src/vs/platform/workspaces/node/workspacesIpc.ts +++ b/src/vs/platform/workspaces/node/workspacesIpc.ts @@ -16,7 +16,7 @@ export class WorkspacesChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'createWorkspace': { const rawFolders: IWorkspaceFolderCreationData[] = arg; @@ -44,7 +44,7 @@ export class WorkspacesChannelClient implements IWorkspacesService { constructor(private channel: IChannel) { } - createWorkspace(folders?: IWorkspaceFolderCreationData[]): Thenable { + createWorkspace(folders?: IWorkspaceFolderCreationData[]): Promise { return this.channel.call('createWorkspace', folders); } } diff --git a/src/vs/workbench/api/electron-browser/mainThreadCommands.ts b/src/vs/workbench/api/electron-browser/mainThreadCommands.ts index 4753577d61c..ebfc4171ae3 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadCommands.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadCommands.ts @@ -32,7 +32,7 @@ export class MainThreadCommands implements MainThreadCommandsShape { this._generateCommandsDocumentationRegistration.dispose(); } - private _generateCommandsDocumentation(): Thenable { + private _generateCommandsDocumentation(): Promise { return this._proxy.$getContributedCommandHandlerDescriptions().then(result => { // add local commands const commands = CommandsRegistry.getCommands(); @@ -70,14 +70,14 @@ export class MainThreadCommands implements MainThreadCommandsShape { } } - $executeCommand(id: string, args: any[]): Thenable { + $executeCommand(id: string, args: any[]): Promise { for (let i = 0; i < args.length; i++) { args[i] = revive(args[i], 0); } return this._commandService.executeCommand(id, ...args); } - $getCommands(): Thenable { + $getCommands(): Promise { return Promise.resolve(Object.keys(CommandsRegistry.getCommands())); } } diff --git a/src/vs/workbench/api/electron-browser/mainThreadConfiguration.ts b/src/vs/workbench/api/electron-browser/mainThreadConfiguration.ts index 1656cb5c4de..171b7217a89 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadConfiguration.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadConfiguration.ts @@ -34,12 +34,12 @@ export class MainThreadConfiguration implements MainThreadConfigurationShape { this._configurationListener.dispose(); } - $updateConfigurationOption(target: ConfigurationTarget, key: string, value: any, resourceUriComponenets: UriComponents): Thenable { + $updateConfigurationOption(target: ConfigurationTarget, key: string, value: any, resourceUriComponenets: UriComponents): Promise { const resource = resourceUriComponenets ? URI.revive(resourceUriComponenets) : null; return this.writeConfiguration(target, key, value, resource); } - $removeConfigurationOption(target: ConfigurationTarget, key: string, resourceUriComponenets: UriComponents): Thenable { + $removeConfigurationOption(target: ConfigurationTarget, key: string, resourceUriComponenets: UriComponents): Promise { const resource = resourceUriComponenets ? URI.revive(resourceUriComponenets) : null; return this.writeConfiguration(target, key, undefined, resource); } diff --git a/src/vs/workbench/api/electron-browser/mainThreadDebugService.ts b/src/vs/workbench/api/electron-browser/mainThreadDebugService.ts index 3cfcb747fdc..f6a450ccdec 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadDebugService.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadDebugService.ts @@ -121,7 +121,7 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape, IDeb } } - public $registerBreakpoints(DTOs: (ISourceMultiBreakpointDto | IFunctionBreakpointDto)[]): Thenable { + public $registerBreakpoints(DTOs: (ISourceMultiBreakpointDto | IFunctionBreakpointDto)[]): Promise { for (let dto of DTOs) { if (dto.type === 'sourceMulti') { @@ -144,14 +144,14 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape, IDeb return void 0; } - public $unregisterBreakpoints(breakpointIds: string[], functionBreakpointIds: string[]): Thenable { + public $unregisterBreakpoints(breakpointIds: string[], functionBreakpointIds: string[]): Promise { breakpointIds.forEach(id => this.debugService.removeBreakpoints(id)); functionBreakpointIds.forEach(id => this.debugService.removeFunctionBreakpoints(id)); return void 0; } - public $registerDebugConfigurationProvider(debugType: string, hasProvide: boolean, hasResolve: boolean, hasProvideDebugAdapter: boolean, hasTracker: boolean, handle: number): Thenable { + public $registerDebugConfigurationProvider(debugType: string, hasProvide: boolean, hasResolve: boolean, hasProvideDebugAdapter: boolean, hasTracker: boolean, handle: number): Promise { const provider = { type: debugType, @@ -186,7 +186,7 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape, IDeb } } - public $registerDebugAdapterDescriptorFactory(debugType: string, handle: number): Thenable { + public $registerDebugAdapterDescriptorFactory(debugType: string, handle: number): Promise { const provider = { type: debugType, @@ -226,7 +226,7 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape, IDeb } } - public $startDebugging(_folderUri: uri | undefined, nameOrConfiguration: string | IConfig): Thenable { + public $startDebugging(_folderUri: uri | undefined, nameOrConfiguration: string | IConfig): Promise { const folderUri = _folderUri ? uri.revive(_folderUri) : undefined; const launch = this.debugService.getConfigurationManager().getLaunch(folderUri); return this.debugService.startDebugging(launch, nameOrConfiguration).then(success => { @@ -236,7 +236,7 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape, IDeb }); } - public $customDebugAdapterRequest(sessionId: DebugSessionUUID, request: string, args: any): Thenable { + public $customDebugAdapterRequest(sessionId: DebugSessionUUID, request: string, args: any): Promise { const session = this.debugService.getModel().getSessions(true).filter(s => s.getId() === sessionId).pop(); if (session) { return session.customRequest(request, args).then(response => { diff --git a/src/vs/workbench/api/electron-browser/mainThreadDocumentContentProviders.ts b/src/vs/workbench/api/electron-browser/mainThreadDocumentContentProviders.ts index 82419e929e9..45150b6a9ca 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadDocumentContentProviders.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadDocumentContentProviders.ts @@ -41,7 +41,7 @@ export class MainThreadDocumentContentProviders implements MainThreadDocumentCon $registerTextContentProvider(handle: number, scheme: string): void { const registration = this._textModelResolverService.registerTextModelContentProvider(scheme, { - provideTextContent: (uri: URI): Thenable => { + provideTextContent: (uri: URI): Promise => { return this._proxy.$provideTextDocumentContent(handle, uri).then(value => { if (typeof value === 'string') { const firstLineText = value.substr(0, 1 + value.search(/\r?\n/)); diff --git a/src/vs/workbench/api/electron-browser/mainThreadDocuments.ts b/src/vs/workbench/api/electron-browser/mainThreadDocuments.ts index 901457479b8..99fc3ac120a 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadDocuments.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadDocuments.ts @@ -167,17 +167,17 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { // --- from extension host process - $trySaveDocument(uri: UriComponents): Thenable { + $trySaveDocument(uri: UriComponents): Promise { return this._textFileService.save(URI.revive(uri)); } - $tryOpenDocument(_uri: UriComponents): Thenable { + $tryOpenDocument(_uri: UriComponents): Promise { const uri = URI.revive(_uri); if (!uri.scheme || !(uri.fsPath || uri.authority)) { return Promise.reject(new Error(`Invalid uri. Scheme and authority or path must be set.`)); } - let promise: Thenable; + let promise: Promise; switch (uri.scheme) { case Schemas.untitled: promise = this._handleUnititledScheme(uri); @@ -201,11 +201,11 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { }); } - $tryCreateDocument(options?: { language?: string, content?: string }): Thenable { + $tryCreateDocument(options?: { language?: string, content?: string }): Promise { return this._doCreateUntitled(void 0, options ? options.language : void 0, options ? options.content : void 0); } - private _handleAsResourceInput(uri: URI): Thenable { + private _handleAsResourceInput(uri: URI): Promise { return this._textModelResolverService.createModelReference(uri).then(ref => { this._modelReferenceCollection.add(ref); const result = !!ref.object; @@ -213,7 +213,7 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { }); } - private _handleUnititledScheme(uri: URI): Thenable { + private _handleUnititledScheme(uri: URI): Promise { let asFileUri = uri.with({ scheme: Schemas.file }); return this._fileService.resolveFile(asFileUri).then(stats => { // don't create a new file ontop of an existing file @@ -223,7 +223,7 @@ export class MainThreadDocuments implements MainThreadDocumentsShape { }); } - private _doCreateUntitled(resource?: URI, modeId?: string, initialValue?: string): Thenable { + private _doCreateUntitled(resource?: URI, modeId?: string, initialValue?: string): Promise { return this._untitledEditorService.loadOrCreate({ resource, modeId, diff --git a/src/vs/workbench/api/electron-browser/mainThreadEditors.ts b/src/vs/workbench/api/electron-browser/mainThreadEditors.ts index dc9f78727e7..d57fe21bbbf 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadEditors.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadEditors.ts @@ -114,7 +114,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { // --- from extension host process - $tryShowTextDocument(resource: UriComponents, options: ITextDocumentShowOptions): Thenable { + $tryShowTextDocument(resource: UriComponents, options: ITextDocumentShowOptions): Promise { const uri = URI.revive(resource); const editorOptions: ITextEditorOptions = { @@ -136,7 +136,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { }); } - $tryShowEditor(id: string, position?: EditorViewColumn): Thenable { + $tryShowEditor(id: string, position?: EditorViewColumn): Promise { let mainThreadEditor = this._documentsAndEditors.getEditor(id); if (mainThreadEditor) { let model = mainThreadEditor.getModel(); @@ -148,7 +148,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { return undefined; } - $tryHideEditor(id: string): Thenable { + $tryHideEditor(id: string): Promise { let mainThreadEditor = this._documentsAndEditors.getEditor(id); if (mainThreadEditor) { let editors = this._editorService.visibleControls; @@ -161,7 +161,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { return undefined; } - $trySetSelections(id: string, selections: ISelection[]): Thenable { + $trySetSelections(id: string, selections: ISelection[]): Promise { if (!this._documentsAndEditors.getEditor(id)) { return Promise.reject(disposed(`TextEditor(${id})`)); } @@ -169,7 +169,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { return Promise.resolve(null); } - $trySetDecorations(id: string, key: string, ranges: IDecorationOptions[]): Thenable { + $trySetDecorations(id: string, key: string, ranges: IDecorationOptions[]): Promise { key = `${this._instanceId}-${key}`; if (!this._documentsAndEditors.getEditor(id)) { return Promise.reject(disposed(`TextEditor(${id})`)); @@ -178,7 +178,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { return Promise.resolve(null); } - $trySetDecorationsFast(id: string, key: string, ranges: number[]): Thenable { + $trySetDecorationsFast(id: string, key: string, ranges: number[]): Promise { key = `${this._instanceId}-${key}`; if (!this._documentsAndEditors.getEditor(id)) { return Promise.reject(disposed(`TextEditor(${id})`)); @@ -187,7 +187,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { return Promise.resolve(null); } - $tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): Thenable { + $tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): Promise { if (!this._documentsAndEditors.getEditor(id)) { return Promise.reject(disposed(`TextEditor(${id})`)); } @@ -195,7 +195,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { return undefined; } - $trySetOptions(id: string, options: ITextEditorConfigurationUpdate): Thenable { + $trySetOptions(id: string, options: ITextEditorConfigurationUpdate): Promise { if (!this._documentsAndEditors.getEditor(id)) { return Promise.reject(disposed(`TextEditor(${id})`)); } @@ -203,19 +203,19 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { return Promise.resolve(null); } - $tryApplyEdits(id: string, modelVersionId: number, edits: ISingleEditOperation[], opts: IApplyEditsOptions): Thenable { + $tryApplyEdits(id: string, modelVersionId: number, edits: ISingleEditOperation[], opts: IApplyEditsOptions): Promise { if (!this._documentsAndEditors.getEditor(id)) { return Promise.reject(disposed(`TextEditor(${id})`)); } return Promise.resolve(this._documentsAndEditors.getEditor(id).applyEdits(modelVersionId, edits, opts)); } - $tryApplyWorkspaceEdit(dto: WorkspaceEditDto): Thenable { + $tryApplyWorkspaceEdit(dto: WorkspaceEditDto): Promise { const { edits } = reviveWorkspaceEditDto(dto); return this._bulkEditService.apply({ edits }, undefined).then(() => true, err => false); } - $tryInsertSnippet(id: string, template: string, ranges: IRange[], opts: IUndoStopOptions): Thenable { + $tryInsertSnippet(id: string, template: string, ranges: IRange[], opts: IUndoStopOptions): Promise { if (!this._documentsAndEditors.getEditor(id)) { return Promise.reject(disposed(`TextEditor(${id})`)); } @@ -234,7 +234,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { this._codeEditorService.removeDecorationType(key); } - $getDiffInformation(id: string): Thenable { + $getDiffInformation(id: string): Promise { const editor = this._documentsAndEditors.getEditor(id); if (!editor) { diff --git a/src/vs/workbench/api/electron-browser/mainThreadFileSystem.ts b/src/vs/workbench/api/electron-browser/mainThreadFileSystem.ts index ab621c9f767..277b711619d 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadFileSystem.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadFileSystem.ts @@ -96,53 +96,53 @@ class RemoteFileSystemProvider implements IFileSystemProvider { return Buffer.isBuffer(data) ? data : Buffer.from(data.buffer, data.byteOffset, data.byteLength); } - stat(resource: URI): Thenable { + stat(resource: URI): Promise { return this._proxy.$stat(this._handle, resource).then(undefined, err => { throw err; }); } - readFile(resource: URI): Thenable { + readFile(resource: URI): Promise { return this._proxy.$readFile(this._handle, resource); } - writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Thenable { + writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise { return this._proxy.$writeFile(this._handle, resource, RemoteFileSystemProvider._asBuffer(content), opts); } - delete(resource: URI, opts: FileDeleteOptions): Thenable { + delete(resource: URI, opts: FileDeleteOptions): Promise { return this._proxy.$delete(this._handle, resource, opts); } - mkdir(resource: URI): Thenable { + mkdir(resource: URI): Promise { return this._proxy.$mkdir(this._handle, resource); } - readdir(resource: URI): Thenable<[string, FileType][]> { + readdir(resource: URI): Promise<[string, FileType][]> { return this._proxy.$readdir(this._handle, resource); } - rename(resource: URI, target: URI, opts: FileOverwriteOptions): Thenable { + rename(resource: URI, target: URI, opts: FileOverwriteOptions): Promise { return this._proxy.$rename(this._handle, resource, target, opts); } - copy(resource: URI, target: URI, opts: FileOverwriteOptions): Thenable { + copy(resource: URI, target: URI, opts: FileOverwriteOptions): Promise { return this._proxy.$copy(this._handle, resource, target, opts); } - open(resource: URI): Thenable { + open(resource: URI): Promise { return this._proxy.$open(this._handle, resource); } - close(fd: number): Thenable { + close(fd: number): Promise { return this._proxy.$close(this._handle, fd); } - read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Thenable { + read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise { return this._proxy.$read(this._handle, fd, pos, RemoteFileSystemProvider._asBuffer(data), offset, length); } - write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Thenable { + write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise { return this._proxy.$write(this._handle, fd, pos, RemoteFileSystemProvider._asBuffer(data), offset, length); } } diff --git a/src/vs/workbench/api/electron-browser/mainThreadHeapService.ts b/src/vs/workbench/api/electron-browser/mainThreadHeapService.ts index e3efb95b75c..33d17085fc9 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadHeapService.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadHeapService.ts @@ -23,7 +23,7 @@ export interface IHeapService { * Track gc-collection for all new objects that * have the $ident-value set. */ - trackRecursive(obj: T | Thenable): Thenable; + trackRecursive(obj: T | Promise): Promise; } export class HeapService implements IHeapService { @@ -45,7 +45,7 @@ export class HeapService implements IHeapService { clearInterval(this._consumeHandle); } - trackRecursive(obj: T | Thenable): Thenable { + trackRecursive(obj: T | Promise): Promise { if (isThenable(obj)) { return obj.then(result => this.trackRecursive(result)); } else { diff --git a/src/vs/workbench/api/electron-browser/mainThreadLanguageFeatures.ts b/src/vs/workbench/api/electron-browser/mainThreadLanguageFeatures.ts index a78ff21c63a..86411c0fc92 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadLanguageFeatures.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadLanguageFeatures.ts @@ -111,7 +111,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerOutlineSupport(handle: number, selector: ISerializedDocumentFilter[], displayName: string): void { this._registrations[handle] = modes.DocumentSymbolProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { displayName, - provideDocumentSymbols: (model: ITextModel, token: CancellationToken): Thenable => { + provideDocumentSymbols: (model: ITextModel, token: CancellationToken): Promise => { return this._proxy.$provideDocumentSymbols(handle, model.uri, token); } }); @@ -122,10 +122,10 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerCodeLensSupport(handle: number, selector: ISerializedDocumentFilter[], eventHandle: number): void { const provider = { - provideCodeLenses: (model: ITextModel, token: CancellationToken): modes.ICodeLensSymbol[] | Thenable => { + provideCodeLenses: (model: ITextModel, token: CancellationToken): modes.ICodeLensSymbol[] | Promise => { return this._heapService.trackRecursive(this._proxy.$provideCodeLenses(handle, model.uri, token)); }, - resolveCodeLens: (model: ITextModel, codeLens: modes.ICodeLensSymbol, token: CancellationToken): modes.ICodeLensSymbol | Thenable => { + resolveCodeLens: (model: ITextModel, codeLens: modes.ICodeLensSymbol, token: CancellationToken): modes.ICodeLensSymbol | Promise => { return this._heapService.trackRecursive(this._proxy.$resolveCodeLens(handle, model.uri, codeLens, token)); } }; @@ -150,7 +150,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerDefinitionSupport(handle: number, selector: ISerializedDocumentFilter[]): void { this._registrations[handle] = modes.DefinitionProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideDefinition: (model, position, token): Thenable => { + provideDefinition: (model, position, token): Promise => { return this._proxy.$provideDefinition(handle, model.uri, position, token).then(MainThreadLanguageFeatures._reviveDefinitionLinkDto); } }); @@ -166,7 +166,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerImplementationSupport(handle: number, selector: ISerializedDocumentFilter[]): void { this._registrations[handle] = modes.ImplementationProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideImplementation: (model, position, token): Thenable => { + provideImplementation: (model, position, token): Promise => { return this._proxy.$provideImplementation(handle, model.uri, position, token).then(MainThreadLanguageFeatures._reviveDefinitionLinkDto); } }); @@ -174,7 +174,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerTypeDefinitionSupport(handle: number, selector: ISerializedDocumentFilter[]): void { this._registrations[handle] = modes.TypeDefinitionProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideTypeDefinition: (model, position, token): Thenable => { + provideTypeDefinition: (model, position, token): Promise => { return this._proxy.$provideTypeDefinition(handle, model.uri, position, token).then(MainThreadLanguageFeatures._reviveDefinitionLinkDto); } }); @@ -184,7 +184,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerHoverProvider(handle: number, selector: ISerializedDocumentFilter[]): void { this._registrations[handle] = modes.HoverProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideHover: (model: ITextModel, position: EditorPosition, token: CancellationToken): Thenable => { + provideHover: (model: ITextModel, position: EditorPosition, token: CancellationToken): Promise => { return this._proxy.$provideHover(handle, model.uri, position, token); } }); @@ -194,7 +194,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerDocumentHighlightProvider(handle: number, selector: ISerializedDocumentFilter[]): void { this._registrations[handle] = modes.DocumentHighlightProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideDocumentHighlights: (model: ITextModel, position: EditorPosition, token: CancellationToken): Thenable => { + provideDocumentHighlights: (model: ITextModel, position: EditorPosition, token: CancellationToken): Promise => { return this._proxy.$provideDocumentHighlights(handle, model.uri, position, token); } }); @@ -204,7 +204,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerReferenceSupport(handle: number, selector: ISerializedDocumentFilter[]): void { this._registrations[handle] = modes.ReferenceProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideReferences: (model: ITextModel, position: EditorPosition, context: modes.ReferenceContext, token: CancellationToken): Thenable => { + provideReferences: (model: ITextModel, position: EditorPosition, context: modes.ReferenceContext, token: CancellationToken): Promise => { return this._proxy.$provideReferences(handle, model.uri, position, context, token).then(MainThreadLanguageFeatures._reviveLocationDto); } }); @@ -214,7 +214,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerQuickFixSupport(handle: number, selector: ISerializedDocumentFilter[], providedCodeActionKinds?: string[]): void { this._registrations[handle] = modes.CodeActionProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideCodeActions: (model: ITextModel, rangeOrSelection: EditorRange | Selection, context: modes.CodeActionContext, token: CancellationToken): Thenable => { + provideCodeActions: (model: ITextModel, rangeOrSelection: EditorRange | Selection, context: modes.CodeActionContext, token: CancellationToken): Promise => { return this._heapService.trackRecursive(this._proxy.$provideCodeActions(handle, model.uri, rangeOrSelection, context, token)).then(MainThreadLanguageFeatures._reviveCodeActionDto); }, providedCodeActionKinds @@ -225,7 +225,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerDocumentFormattingSupport(handle: number, selector: ISerializedDocumentFilter[]): void { this._registrations[handle] = modes.DocumentFormattingEditProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideDocumentFormattingEdits: (model: ITextModel, options: modes.FormattingOptions, token: CancellationToken): Thenable => { + provideDocumentFormattingEdits: (model: ITextModel, options: modes.FormattingOptions, token: CancellationToken): Promise => { return this._proxy.$provideDocumentFormattingEdits(handle, model.uri, options, token); } }); @@ -233,7 +233,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerRangeFormattingSupport(handle: number, selector: ISerializedDocumentFilter[]): void { this._registrations[handle] = modes.DocumentRangeFormattingEditProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideDocumentRangeFormattingEdits: (model: ITextModel, range: EditorRange, options: modes.FormattingOptions, token: CancellationToken): Thenable => { + provideDocumentRangeFormattingEdits: (model: ITextModel, range: EditorRange, options: modes.FormattingOptions, token: CancellationToken): Promise => { return this._proxy.$provideDocumentRangeFormattingEdits(handle, model.uri, range, options, token); } }); @@ -244,7 +244,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha autoFormatTriggerCharacters, - provideOnTypeFormattingEdits: (model: ITextModel, position: EditorPosition, ch: string, options: modes.FormattingOptions, token: CancellationToken): Thenable => { + provideOnTypeFormattingEdits: (model: ITextModel, position: EditorPosition, ch: string, options: modes.FormattingOptions, token: CancellationToken): Promise => { return this._proxy.$provideOnTypeFormattingEdits(handle, model.uri, position, ch, options, token); } }); @@ -255,7 +255,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerNavigateTypeSupport(handle: number): void { let lastResultId: number; this._registrations[handle] = search.WorkspaceSymbolProviderRegistry.register({ - provideWorkspaceSymbols: (search: string, token: CancellationToken): Thenable => { + provideWorkspaceSymbols: (search: string, token: CancellationToken): Promise => { return this._proxy.$provideWorkspaceSymbols(handle, search, token).then(result => { if (lastResultId !== undefined) { this._proxy.$releaseWorkspaceSymbols(handle, lastResultId); @@ -264,7 +264,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha return MainThreadLanguageFeatures._reviveWorkspaceSymbolDto(result.symbols); }); }, - resolveWorkspaceSymbol: (item: search.IWorkspaceSymbol, token: CancellationToken): Thenable => { + resolveWorkspaceSymbol: (item: search.IWorkspaceSymbol, token: CancellationToken): Promise => { return this._proxy.$resolveWorkspaceSymbol(handle, item, token).then(i => MainThreadLanguageFeatures._reviveWorkspaceSymbolDto(i)); } }); @@ -275,11 +275,11 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerRenameSupport(handle: number, selector: ISerializedDocumentFilter[], supportResolveLocation: boolean): void { this._registrations[handle] = modes.RenameProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - provideRenameEdits: (model: ITextModel, position: EditorPosition, newName: string, token: CancellationToken): Thenable => { + provideRenameEdits: (model: ITextModel, position: EditorPosition, newName: string, token: CancellationToken): Promise => { return this._proxy.$provideRenameEdits(handle, model.uri, position, newName, token).then(reviveWorkspaceEditDto); }, resolveRenameLocation: supportResolveLocation - ? (model: ITextModel, position: EditorPosition, token: CancellationToken): Thenable => this._proxy.$resolveRenameLocation(handle, model.uri, position, token) + ? (model: ITextModel, position: EditorPosition, token: CancellationToken): Promise => this._proxy.$resolveRenameLocation(handle, model.uri, position, token) : undefined }); } @@ -289,7 +289,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha $registerSuggestSupport(handle: number, selector: ISerializedDocumentFilter[], triggerCharacters: string[], supportsResolveDetails: boolean): void { this._registrations[handle] = modes.CompletionProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { triggerCharacters, - provideCompletionItems: (model: ITextModel, position: EditorPosition, context: modes.CompletionContext, token: CancellationToken): Thenable => { + provideCompletionItems: (model: ITextModel, position: EditorPosition, context: modes.CompletionContext, token: CancellationToken): Promise => { return this._proxy.$provideCompletionItems(handle, model.uri, position, context, token).then(result => { if (!result) { return result; @@ -315,7 +315,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha signatureHelpTriggerCharacters: metadata.triggerCharacters, signatureHelpRetriggerCharacters: metadata.retriggerCharacters, - provideSignatureHelp: (model: ITextModel, position: EditorPosition, token: CancellationToken, context: modes.SignatureHelpContext): Thenable => { + provideSignatureHelp: (model: ITextModel, position: EditorPosition, token: CancellationToken, context: modes.SignatureHelpContext): Promise => { return this._proxy.$provideSignatureHelp(handle, model.uri, position, context, token); } }); diff --git a/src/vs/workbench/api/electron-browser/mainThreadLanguages.ts b/src/vs/workbench/api/electron-browser/mainThreadLanguages.ts index 6ea6e3b3524..88925d6bceb 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadLanguages.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadLanguages.ts @@ -23,11 +23,11 @@ export class MainThreadLanguages implements MainThreadLanguagesShape { // nothing } - $getLanguages(): Thenable { + $getLanguages(): Promise { return Promise.resolve(this._modeService.getRegisteredModes()); } - $changeLanguage(resource: UriComponents, languageId: string): Thenable { + $changeLanguage(resource: UriComponents, languageId: string): Promise { const uri = URI.revive(resource); let model = this._modelService.getModel(uri); if (!model) { diff --git a/src/vs/workbench/api/electron-browser/mainThreadMessageService.ts b/src/vs/workbench/api/electron-browser/mainThreadMessageService.ts index 9defb392d53..b0ef3ef24c6 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadMessageService.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadMessageService.ts @@ -31,7 +31,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape { // } - $showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Thenable { + $showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Promise { if (options.modal) { return this._showModalMessage(severity, message, commands); } else { @@ -39,7 +39,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape { } } - private _showMessage(severity: Severity, message: string, commands: { title: string; isCloseAffordance: boolean; handle: number; }[], extension: IExtensionDescription): Thenable { + private _showMessage(severity: Severity, message: string, commands: { title: string; isCloseAffordance: boolean; handle: number; }[], extension: IExtensionDescription): Promise { return new Promise(resolve => { @@ -96,7 +96,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape { }); } - private _showModalMessage(severity: Severity, message: string, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Thenable { + private _showModalMessage(severity: Severity, message: string, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Promise { let cancelId: number | undefined = void 0; const buttons = commands.map((command, index) => { diff --git a/src/vs/workbench/api/electron-browser/mainThreadOutputService.ts b/src/vs/workbench/api/electron-browser/mainThreadOutputService.ts index e7f0708c8b1..7427501f88c 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadOutputService.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadOutputService.ts @@ -45,14 +45,14 @@ export class MainThreadOutputService extends Disposable implements MainThreadOut setVisibleChannel(); } - public $register(label: string, log: boolean, file?: UriComponents): Thenable { + public $register(label: string, log: boolean, file?: UriComponents): Promise { const id = 'extension-output-#' + (MainThreadOutputService._idPool++); Registry.as(Extensions.OutputChannels).registerChannel({ id, label, file: file ? URI.revive(file) : null, log }); this._register(toDisposable(() => this.$dispose(id))); return Promise.resolve(id); } - public $append(channelId: string, value: string): Thenable { + public $append(channelId: string, value: string): Promise { const channel = this._getChannel(channelId); if (channel) { channel.append(value); @@ -60,7 +60,7 @@ export class MainThreadOutputService extends Disposable implements MainThreadOut return undefined; } - public $update(channelId: string): Thenable { + public $update(channelId: string): Promise { const channel = this._getChannel(channelId); if (channel) { channel.update(); @@ -68,7 +68,7 @@ export class MainThreadOutputService extends Disposable implements MainThreadOut return undefined; } - public $clear(channelId: string, till: number): Thenable { + public $clear(channelId: string, till: number): Promise { const channel = this._getChannel(channelId); if (channel) { channel.clear(till); @@ -76,7 +76,7 @@ export class MainThreadOutputService extends Disposable implements MainThreadOut return undefined; } - public $reveal(channelId: string, preserveFocus: boolean): Thenable { + public $reveal(channelId: string, preserveFocus: boolean): Promise { const channel = this._getChannel(channelId); if (channel) { this._outputService.showChannel(channel.id, preserveFocus); @@ -84,7 +84,7 @@ export class MainThreadOutputService extends Disposable implements MainThreadOut return undefined; } - public $close(channelId: string): Thenable { + public $close(channelId: string): Promise { const panel = this._panelService.getActivePanel(); if (panel && panel.getId() === OUTPUT_PANEL_ID && channelId === this._outputService.getActiveChannel().id) { this._partService.setPanelHidden(true); @@ -93,7 +93,7 @@ export class MainThreadOutputService extends Disposable implements MainThreadOut return undefined; } - public $dispose(channelId: string): Thenable { + public $dispose(channelId: string): Promise { const channel = this._getChannel(channelId); if (channel) { channel.dispose(); diff --git a/src/vs/workbench/api/electron-browser/mainThreadQuickOpen.ts b/src/vs/workbench/api/electron-browser/mainThreadQuickOpen.ts index 0c15505bd43..580831d2b27 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadQuickOpen.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadQuickOpen.ts @@ -36,7 +36,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { public dispose(): void { } - $show(instance: number, options: IPickOptions, token: CancellationToken): Thenable { + $show(instance: number, options: IPickOptions, token: CancellationToken): Promise { const contents = new Promise((resolve, reject) => { this._items[instance] = { resolve, reject }; }); @@ -67,7 +67,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { } } - $setItems(instance: number, items: TransferQuickPickItems[]): Thenable { + $setItems(instance: number, items: TransferQuickPickItems[]): Promise { if (this._items[instance]) { this._items[instance].resolve(items); delete this._items[instance]; @@ -75,7 +75,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { return undefined; } - $setError(instance: number, error: Error): Thenable { + $setError(instance: number, error: Error): Promise { if (this._items[instance]) { this._items[instance].reject(error); delete this._items[instance]; @@ -85,7 +85,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { // ---- input - $input(options: InputBoxOptions, validateInput: boolean, token: CancellationToken): Thenable { + $input(options: InputBoxOptions, validateInput: boolean, token: CancellationToken): Promise { const inputOptions: IInputOptions = Object.create(null); if (options) { @@ -110,7 +110,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { private sessions = new Map(); - $createOrUpdate(params: TransferQuickInput): Thenable { + $createOrUpdate(params: TransferQuickInput): Promise { const sessionId = params.id; let session = this.sessions.get(sessionId); if (!session) { @@ -202,7 +202,7 @@ export class MainThreadQuickOpen implements MainThreadQuickOpenShape { return Promise.resolve(undefined); } - $dispose(sessionId: number): Thenable { + $dispose(sessionId: number): Promise { const session = this.sessions.get(sessionId); if (session) { session.input.dispose(); diff --git a/src/vs/workbench/api/electron-browser/mainThreadSCM.ts b/src/vs/workbench/api/electron-browser/mainThreadSCM.ts index 661d290e43f..5d0e8f9cbd3 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadSCM.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadSCM.ts @@ -71,7 +71,7 @@ class MainThreadSCMResource implements ISCMResource { public decorations: ISCMResourceDecorations ) { } - open(): Thenable { + open(): Promise { return this.proxy.$executeResourceCommand(this.sourceControlHandle, this.groupHandle, this.handle); } diff --git a/src/vs/workbench/api/electron-browser/mainThreadStorage.ts b/src/vs/workbench/api/electron-browser/mainThreadStorage.ts index 4f33f7b4dad..ac9c82bb075 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadStorage.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadStorage.ts @@ -39,7 +39,7 @@ export class MainThreadStorage implements MainThreadStorageShape { this._storageListener.dispose(); } - $getValue(shared: boolean, key: string): Thenable { + $getValue(shared: boolean, key: string): Promise { if (shared) { this._sharedStorageKeysToWatch.set(key, true); } @@ -58,7 +58,7 @@ export class MainThreadStorage implements MainThreadStorageShape { return JSON.parse(jsonValue); } - $setValue(shared: boolean, key: string, value: object): Thenable { + $setValue(shared: boolean, key: string, value: object): Promise { let jsonValue: string; try { jsonValue = JSON.stringify(value); diff --git a/src/vs/workbench/api/electron-browser/mainThreadTask.ts b/src/vs/workbench/api/electron-browser/mainThreadTask.ts index c66ec8f3103..401b83e4c7d 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadTask.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadTask.ts @@ -408,7 +408,7 @@ export class MainThreadTask implements MainThreadTaskShape { this._providers.clear(); } - public $registerTaskProvider(handle: number): Thenable { + public $registerTaskProvider(handle: number): Promise { let provider: ITaskProvider = { provideTasks: (validTypes: IStringDictionary) => { return Promise.resolve(this._proxy.$provideTasks(handle, validTypes)).then((value) => { @@ -439,12 +439,12 @@ export class MainThreadTask implements MainThreadTaskShape { return Promise.resolve(undefined); } - public $unregisterTaskProvider(handle: number): Thenable { + public $unregisterTaskProvider(handle: number): Promise { this._providers.delete(handle); return Promise.resolve(undefined); } - public $fetchTasks(filter?: TaskFilterDTO): Thenable { + public $fetchTasks(filter?: TaskFilterDTO): Promise { return this._taskService.tasks(TaskFilterDTO.to(filter)).then((tasks) => { let result: TaskDTO[] = []; for (let task of tasks) { @@ -457,7 +457,7 @@ export class MainThreadTask implements MainThreadTaskShape { }); } - public $executeTask(value: TaskHandleDTO | TaskDTO): Thenable { + public $executeTask(value: TaskHandleDTO | TaskDTO): Promise { return new Promise((resolve, reject) => { if (TaskHandleDTO.is(value)) { let workspaceFolder = this._workspaceContextServer.getWorkspaceFolder(URI.revive(value.workspaceFolder)); @@ -487,7 +487,7 @@ export class MainThreadTask implements MainThreadTaskShape { }); } - public $terminateTask(id: string): Thenable { + public $terminateTask(id: string): Promise { return new Promise((resolve, reject) => { this._taskService.getActiveTasks().then((tasks) => { for (let task of tasks) { diff --git a/src/vs/workbench/api/electron-browser/mainThreadTerminalService.ts b/src/vs/workbench/api/electron-browser/mainThreadTerminalService.ts index f3dc24577ab..a391dbe8385 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadTerminalService.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadTerminalService.ts @@ -55,7 +55,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape // when the extension host process goes down ? } - public $createTerminal(name?: string, shellPath?: string, shellArgs?: string[], cwd?: string, env?: { [key: string]: string }, waitOnExit?: boolean): Thenable { + public $createTerminal(name?: string, shellPath?: string, shellArgs?: string[], cwd?: string, env?: { [key: string]: string }, waitOnExit?: boolean): Promise { const shellLaunchConfig: IShellLaunchConfig = { name, executable: shellPath, @@ -68,7 +68,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape return Promise.resolve(this.terminalService.createTerminal(shellLaunchConfig).id); } - public $createTerminalRenderer(name: string): Thenable { + public $createTerminalRenderer(name: string): Promise { const instance = this.terminalService.createTerminalRenderer(name); return Promise.resolve(instance.id); } diff --git a/src/vs/workbench/api/electron-browser/mainThreadTreeViews.ts b/src/vs/workbench/api/electron-browser/mainThreadTreeViews.ts index d798d579b02..127dd97c18f 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadTreeViews.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadTreeViews.ts @@ -41,7 +41,7 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie } } - $reveal(treeViewId: string, item: ITreeItem, parentChain: ITreeItem[], options: IRevealOptions): Thenable { + $reveal(treeViewId: string, item: ITreeItem, parentChain: ITreeItem[], options: IRevealOptions): Promise { return this.viewsService.openView(treeViewId, options.focus) .then(() => { const viewer = this.getTreeView(treeViewId); @@ -49,7 +49,7 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie }); } - $refresh(treeViewId: string, itemsToRefreshByHandle: { [treeItemHandle: string]: ITreeItem }): Thenable { + $refresh(treeViewId: string, itemsToRefreshByHandle: { [treeItemHandle: string]: ITreeItem }): Promise { const viewer = this.getTreeView(treeViewId); const dataProvider = this._dataProviders.get(treeViewId); if (viewer && dataProvider) { diff --git a/src/vs/workbench/api/electron-browser/mainThreadUrls.ts b/src/vs/workbench/api/electron-browser/mainThreadUrls.ts index ab3585598ed..d4a3f429742 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadUrls.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadUrls.ts @@ -41,7 +41,7 @@ export class MainThreadUrls implements MainThreadUrlsShape { this.proxy = context.getProxy(ExtHostContext.ExtHostUrls); } - $registerUriHandler(handle: number, extensionId: string): Thenable { + $registerUriHandler(handle: number, extensionId: string): Promise { const handler = new ExtensionUrlHandler(this.proxy, handle, extensionId); const disposable = this.urlService.registerHandler(handler); @@ -51,7 +51,7 @@ export class MainThreadUrls implements MainThreadUrlsShape { return Promise.resolve(null); } - $unregisterUriHandler(handle: number): Thenable { + $unregisterUriHandler(handle: number): Promise { const tuple = this.handlers.get(handle); if (!tuple) { diff --git a/src/vs/workbench/api/electron-browser/mainThreadWebview.ts b/src/vs/workbench/api/electron-browser/mainThreadWebview.ts index e8cad936198..054e832c0d1 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadWebview.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadWebview.ts @@ -131,7 +131,7 @@ export class MainThreadWebviews implements MainThreadWebviewsShape, WebviewReviv this._webviewService.revealWebview(webview, targetGroup || this._editorGroupService.activeGroup, showOptions.preserveFocus); } - public $postMessage(handle: WebviewPanelHandle, message: any): Thenable { + public $postMessage(handle: WebviewPanelHandle, message: any): Promise { const webview = this.getWebview(handle); const editors = this._editorService.visibleControls .filter(e => e instanceof WebviewEditor) diff --git a/src/vs/workbench/api/electron-browser/mainThreadWindow.ts b/src/vs/workbench/api/electron-browser/mainThreadWindow.ts index 7f914802597..5620a886f69 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadWindow.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadWindow.ts @@ -25,7 +25,7 @@ export class MainThreadWindow implements MainThreadWindowShape { (this.proxy.$onDidChangeWindowFocus, this.proxy, this.disposables); } - $getWindowVisibility(): Thenable { + $getWindowVisibility(): Promise { return this.windowService.isFocused(); } diff --git a/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts b/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts index a57c1ae6512..e22d865739c 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadWorkspace.ts @@ -60,7 +60,7 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape { // --- workspace --- - $updateWorkspaceFolders(extensionName: string, index: number, deleteCount: number, foldersToAdd: { uri: UriComponents, name?: string }[]): Thenable { + $updateWorkspaceFolders(extensionName: string, index: number, deleteCount: number, foldersToAdd: { uri: UriComponents, name?: string }[]): Promise { const workspaceFoldersToAdd = foldersToAdd.map(f => ({ uri: URI.revive(f.uri), name: f.name })); // Indicate in status message @@ -113,7 +113,7 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape { // --- search --- - $startFileSearch(includePattern: string, _includeFolder: UriComponents, excludePatternOrDisregardExcludes: string | false, maxResults: number, token: CancellationToken): Thenable { + $startFileSearch(includePattern: string, _includeFolder: UriComponents, excludePatternOrDisregardExcludes: string | false, maxResults: number, token: CancellationToken): Promise { const includeFolder = URI.revive(_includeFolder); const workspace = this._contextService.getWorkspace(); if (!workspace.folders.length) { @@ -174,7 +174,7 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape { }); } - $startTextSearch(pattern: IPatternInfo, options: ITextQueryBuilderOptions, requestId: number, token: CancellationToken): Thenable { + $startTextSearch(pattern: IPatternInfo, options: ITextQueryBuilderOptions, requestId: number, token: CancellationToken): Promise { const workspace = this._contextService.getWorkspace(); const folders = workspace.folders.map(folder => folder.uri); @@ -203,7 +203,7 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape { return search; } - $checkExists(includes: string[], token: CancellationToken): Thenable { + $checkExists(includes: string[], token: CancellationToken): Promise { const queryBuilder = this._instantiationService.createInstance(QueryBuilder); const folders = this._contextService.getWorkspace().folders.map(folder => folder.uri); const query = queryBuilder.file(folders, { @@ -227,13 +227,13 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape { // --- save & edit resources --- - $saveAll(includeUntitled?: boolean): Thenable { + $saveAll(includeUntitled?: boolean): Promise { return this._textFileService.saveAll(includeUntitled).then(result => { return result.results.every(each => each.success === true); }); } - $resolveProxy(url: string): Thenable { + $resolveProxy(url: string): Promise { return this._windowService.resolveProxy(url); } } diff --git a/src/vs/workbench/api/node/apiCommands.ts b/src/vs/workbench/api/node/apiCommands.ts index 85f3012a678..d45fa9d6195 100644 --- a/src/vs/workbench/api/node/apiCommands.ts +++ b/src/vs/workbench/api/node/apiCommands.ts @@ -20,7 +20,7 @@ import { EditorGroupLayout } from 'vs/workbench/services/group/common/editorGrou // ----------------------------------------------------------------- export interface ICommandsExecutor { - executeCommand(id: string, ...args: any[]): Thenable; + executeCommand(id: string, ...args: any[]): Promise; } function adjustHandler(handler: (executor: ICommandsExecutor, ...args: any[]) => any): ICommandHandler { @@ -31,7 +31,7 @@ function adjustHandler(handler: (executor: ICommandsExecutor, ...args: any[]) => export class PreviewHTMLAPICommand { public static ID = 'vscode.previewHtml'; - public static execute(executor: ICommandsExecutor, uri: URI, position?: vscode.ViewColumn, label?: string, options?: any): Thenable { + public static execute(executor: ICommandsExecutor, uri: URI, position?: vscode.ViewColumn, label?: string, options?: any): Promise { return executor.executeCommand('_workbench.previewHtml', uri, typeof position === 'number' && typeConverters.ViewColumn.from(position), @@ -44,7 +44,7 @@ CommandsRegistry.registerCommand(PreviewHTMLAPICommand.ID, adjustHandler(Preview export class OpenFolderAPICommand { public static ID = 'vscode.openFolder'; - public static execute(executor: ICommandsExecutor, uri?: URI, forceNewWindow?: boolean): Thenable { + public static execute(executor: ICommandsExecutor, uri?: URI, forceNewWindow?: boolean): Promise { if (!uri) { return executor.executeCommand('_files.pickFolderAndOpen', forceNewWindow); } @@ -62,7 +62,7 @@ CommandsRegistry.registerCommand(OpenFolderAPICommand.ID, adjustHandler(OpenFold export class DiffAPICommand { public static ID = 'vscode.diff'; - public static execute(executor: ICommandsExecutor, left: URI, right: URI, label: string, options?: vscode.TextDocumentShowOptions): Thenable { + public static execute(executor: ICommandsExecutor, left: URI, right: URI, label: string, options?: vscode.TextDocumentShowOptions): Promise { return executor.executeCommand('_workbench.diff', [ left, right, label, @@ -76,7 +76,7 @@ CommandsRegistry.registerCommand(DiffAPICommand.ID, adjustHandler(DiffAPICommand export class OpenAPICommand { public static ID = 'vscode.open'; - public static execute(executor: ICommandsExecutor, resource: URI, columnOrOptions?: vscode.ViewColumn | vscode.TextDocumentShowOptions, label?: string): Thenable { + public static execute(executor: ICommandsExecutor, resource: URI, columnOrOptions?: vscode.ViewColumn | vscode.TextDocumentShowOptions, label?: string): Promise { let options: ITextEditorOptions; let position: EditorViewColumn; @@ -101,7 +101,7 @@ CommandsRegistry.registerCommand(OpenAPICommand.ID, adjustHandler(OpenAPICommand export class RemoveFromRecentlyOpenedAPICommand { public static ID = 'vscode.removeFromRecentlyOpened'; - public static execute(executor: ICommandsExecutor, path: string): Thenable { + public static execute(executor: ICommandsExecutor, path: string): Promise { return executor.executeCommand('_workbench.removeFromRecentlyOpened', path); } } @@ -109,7 +109,7 @@ CommandsRegistry.registerCommand(RemoveFromRecentlyOpenedAPICommand.ID, adjustHa export class SetEditorLayoutAPICommand { public static ID = 'vscode.setEditorLayout'; - public static execute(executor: ICommandsExecutor, layout: EditorGroupLayout): Thenable { + public static execute(executor: ICommandsExecutor, layout: EditorGroupLayout): Promise { return executor.executeCommand('layoutEditorGroups', layout); } } diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 024fca4e640..a6f1aae4ce7 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -101,8 +101,8 @@ export interface MainThreadClipboardShape extends IDisposable { export interface MainThreadCommandsShape extends IDisposable { $registerCommand(id: string): void; $unregisterCommand(id: string): void; - $executeCommand(id: string, args: any[]): Thenable; - $getCommands(): Thenable; + $executeCommand(id: string, args: any[]): Promise; + $getCommands(): Promise; } export interface CommentProviderFeatures { @@ -120,8 +120,8 @@ export interface MainThreadCommentsShape extends IDisposable { } export interface MainThreadConfigurationShape extends IDisposable { - $updateConfigurationOption(target: ConfigurationTarget, key: string, value: any, resource: UriComponents): Thenable; - $removeConfigurationOption(target: ConfigurationTarget, key: string, resource: UriComponents): Thenable; + $updateConfigurationOption(target: ConfigurationTarget, key: string, value: any, resource: UriComponents): Promise; + $removeConfigurationOption(target: ConfigurationTarget, key: string, resource: UriComponents): Promise; } export interface MainThreadDiagnosticsShape extends IDisposable { @@ -145,8 +145,8 @@ export interface MainThreadDialogSaveOptions { } export interface MainThreadDiaglogsShape extends IDisposable { - $showOpenDialog(options: MainThreadDialogOpenOptions): Thenable; - $showSaveDialog(options: MainThreadDialogSaveOptions): Thenable; + $showOpenDialog(options: MainThreadDialogOpenOptions): Promise; + $showSaveDialog(options: MainThreadDialogSaveOptions): Promise; } export interface MainThreadDecorationsShape extends IDisposable { @@ -162,9 +162,9 @@ export interface MainThreadDocumentContentProvidersShape extends IDisposable { } export interface MainThreadDocumentsShape extends IDisposable { - $tryCreateDocument(options?: { language?: string; content?: string; }): Thenable; - $tryOpenDocument(uri: UriComponents): Thenable; - $trySaveDocument(uri: UriComponents): Thenable; + $tryCreateDocument(options?: { language?: string; content?: string; }): Promise; + $tryOpenDocument(uri: UriComponents): Promise; + $trySaveDocument(uri: UriComponents): Promise; } export interface ITextEditorConfigurationUpdate { @@ -205,26 +205,26 @@ export interface ITextDocumentShowOptions { } export interface MainThreadTextEditorsShape extends IDisposable { - $tryShowTextDocument(resource: UriComponents, options: ITextDocumentShowOptions): Thenable; + $tryShowTextDocument(resource: UriComponents, options: ITextDocumentShowOptions): Promise; $registerTextEditorDecorationType(key: string, options: editorCommon.IDecorationRenderOptions): void; $removeTextEditorDecorationType(key: string): void; - $tryShowEditor(id: string, position: EditorViewColumn): Thenable; - $tryHideEditor(id: string): Thenable; - $trySetOptions(id: string, options: ITextEditorConfigurationUpdate): Thenable; - $trySetDecorations(id: string, key: string, ranges: editorCommon.IDecorationOptions[]): Thenable; - $trySetDecorationsFast(id: string, key: string, ranges: number[]): Thenable; - $tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): Thenable; - $trySetSelections(id: string, selections: ISelection[]): Thenable; - $tryApplyEdits(id: string, modelVersionId: number, edits: ISingleEditOperation[], opts: IApplyEditsOptions): Thenable; - $tryApplyWorkspaceEdit(workspaceEditDto: WorkspaceEditDto): Thenable; - $tryInsertSnippet(id: string, template: string, selections: IRange[], opts: IUndoStopOptions): Thenable; - $getDiffInformation(id: string): Thenable; + $tryShowEditor(id: string, position: EditorViewColumn): Promise; + $tryHideEditor(id: string): Promise; + $trySetOptions(id: string, options: ITextEditorConfigurationUpdate): Promise; + $trySetDecorations(id: string, key: string, ranges: editorCommon.IDecorationOptions[]): Promise; + $trySetDecorationsFast(id: string, key: string, ranges: number[]): Promise; + $tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): Promise; + $trySetSelections(id: string, selections: ISelection[]): Promise; + $tryApplyEdits(id: string, modelVersionId: number, edits: ISingleEditOperation[], opts: IApplyEditsOptions): Promise; + $tryApplyWorkspaceEdit(workspaceEditDto: WorkspaceEditDto): Promise; + $tryInsertSnippet(id: string, template: string, selections: IRange[], opts: IUndoStopOptions): Promise; + $getDiffInformation(id: string): Promise; } export interface MainThreadTreeViewsShape extends IDisposable { $registerTreeViewDataProvider(treeViewId: string, options: { showCollapseAll: boolean }): void; - $refresh(treeViewId: string, itemsToRefresh?: { [treeItemHandle: string]: ITreeItem }): Thenable; - $reveal(treeViewId: string, treeItem: ITreeItem, parentChain: ITreeItem[], options: IRevealOptions): Thenable; + $refresh(treeViewId: string, itemsToRefresh?: { [treeItemHandle: string]: ITreeItem }): Promise; + $reveal(treeViewId: string, treeItem: ITreeItem, parentChain: ITreeItem[], options: IRevealOptions): Promise; $setMessage(treeViewId: string, message: string | IMarkdownString): void; } @@ -313,8 +313,8 @@ export interface MainThreadLanguageFeaturesShape extends IDisposable { } export interface MainThreadLanguagesShape extends IDisposable { - $getLanguages(): Thenable; - $changeLanguage(resource: UriComponents, languageId: string): Thenable; + $getLanguages(): Promise; + $changeLanguage(resource: UriComponents, languageId: string): Promise; } export interface MainThreadMessageOptions { @@ -323,17 +323,17 @@ export interface MainThreadMessageOptions { } export interface MainThreadMessageServiceShape extends IDisposable { - $showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Thenable; + $showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Promise; } export interface MainThreadOutputServiceShape extends IDisposable { - $register(label: string, log: boolean, file?: UriComponents): Thenable; - $append(channelId: string, value: string): Thenable; - $update(channelId: string): Thenable; - $clear(channelId: string, till: number): Thenable; - $reveal(channelId: string, preserveFocus: boolean): Thenable; - $close(channelId: string): Thenable; - $dispose(channelId: string): Thenable; + $register(label: string, log: boolean, file?: UriComponents): Promise; + $append(channelId: string, value: string): Promise; + $update(channelId: string): Promise; + $clear(channelId: string, till: number): Promise; + $reveal(channelId: string, preserveFocus: boolean): Promise; + $close(channelId: string): Promise; + $dispose(channelId: string): Promise; } export interface MainThreadProgressShape extends IDisposable { @@ -344,8 +344,8 @@ export interface MainThreadProgressShape extends IDisposable { } export interface MainThreadTerminalServiceShape extends IDisposable { - $createTerminal(name?: string, shellPath?: string, shellArgs?: string[], cwd?: string, env?: { [key: string]: string }, waitOnExit?: boolean): Thenable; - $createTerminalRenderer(name: string): Thenable; + $createTerminal(name?: string, shellPath?: string, shellArgs?: string[], cwd?: string, env?: { [key: string]: string }, waitOnExit?: boolean): Promise; + $createTerminalRenderer(name: string): Promise; $dispose(terminalId: number): void; $hide(terminalId: number): void; $sendText(terminalId: number, text: string, addNewLine: boolean): void; @@ -431,12 +431,12 @@ export interface TransferInputBox extends BaseTransferQuickInput { } export interface MainThreadQuickOpenShape extends IDisposable { - $show(instance: number, options: IPickOptions, token: CancellationToken): Thenable; - $setItems(instance: number, items: TransferQuickPickItems[]): Thenable; - $setError(instance: number, error: Error): Thenable; - $input(options: vscode.InputBoxOptions, validateInput: boolean, token: CancellationToken): Thenable; - $createOrUpdate(params: TransferQuickInput): Thenable; - $dispose(id: number): Thenable; + $show(instance: number, options: IPickOptions, token: CancellationToken): Promise; + $setItems(instance: number, items: TransferQuickPickItems[]): Promise; + $setError(instance: number, error: Error): Promise; + $input(options: vscode.InputBoxOptions, validateInput: boolean, token: CancellationToken): Promise; + $createOrUpdate(params: TransferQuickInput): Promise; + $dispose(id: number): Promise; } export interface MainThreadStatusBarShape extends IDisposable { @@ -445,8 +445,8 @@ export interface MainThreadStatusBarShape extends IDisposable { } export interface MainThreadStorageShape extends IDisposable { - $getValue(shared: boolean, key: string): Thenable; - $setValue(shared: boolean, key: string, value: object): Thenable; + $getValue(shared: boolean, key: string): Promise; + $setValue(shared: boolean, key: string, value: object): Promise; } export interface MainThreadTelemetryShape extends IDisposable { @@ -468,7 +468,7 @@ export interface MainThreadWebviewsShape extends IDisposable { $setIconPath(handle: WebviewPanelHandle, value: { light: UriComponents, dark: UriComponents } | undefined): void; $setHtml(handle: WebviewPanelHandle, value: string): void; $setOptions(handle: WebviewPanelHandle, options: vscode.WebviewOptions): void; - $postMessage(handle: WebviewPanelHandle, value: any): Thenable; + $postMessage(handle: WebviewPanelHandle, value: any): Promise; $registerSerializer(viewType: string): void; $unregisterSerializer(viewType: string): void; @@ -483,26 +483,26 @@ export interface WebviewPanelViewState { export interface ExtHostWebviewsShape { $onMessage(handle: WebviewPanelHandle, message: any): void; $onDidChangeWebviewPanelViewState(handle: WebviewPanelHandle, newState: WebviewPanelViewState): void; - $onDidDisposeWebviewPanel(handle: WebviewPanelHandle): Thenable; - $deserializeWebviewPanel(newWebviewHandle: WebviewPanelHandle, viewType: string, title: string, state: any, position: EditorViewColumn, options: vscode.WebviewOptions): Thenable; + $onDidDisposeWebviewPanel(handle: WebviewPanelHandle): Promise; + $deserializeWebviewPanel(newWebviewHandle: WebviewPanelHandle, viewType: string, title: string, state: any, position: EditorViewColumn, options: vscode.WebviewOptions): Promise; } export interface MainThreadUrlsShape extends IDisposable { - $registerUriHandler(handle: number, extensionId: string): Thenable; - $unregisterUriHandler(handle: number): Thenable; + $registerUriHandler(handle: number, extensionId: string): Promise; + $unregisterUriHandler(handle: number): Promise; } export interface ExtHostUrlsShape { - $handleExternalUri(handle: number, uri: UriComponents): Thenable; + $handleExternalUri(handle: number, uri: UriComponents): Promise; } export interface MainThreadWorkspaceShape extends IDisposable { - $startFileSearch(includePattern: string, includeFolder: URI, excludePatternOrDisregardExcludes: string | false, maxResults: number, token: CancellationToken): Thenable; - $startTextSearch(query: IPatternInfo, options: ITextQueryBuilderOptions, requestId: number, token: CancellationToken): Thenable; - $checkExists(includes: string[], token: CancellationToken): Thenable; - $saveAll(includeUntitled?: boolean): Thenable; - $updateWorkspaceFolders(extensionName: string, index: number, deleteCount: number, workspaceFoldersToAdd: { uri: UriComponents, name?: string }[]): Thenable; - $resolveProxy(url: string): Thenable; + $startFileSearch(includePattern: string, includeFolder: URI, excludePatternOrDisregardExcludes: string | false, maxResults: number, token: CancellationToken): Promise; + $startTextSearch(query: IPatternInfo, options: ITextQueryBuilderOptions, requestId: number, token: CancellationToken): Promise; + $checkExists(includes: string[], token: CancellationToken): Promise; + $saveAll(includeUntitled?: boolean): Promise; + $updateWorkspaceFolders(extensionName: string, index: number, deleteCount: number, workspaceFoldersToAdd: { uri: UriComponents, name?: string }[]): Promise; + $resolveProxy(url: string): Promise; } export interface IFileChangeDto { @@ -528,11 +528,11 @@ export interface MainThreadSearchShape extends IDisposable { } export interface MainThreadTaskShape extends IDisposable { - $registerTaskProvider(handle: number): Thenable; - $unregisterTaskProvider(handle: number): Thenable; - $fetchTasks(filter?: TaskFilterDTO): Thenable; - $executeTask(task: TaskHandleDTO | TaskDTO): Thenable; - $terminateTask(id: string): Thenable; + $registerTaskProvider(handle: number): Promise; + $unregisterTaskProvider(handle: number): Promise; + $fetchTasks(filter?: TaskFilterDTO): Promise; + $executeTask(task: TaskHandleDTO | TaskDTO): Promise; + $terminateTask(id: string): Promise; $registerTaskSystem(scheme: string, info: TaskSystemInfoDTO): void; } @@ -606,29 +606,29 @@ export interface MainThreadDebugServiceShape extends IDisposable { $acceptDAMessage(handle: number, message: DebugProtocol.ProtocolMessage): void; $acceptDAError(handle: number, name: string, message: string, stack: string): void; $acceptDAExit(handle: number, code: number, signal: string): void; - $registerDebugConfigurationProvider(type: string, hasProvideMethod: boolean, hasResolveMethod: boolean, hasProvideDaMethod: boolean, hasProvideTrackerMethod: boolean, handle: number): Thenable; - $registerDebugAdapterDescriptorFactory(type: string, handle: number): Thenable; + $registerDebugConfigurationProvider(type: string, hasProvideMethod: boolean, hasResolveMethod: boolean, hasProvideDaMethod: boolean, hasProvideTrackerMethod: boolean, handle: number): Promise; + $registerDebugAdapterDescriptorFactory(type: string, handle: number): Promise; $registerDebugAdapterTrackerFactory(type: string, handle: number); $unregisterDebugConfigurationProvider(handle: number): void; $unregisterDebugAdapterDescriptorFactory(handle: number): void; $unregisterDebugAdapterTrackerFactory(handle: number): void; - $startDebugging(folder: UriComponents | undefined, nameOrConfig: string | vscode.DebugConfiguration): Thenable; - $customDebugAdapterRequest(id: DebugSessionUUID, command: string, args: any): Thenable; + $startDebugging(folder: UriComponents | undefined, nameOrConfig: string | vscode.DebugConfiguration): Promise; + $customDebugAdapterRequest(id: DebugSessionUUID, command: string, args: any): Promise; $appendDebugConsole(value: string): void; $startBreakpointEvents(): void; - $registerBreakpoints(breakpoints: (ISourceMultiBreakpointDto | IFunctionBreakpointDto)[]): Thenable; - $unregisterBreakpoints(breakpointIds: string[], functionBreakpointIds: string[]): Thenable; + $registerBreakpoints(breakpoints: (ISourceMultiBreakpointDto | IFunctionBreakpointDto)[]): Promise; + $unregisterBreakpoints(breakpointIds: string[], functionBreakpointIds: string[]): Promise; } export interface MainThreadWindowShape extends IDisposable { - $getWindowVisibility(): Thenable; + $getWindowVisibility(): Promise; } // -- extension host export interface ExtHostCommandsShape { - $executeContributedCommand(id: string, ...args: any[]): Thenable; - $getContributedCommandHandlerDescriptions(): Thenable<{ [id: string]: string | ICommandHandlerDescription }>; + $executeContributedCommand(id: string, ...args: any[]): Promise; + $getContributedCommandHandlerDescriptions(): Promise<{ [id: string]: string | ICommandHandlerDescription }>; } export interface ExtHostConfigurationShape { @@ -659,7 +659,7 @@ export interface ExtHostDocumentsShape { } export interface ExtHostDocumentSaveParticipantShape { - $participateInSave(resource: UriComponents, reason: SaveReason): Thenable; + $participateInSave(resource: UriComponents, reason: SaveReason): Promise; } export interface ITextEditorAddData { @@ -701,7 +701,7 @@ export interface ExtHostDocumentsAndEditorsShape { } export interface ExtHostTreeViewsShape { - $getChildren(treeViewId: string, treeItemHandle?: string): Thenable; + $getChildren(treeViewId: string, treeItemHandle?: string): Promise; $setExpanded(treeViewId: string, treeItemHandle: string, expanded: boolean): void; $setSelection(treeViewId: string, treeItemHandles: string[]): void; $setVisible(treeViewId: string, visible: boolean): void; @@ -713,32 +713,32 @@ export interface ExtHostWorkspaceShape { } export interface ExtHostFileSystemShape { - $stat(handle: number, resource: UriComponents): Thenable; - $readdir(handle: number, resource: UriComponents): Thenable<[string, FileType][]>; - $readFile(handle: number, resource: UriComponents): Thenable; - $writeFile(handle: number, resource: UriComponents, content: Buffer, opts: FileWriteOptions): Thenable; - $rename(handle: number, resource: UriComponents, target: UriComponents, opts: FileOverwriteOptions): Thenable; - $copy(handle: number, resource: UriComponents, target: UriComponents, opts: FileOverwriteOptions): Thenable; - $mkdir(handle: number, resource: UriComponents): Thenable; - $delete(handle: number, resource: UriComponents, opts: FileDeleteOptions): Thenable; + $stat(handle: number, resource: UriComponents): Promise; + $readdir(handle: number, resource: UriComponents): Promise<[string, FileType][]>; + $readFile(handle: number, resource: UriComponents): Promise; + $writeFile(handle: number, resource: UriComponents, content: Buffer, opts: FileWriteOptions): Promise; + $rename(handle: number, resource: UriComponents, target: UriComponents, opts: FileOverwriteOptions): Promise; + $copy(handle: number, resource: UriComponents, target: UriComponents, opts: FileOverwriteOptions): Promise; + $mkdir(handle: number, resource: UriComponents): Promise; + $delete(handle: number, resource: UriComponents, opts: FileDeleteOptions): Promise; $watch(handle: number, session: number, resource: UriComponents, opts: IWatchOptions): void; $unwatch(handle: number, session: number): void; - $open(handle: number, resource: UriComponents): Thenable; - $close(handle: number, fd: number): Thenable; - $read(handle: number, fd: number, pos: number, data: Buffer, offset: number, length: number): Thenable; - $write(handle: number, fd: number, pos: number, data: Buffer, offset: number, length: number): Thenable; + $open(handle: number, resource: UriComponents): Promise; + $close(handle: number, fd: number): Promise; + $read(handle: number, fd: number, pos: number, data: Buffer, offset: number, length: number): Promise; + $write(handle: number, fd: number, pos: number, data: Buffer, offset: number, length: number): Promise; } export interface ExtHostSearchShape { - $provideFileSearchResults(handle: number, session: number, query: IRawQuery, token: CancellationToken): Thenable; - $provideTextSearchResults(handle: number, session: number, query: IRawTextQuery, token: CancellationToken): Thenable; - $clearCache(cacheKey: string): Thenable; + $provideFileSearchResults(handle: number, session: number, query: IRawQuery, token: CancellationToken): Promise; + $provideTextSearchResults(handle: number, session: number, query: IRawTextQuery, token: CancellationToken): Promise; + $clearCache(cacheKey: string): Promise; } export interface ExtHostExtensionServiceShape { - $resolveAuthority(remoteAuthority: string): Thenable; - $startExtensionHost(enabledExtensionIds: string[]): Thenable; - $activateByEvent(activationEvent: string): Thenable; + $resolveAuthority(remoteAuthority: string): Promise; + $startExtensionHost(enabledExtensionIds: string[]): Promise; + $activateByEvent(activationEvent: string): Promise; } export interface FileSystemEvents { @@ -749,7 +749,7 @@ export interface FileSystemEvents { export interface ExtHostFileSystemEventServiceShape { $onFileEvent(events: FileSystemEvents): void; $onFileRename(oldUri: UriComponents, newUri: UriComponents): void; - $onWillRename(oldUri: UriComponents, newUri: UriComponents): Thenable; + $onWillRename(oldUri: UriComponents, newUri: UriComponents): Promise; } export interface ObjectIdentifier { @@ -859,40 +859,40 @@ export interface CodeActionDto { } export interface ExtHostLanguageFeaturesShape { - $provideDocumentSymbols(handle: number, resource: UriComponents, token: CancellationToken): Thenable; - $provideCodeLenses(handle: number, resource: UriComponents, token: CancellationToken): Thenable; - $resolveCodeLens(handle: number, resource: UriComponents, symbol: modes.ICodeLensSymbol, token: CancellationToken): Thenable; - $provideDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable; - $provideDeclaration(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable; - $provideImplementation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable; - $provideTypeDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable; - $provideHover(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable; - $provideDocumentHighlights(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable; - $provideReferences(handle: number, resource: UriComponents, position: IPosition, context: modes.ReferenceContext, token: CancellationToken): Thenable; - $provideCodeActions(handle: number, resource: UriComponents, rangeOrSelection: IRange | ISelection, context: modes.CodeActionContext, token: CancellationToken): Thenable; - $provideDocumentFormattingEdits(handle: number, resource: UriComponents, options: modes.FormattingOptions, token: CancellationToken): Thenable; - $provideDocumentRangeFormattingEdits(handle: number, resource: UriComponents, range: IRange, options: modes.FormattingOptions, token: CancellationToken): Thenable; - $provideOnTypeFormattingEdits(handle: number, resource: UriComponents, position: IPosition, ch: string, options: modes.FormattingOptions, token: CancellationToken): Thenable; - $provideWorkspaceSymbols(handle: number, search: string, token: CancellationToken): Thenable; - $resolveWorkspaceSymbol(handle: number, symbol: WorkspaceSymbolDto, token: CancellationToken): Thenable; + $provideDocumentSymbols(handle: number, resource: UriComponents, token: CancellationToken): Promise; + $provideCodeLenses(handle: number, resource: UriComponents, token: CancellationToken): Promise; + $resolveCodeLens(handle: number, resource: UriComponents, symbol: modes.ICodeLensSymbol, token: CancellationToken): Promise; + $provideDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise; + $provideDeclaration(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise; + $provideImplementation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise; + $provideTypeDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise; + $provideHover(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise; + $provideDocumentHighlights(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise; + $provideReferences(handle: number, resource: UriComponents, position: IPosition, context: modes.ReferenceContext, token: CancellationToken): Promise; + $provideCodeActions(handle: number, resource: UriComponents, rangeOrSelection: IRange | ISelection, context: modes.CodeActionContext, token: CancellationToken): Promise; + $provideDocumentFormattingEdits(handle: number, resource: UriComponents, options: modes.FormattingOptions, token: CancellationToken): Promise; + $provideDocumentRangeFormattingEdits(handle: number, resource: UriComponents, range: IRange, options: modes.FormattingOptions, token: CancellationToken): Promise; + $provideOnTypeFormattingEdits(handle: number, resource: UriComponents, position: IPosition, ch: string, options: modes.FormattingOptions, token: CancellationToken): Promise; + $provideWorkspaceSymbols(handle: number, search: string, token: CancellationToken): Promise; + $resolveWorkspaceSymbol(handle: number, symbol: WorkspaceSymbolDto, token: CancellationToken): Promise; $releaseWorkspaceSymbols(handle: number, id: number): void; - $provideRenameEdits(handle: number, resource: UriComponents, position: IPosition, newName: string, token: CancellationToken): Thenable; - $resolveRenameLocation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable; - $provideCompletionItems(handle: number, resource: UriComponents, position: IPosition, context: modes.CompletionContext, token: CancellationToken): Thenable; - $resolveCompletionItem(handle: number, resource: UriComponents, position: IPosition, suggestion: modes.CompletionItem, token: CancellationToken): Thenable; + $provideRenameEdits(handle: number, resource: UriComponents, position: IPosition, newName: string, token: CancellationToken): Promise; + $resolveRenameLocation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise; + $provideCompletionItems(handle: number, resource: UriComponents, position: IPosition, context: modes.CompletionContext, token: CancellationToken): Promise; + $resolveCompletionItem(handle: number, resource: UriComponents, position: IPosition, suggestion: modes.CompletionItem, token: CancellationToken): Promise; $releaseCompletionItems(handle: number, id: number): void; - $provideSignatureHelp(handle: number, resource: UriComponents, position: IPosition, context: modes.SignatureHelpContext, token: CancellationToken): Thenable; - $provideDocumentLinks(handle: number, resource: UriComponents, token: CancellationToken): Thenable; - $resolveDocumentLink(handle: number, link: modes.ILink, token: CancellationToken): Thenable; - $provideDocumentColors(handle: number, resource: UriComponents, token: CancellationToken): Thenable; - $provideColorPresentations(handle: number, resource: UriComponents, colorInfo: IRawColorInfo, token: CancellationToken): Thenable; - $provideFoldingRanges(handle: number, resource: UriComponents, context: modes.FoldingContext, token: CancellationToken): Thenable; - $provideSelectionRanges(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable; + $provideSignatureHelp(handle: number, resource: UriComponents, position: IPosition, context: modes.SignatureHelpContext, token: CancellationToken): Promise; + $provideDocumentLinks(handle: number, resource: UriComponents, token: CancellationToken): Promise; + $resolveDocumentLink(handle: number, link: modes.ILink, token: CancellationToken): Promise; + $provideDocumentColors(handle: number, resource: UriComponents, token: CancellationToken): Promise; + $provideColorPresentations(handle: number, resource: UriComponents, colorInfo: IRawColorInfo, token: CancellationToken): Promise; + $provideFoldingRanges(handle: number, resource: UriComponents, context: modes.FoldingContext, token: CancellationToken): Promise; + $provideSelectionRanges(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise; } export interface ExtHostQuickOpenShape { $onItemSelected(handle: number): void; - $validateInput(input: string): Thenable; + $validateInput(input: string): Promise; $onDidChangeActive(sessionId: number, handles: number[]): void; $onDidChangeSelection(sessionId: number, handles: number[]): void; $onDidAccept(sessionId: number): void; @@ -925,20 +925,20 @@ export interface ExtHostTerminalServiceShape { } export interface ExtHostSCMShape { - $provideOriginalResource(sourceControlHandle: number, uri: UriComponents, token: CancellationToken): Thenable; + $provideOriginalResource(sourceControlHandle: number, uri: UriComponents, token: CancellationToken): Promise; $onInputBoxValueChange(sourceControlHandle: number, value: string): void; - $executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): Thenable; - $validateInput(sourceControlHandle: number, value: string, cursorPosition: number): Thenable<[string, number] | undefined>; - $setSelectedSourceControls(selectedSourceControlHandles: number[]): Thenable; + $executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): Promise; + $validateInput(sourceControlHandle: number, value: string, cursorPosition: number): Promise<[string, number] | undefined>; + $setSelectedSourceControls(selectedSourceControlHandles: number[]): Promise; } export interface ExtHostTaskShape { - $provideTasks(handle: number, validTypes: { [key: string]: boolean; }): Thenable; + $provideTasks(handle: number, validTypes: { [key: string]: boolean; }): Promise; $onDidStartTask(execution: TaskExecutionDTO): void; $onDidStartTaskProcess(value: TaskProcessStartedDTO): void; $onDidEndTaskProcess(value: TaskProcessEndedDTO): void; $OnDidEndTask(execution: TaskExecutionDTO): void; - $resolveVariables(workspaceFolder: UriComponents, toResolve: { process?: { name: string; cwd?: string }, variables: string[] }): Thenable<{ process?: string; variables: { [key: string]: string } }>; + $resolveVariables(workspaceFolder: UriComponents, toResolve: { process?: { name: string; cwd?: string }, variables: string[] }): Promise<{ process?: string; variables: { [key: string]: string } }>; } export interface IBreakpointDto { @@ -993,15 +993,15 @@ export interface IDebugSessionFullDto { export type IDebugSessionDto = IDebugSessionFullDto | DebugSessionUUID; export interface ExtHostDebugServiceShape { - $substituteVariables(folder: UriComponents | undefined, config: IConfig): Thenable; - $runInTerminal(args: DebugProtocol.RunInTerminalRequestArguments, config: ITerminalSettings): Thenable; - $startDASession(handle: number, session: IDebugSessionDto): Thenable; - $stopDASession(handle: number): Thenable; + $substituteVariables(folder: UriComponents | undefined, config: IConfig): Promise; + $runInTerminal(args: DebugProtocol.RunInTerminalRequestArguments, config: ITerminalSettings): Promise; + $startDASession(handle: number, session: IDebugSessionDto): Promise; + $stopDASession(handle: number): Promise; $sendDAMessage(handle: number, message: DebugProtocol.ProtocolMessage): void; - $resolveDebugConfiguration(handle: number, folder: UriComponents | undefined, debugConfiguration: IConfig): Thenable; - $provideDebugConfigurations(handle: number, folder: UriComponents | undefined): Thenable; - $legacyDebugAdapterExecutable(handle: number, folderUri: UriComponents | undefined): Thenable; // TODO@AW legacy - $provideDebugAdapter(handle: number, session: IDebugSessionDto): Thenable; + $resolveDebugConfiguration(handle: number, folder: UriComponents | undefined, debugConfiguration: IConfig): Promise; + $provideDebugConfigurations(handle: number, folder: UriComponents | undefined): Promise; + $legacyDebugAdapterExecutable(handle: number, folderUri: UriComponents | undefined): Promise; // TODO@AW legacy + $provideDebugAdapter(handle: number, session: IDebugSessionDto): Promise; $acceptDebugSessionStarted(session: IDebugSessionDto): void; $acceptDebugSessionTerminated(session: IDebugSessionDto): void; $acceptDebugSessionActiveChanged(session: IDebugSessionDto): void; @@ -1020,7 +1020,7 @@ export type DecorationData = [number, boolean, string, string, ThemeColor, strin export type DecorationReply = { [id: number]: DecorationData }; export interface ExtHostDecorationsShape { - $provideDecorations(requests: DecorationRequest[], token: CancellationToken): Thenable; + $provideDecorations(requests: DecorationRequest[], token: CancellationToken): Promise; } export interface ExtHostWindowShape { @@ -1040,15 +1040,15 @@ export interface ExtHostProgressShape { } export interface ExtHostCommentsShape { - $provideDocumentComments(handle: number, document: UriComponents): Thenable; - $createNewCommentThread(handle: number, document: UriComponents, range: IRange, text: string): Thenable; - $replyToCommentThread(handle: number, document: UriComponents, range: IRange, commentThread: modes.CommentThread, text: string): Thenable; - $editComment(handle: number, document: UriComponents, comment: modes.Comment, text: string): Thenable; - $deleteComment(handle: number, document: UriComponents, comment: modes.Comment): Thenable; - $startDraft(handle: number): Thenable; - $deleteDraft(handle: number): Thenable; - $finishDraft(handle: number): Thenable; - $provideWorkspaceComments(handle: number): Thenable; + $provideDocumentComments(handle: number, document: UriComponents): Promise; + $createNewCommentThread(handle: number, document: UriComponents, range: IRange, text: string): Promise; + $replyToCommentThread(handle: number, document: UriComponents, range: IRange, commentThread: modes.CommentThread, text: string): Promise; + $editComment(handle: number, document: UriComponents, comment: modes.Comment, text: string): Promise; + $deleteComment(handle: number, document: UriComponents, comment: modes.Comment): Promise; + $startDraft(handle: number): Promise; + $deleteDraft(handle: number): Promise; + $finishDraft(handle: number): Promise; + $provideWorkspaceComments(handle: number): Promise; } export interface ExtHostStorageShape { diff --git a/src/vs/workbench/api/node/extHostApiCommands.ts b/src/vs/workbench/api/node/extHostApiCommands.ts index bfee1376f3b..a0fa0215eef 100644 --- a/src/vs/workbench/api/node/extHostApiCommands.ts +++ b/src/vs/workbench/api/node/extHostApiCommands.ts @@ -287,7 +287,7 @@ export class ExtHostApiCommands { * @param query Search string to match query symbol names * @return A promise that resolves to an array of symbol information. */ - private _executeWorkspaceSymbolProvider(query: string): Thenable { + private _executeWorkspaceSymbolProvider(query: string): Promise { return this._commands.executeCommand<[search.IWorkspaceSymbolProvider, search.IWorkspaceSymbol[]][]>('_executeWorkspaceSymbolProvider', { query }).then(value => { const result: types.SymbolInformation[] = []; if (Array.isArray(value)) { @@ -299,7 +299,7 @@ export class ExtHostApiCommands { }); } - private _executeDefinitionProvider(resource: URI, position: types.Position): Thenable { + private _executeDefinitionProvider(resource: URI, position: types.Position): Promise { const args = { resource, position: position && typeConverters.Position.from(position) @@ -308,7 +308,7 @@ export class ExtHostApiCommands { .then(tryMapWith(typeConverters.location.to)); } - private _executeDeclaraionProvider(resource: URI, position: types.Position): Thenable { + private _executeDeclaraionProvider(resource: URI, position: types.Position): Promise { const args = { resource, position: position && typeConverters.Position.from(position) @@ -317,7 +317,7 @@ export class ExtHostApiCommands { .then(tryMapWith(typeConverters.location.to)); } - private _executeTypeDefinitionProvider(resource: URI, position: types.Position): Thenable { + private _executeTypeDefinitionProvider(resource: URI, position: types.Position): Promise { const args = { resource, position: position && typeConverters.Position.from(position) @@ -326,7 +326,7 @@ export class ExtHostApiCommands { .then(tryMapWith(typeConverters.location.to)); } - private _executeImplementationProvider(resource: URI, position: types.Position): Thenable { + private _executeImplementationProvider(resource: URI, position: types.Position): Promise { const args = { resource, position: position && typeConverters.Position.from(position) @@ -335,7 +335,7 @@ export class ExtHostApiCommands { .then(tryMapWith(typeConverters.location.to)); } - private _executeHoverProvider(resource: URI, position: types.Position): Thenable { + private _executeHoverProvider(resource: URI, position: types.Position): Promise { const args = { resource, position: position && typeConverters.Position.from(position) @@ -344,7 +344,7 @@ export class ExtHostApiCommands { .then(tryMapWith(typeConverters.Hover.to)); } - private _executeDocumentHighlights(resource: URI, position: types.Position): Thenable { + private _executeDocumentHighlights(resource: URI, position: types.Position): Promise { const args = { resource, position: position && typeConverters.Position.from(position) @@ -353,7 +353,7 @@ export class ExtHostApiCommands { .then(tryMapWith(typeConverters.DocumentHighlight.to)); } - private _executeReferenceProvider(resource: URI, position: types.Position): Thenable { + private _executeReferenceProvider(resource: URI, position: types.Position): Promise { const args = { resource, position: position && typeConverters.Position.from(position) @@ -362,7 +362,7 @@ export class ExtHostApiCommands { .then(tryMapWith(typeConverters.location.to)); } - private _executeDocumentRenameProvider(resource: URI, position: types.Position, newName: string): Thenable { + private _executeDocumentRenameProvider(resource: URI, position: types.Position, newName: string): Promise { const args = { resource, position: position && typeConverters.Position.from(position), @@ -379,7 +379,7 @@ export class ExtHostApiCommands { }); } - private _executeSignatureHelpProvider(resource: URI, position: types.Position, triggerCharacter: string): Thenable { + private _executeSignatureHelpProvider(resource: URI, position: types.Position, triggerCharacter: string): Promise { const args = { resource, position: position && typeConverters.Position.from(position), @@ -393,7 +393,7 @@ export class ExtHostApiCommands { }); } - private _executeCompletionItemProvider(resource: URI, position: types.Position, triggerCharacter: string, maxItemsToResolve: number): Thenable { + private _executeCompletionItemProvider(resource: URI, position: types.Position, triggerCharacter: string, maxItemsToResolve: number): Promise { const args = { resource, position: position && typeConverters.Position.from(position), @@ -409,7 +409,7 @@ export class ExtHostApiCommands { }); } - private _executeDocumentColorProvider(resource: URI): Thenable { + private _executeDocumentColorProvider(resource: URI): Promise { const args = { resource }; @@ -421,7 +421,7 @@ export class ExtHostApiCommands { }); } - private _executeSelectionRangeProvider(resource: URI, position: types.Position): Thenable { + private _executeSelectionRangeProvider(resource: URI, position: types.Position): Promise { const args = { resource, position: position && typeConverters.Position.from(position) @@ -434,7 +434,7 @@ export class ExtHostApiCommands { }); } - private _executeColorPresentationProvider(color: types.Color, context: { uri: URI, range: types.Range }): Thenable { + private _executeColorPresentationProvider(color: types.Color, context: { uri: URI, range: types.Range }): Promise { const args = { resource: context.uri, color: typeConverters.Color.from(color), @@ -448,7 +448,7 @@ export class ExtHostApiCommands { }); } - private _executeDocumentSymbolProvider(resource: URI): Thenable { + private _executeDocumentSymbolProvider(resource: URI): Promise { const args = { resource }; @@ -480,7 +480,7 @@ export class ExtHostApiCommands { }); } - private _executeCodeActionProvider(resource: URI, range: types.Range): Thenable<(vscode.CodeAction | vscode.Command)[]> { + private _executeCodeActionProvider(resource: URI, range: types.Range): Promise<(vscode.CodeAction | vscode.Command)[]> { const args = { resource, range: typeConverters.Range.from(range) @@ -505,7 +505,7 @@ export class ExtHostApiCommands { })); } - private _executeCodeLensProvider(resource: URI, itemResolveCount: number): Thenable { + private _executeCodeLensProvider(resource: URI, itemResolveCount: number): Promise { const args = { resource, itemResolveCount }; return this._commands.executeCommand('_executeCodeLensProvider', args) .then(tryMapWith(item => { @@ -516,7 +516,7 @@ export class ExtHostApiCommands { } - private _executeFormatDocumentProvider(resource: URI, options: vscode.FormattingOptions): Thenable { + private _executeFormatDocumentProvider(resource: URI, options: vscode.FormattingOptions): Promise { const args = { resource, options @@ -525,7 +525,7 @@ export class ExtHostApiCommands { .then(tryMapWith(edit => new types.TextEdit(typeConverters.Range.to(edit.range), edit.text))); } - private _executeFormatRangeProvider(resource: URI, range: types.Range, options: vscode.FormattingOptions): Thenable { + private _executeFormatRangeProvider(resource: URI, range: types.Range, options: vscode.FormattingOptions): Promise { const args = { resource, range: typeConverters.Range.from(range), @@ -535,7 +535,7 @@ export class ExtHostApiCommands { .then(tryMapWith(edit => new types.TextEdit(typeConverters.Range.to(edit.range), edit.text))); } - private _executeFormatOnTypeProvider(resource: URI, position: types.Position, ch: string, options: vscode.FormattingOptions): Thenable { + private _executeFormatOnTypeProvider(resource: URI, position: types.Position, ch: string, options: vscode.FormattingOptions): Promise { const args = { resource, position: typeConverters.Position.from(position), @@ -546,7 +546,7 @@ export class ExtHostApiCommands { .then(tryMapWith(edit => new types.TextEdit(typeConverters.Range.to(edit.range), edit.text))); } - private _executeDocumentLinkProvider(resource: URI): Thenable { + private _executeDocumentLinkProvider(resource: URI): Promise { return this._commands.executeCommand('_executeLinkProvider', resource) .then(tryMapWith(typeConverters.DocumentLink.to)); } diff --git a/src/vs/workbench/api/node/extHostCommands.ts b/src/vs/workbench/api/node/extHostCommands.ts index 5de0838f9f5..8a6b94a362d 100644 --- a/src/vs/workbench/api/node/extHostCommands.ts +++ b/src/vs/workbench/api/node/extHostCommands.ts @@ -78,7 +78,7 @@ export class ExtHostCommands implements ExtHostCommandsShape { }); } - executeCommand(id: string, ...args: any[]): Thenable { + executeCommand(id: string, ...args: any[]): Promise { this._logService.trace('ExtHostCommands#executeCommand', id); if (this._commands.has(id)) { @@ -108,7 +108,7 @@ export class ExtHostCommands implements ExtHostCommandsShape { } } - private _executeContributedCommand(id: string, args: any[]): Thenable { + private _executeContributedCommand(id: string, args: any[]): Promise { let { callback, thisArg, description } = this._commands.get(id); if (description) { for (let i = 0; i < description.args.length; i++) { @@ -129,7 +129,7 @@ export class ExtHostCommands implements ExtHostCommandsShape { } } - $executeContributedCommand(id: string, ...args: any[]): Thenable { + $executeContributedCommand(id: string, ...args: any[]): Promise { this._logService.trace('ExtHostCommands#$executeContributedCommand', id); if (!this._commands.has(id)) { @@ -140,7 +140,7 @@ export class ExtHostCommands implements ExtHostCommandsShape { } } - getCommands(filterUnderscoreCommands: boolean = false): Thenable { + getCommands(filterUnderscoreCommands: boolean = false): Promise { this._logService.trace('ExtHostCommands#getCommands', filterUnderscoreCommands); return this._proxy.$getCommands().then(result => { @@ -151,7 +151,7 @@ export class ExtHostCommands implements ExtHostCommandsShape { }); } - $getContributedCommandHandlerDescriptions(): Thenable<{ [id: string]: string | ICommandHandlerDescription }> { + $getContributedCommandHandlerDescriptions(): Promise<{ [id: string]: string | ICommandHandlerDescription }> { const result: { [id: string]: string | ICommandHandlerDescription } = Object.create(null); this._commands.forEach((command, id) => { let { description } = command; @@ -226,7 +226,7 @@ export class CommandsConverter { } } - private _executeConvertedCommand(...args: any[]): Thenable { + private _executeConvertedCommand(...args: any[]): Promise { const actualCmd = this._heap.get(args[0]); return this._commands.executeCommand(actualCmd.command, ...actualCmd.arguments); } diff --git a/src/vs/workbench/api/node/extHostComments.ts b/src/vs/workbench/api/node/extHostComments.ts index 631d48ba4c6..c91b0132f8b 100644 --- a/src/vs/workbench/api/node/extHostComments.ts +++ b/src/vs/workbench/api/node/extHostComments.ts @@ -67,7 +67,7 @@ export class ExtHostComments implements ExtHostCommentsShape { }; } - $createNewCommentThread(handle: number, uri: UriComponents, range: IRange, text: string): Thenable { + $createNewCommentThread(handle: number, uri: UriComponents, range: IRange, text: string): Promise { const data = this._documents.getDocumentData(URI.revive(uri)); const ran = extHostTypeConverter.Range.to(range); @@ -81,7 +81,7 @@ export class ExtHostComments implements ExtHostCommentsShape { }).then(commentThread => commentThread ? convertToCommentThread(provider, commentThread, this._commandsConverter) : null); } - $replyToCommentThread(handle: number, uri: UriComponents, range: IRange, thread: modes.CommentThread, text: string): Thenable { + $replyToCommentThread(handle: number, uri: UriComponents, range: IRange, thread: modes.CommentThread, text: string): Promise { const data = this._documents.getDocumentData(URI.revive(uri)); const ran = extHostTypeConverter.Range.to(range); @@ -95,7 +95,7 @@ export class ExtHostComments implements ExtHostCommentsShape { }).then(commentThread => commentThread ? convertToCommentThread(provider, commentThread, this._commandsConverter) : null); } - $editComment(handle: number, uri: UriComponents, comment: modes.Comment, text: string): Thenable { + $editComment(handle: number, uri: UriComponents, comment: modes.Comment, text: string): Promise { const data = this._documents.getDocumentData(URI.revive(uri)); if (!data || !data.document) { @@ -108,7 +108,7 @@ export class ExtHostComments implements ExtHostCommentsShape { }); } - $deleteComment(handle: number, uri: UriComponents, comment: modes.Comment): Thenable { + $deleteComment(handle: number, uri: UriComponents, comment: modes.Comment): Promise { const data = this._documents.getDocumentData(URI.revive(uri)); if (!data || !data.document) { @@ -121,28 +121,28 @@ export class ExtHostComments implements ExtHostCommentsShape { }); } - $startDraft(handle: number): Thenable { + $startDraft(handle: number): Promise { const provider = this._documentProviders.get(handle); return asThenable(() => { return provider.startDraft(CancellationToken.None); }); } - $deleteDraft(handle: number): Thenable { + $deleteDraft(handle: number): Promise { const provider = this._documentProviders.get(handle); return asThenable(() => { return provider.deleteDraft(CancellationToken.None); }); } - $finishDraft(handle: number): Thenable { + $finishDraft(handle: number): Promise { const provider = this._documentProviders.get(handle); return asThenable(() => { return provider.finishDraft(CancellationToken.None); }); } - $provideDocumentComments(handle: number, uri: UriComponents): Thenable { + $provideDocumentComments(handle: number, uri: UriComponents): Promise { const data = this._documents.getDocumentData(URI.revive(uri)); if (!data || !data.document) { return Promise.resolve(null); @@ -154,7 +154,7 @@ export class ExtHostComments implements ExtHostCommentsShape { }).then(commentInfo => commentInfo ? convertCommentInfo(handle, provider, commentInfo, this._commandsConverter) : null); } - $provideWorkspaceComments(handle: number): Thenable { + $provideWorkspaceComments(handle: number): Promise { const provider = this._workspaceProviders.get(handle); if (!provider) { return Promise.resolve(null); diff --git a/src/vs/workbench/api/node/extHostDebugService.ts b/src/vs/workbench/api/node/extHostDebugService.ts index bafe4d4f68d..3392fd8379b 100644 --- a/src/vs/workbench/api/node/extHostDebugService.ts +++ b/src/vs/workbench/api/node/extHostDebugService.ts @@ -160,7 +160,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { return result; } - public addBreakpoints(breakpoints0: vscode.Breakpoint[]): Thenable { + public addBreakpoints(breakpoints0: vscode.Breakpoint[]): Promise { this.startBreakpoints(); @@ -218,7 +218,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { return this._debugServiceProxy.$registerBreakpoints(dtos); } - public removeBreakpoints(breakpoints0: vscode.Breakpoint[]): Thenable { + public removeBreakpoints(breakpoints0: vscode.Breakpoint[]): Promise { this.startBreakpoints(); @@ -234,7 +234,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { return this._debugServiceProxy.$unregisterBreakpoints(ids, fids); } - public startDebugging(folder: vscode.WorkspaceFolder | undefined, nameOrConfig: string | vscode.DebugConfiguration): Thenable { + public startDebugging(folder: vscode.WorkspaceFolder | undefined, nameOrConfig: string | vscode.DebugConfiguration): Promise { return this._debugServiceProxy.$startDebugging(folder ? folder.uri : undefined, nameOrConfig); } @@ -314,7 +314,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { // RPC methods (ExtHostDebugServiceShape) - public $runInTerminal(args: DebugProtocol.RunInTerminalRequestArguments, config: ITerminalSettings): Thenable { + public $runInTerminal(args: DebugProtocol.RunInTerminalRequestArguments, config: ITerminalSettings): Promise { if (args.kind === 'integrated') { @@ -383,7 +383,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { return Promise.resolve(this._variableResolver.resolveAny(ws, config)); } - public $startDASession(debugAdapterHandle: number, sessionDto: IDebugSessionDto): Thenable { + public $startDASession(debugAdapterHandle: number, sessionDto: IDebugSessionDto): Promise { const mythis = this; const session = this.getSession(sessionDto); @@ -472,7 +472,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { return void 0; } - public $stopDASession(debugAdapterHandle: number): Thenable { + public $stopDASession(debugAdapterHandle: number): Promise { const tracker = this._debugAdaptersTrackers.get(debugAdapterHandle); this._debugAdaptersTrackers.delete(debugAdapterHandle); @@ -550,7 +550,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { this.fireBreakpointChanges(a, r, c); } - public $provideDebugConfigurations(configProviderHandle: number, folderUri: UriComponents | undefined): Thenable { + public $provideDebugConfigurations(configProviderHandle: number, folderUri: UriComponents | undefined): Promise { let provider = this.getConfigProviderByHandle(configProviderHandle); if (!provider) { return Promise.reject(new Error('no handler found')); @@ -561,7 +561,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { return asThenable(() => provider.provideDebugConfigurations(this.getFolder(folderUri), CancellationToken.None)); } - public $resolveDebugConfiguration(configProviderHandle: number, folderUri: UriComponents | undefined, debugConfiguration: vscode.DebugConfiguration): Thenable { + public $resolveDebugConfiguration(configProviderHandle: number, folderUri: UriComponents | undefined, debugConfiguration: vscode.DebugConfiguration): Promise { let provider = this.getConfigProviderByHandle(configProviderHandle); if (!provider) { return Promise.reject(new Error('no handler found')); @@ -573,7 +573,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { } // TODO@AW legacy - public $legacyDebugAdapterExecutable(configProviderHandle: number, folderUri: UriComponents | undefined): Thenable { + public $legacyDebugAdapterExecutable(configProviderHandle: number, folderUri: UriComponents | undefined): Promise { let provider = this.getConfigProviderByHandle(configProviderHandle); if (!provider) { return Promise.reject(new Error('no handler found')); @@ -584,7 +584,7 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { return asThenable(() => provider.debugAdapterExecutable(this.getFolder(folderUri), CancellationToken.None)).then(x => this.convertToDto(x)); } - public $provideDebugAdapter(adapterProviderHandle: number, sessionDto: IDebugSessionDto): Thenable { + public $provideDebugAdapter(adapterProviderHandle: number, sessionDto: IDebugSessionDto): Promise { let adapterProvider = this.getAdapterProviderByHandle(adapterProviderHandle); if (!adapterProvider) { return Promise.reject(new Error('no handler found')); @@ -839,7 +839,7 @@ export class ExtHostDebugSession implements vscode.DebugSession { return this._configuration; } - public customRequest(command: string, args: any): Thenable { + public customRequest(command: string, args: any): Promise { return this._debugServiceProxy.$customDebugAdapterRequest(this._id, command, args); } } diff --git a/src/vs/workbench/api/node/extHostDecorations.ts b/src/vs/workbench/api/node/extHostDecorations.ts index b1a0424d2c1..1afb2f43282 100644 --- a/src/vs/workbench/api/node/extHostDecorations.ts +++ b/src/vs/workbench/api/node/extHostDecorations.ts @@ -41,7 +41,7 @@ export class ExtHostDecorations implements ExtHostDecorationsShape { }); } - $provideDecorations(requests: DecorationRequest[], token: CancellationToken): Thenable { + $provideDecorations(requests: DecorationRequest[], token: CancellationToken): Promise { const result: DecorationReply = Object.create(null); return Promise.all(requests.map(request => { const { handle, uri, id } = request; diff --git a/src/vs/workbench/api/node/extHostDialogs.ts b/src/vs/workbench/api/node/extHostDialogs.ts index b9fd874de21..5fb4a0f4ff0 100644 --- a/src/vs/workbench/api/node/extHostDialogs.ts +++ b/src/vs/workbench/api/node/extHostDialogs.ts @@ -15,13 +15,13 @@ export class ExtHostDialogs { this._proxy = mainContext.getProxy(MainContext.MainThreadDialogs); } - showOpenDialog(options: vscode.OpenDialogOptions): Thenable { + showOpenDialog(options: vscode.OpenDialogOptions): Promise { return this._proxy.$showOpenDialog(options).then(filepaths => { return filepaths && filepaths.map(URI.revive); }); } - showSaveDialog(options: vscode.SaveDialogOptions): Thenable { + showSaveDialog(options: vscode.SaveDialogOptions): Promise { return this._proxy.$showSaveDialog(options).then(filepath => { return filepath && URI.revive(filepath); }); diff --git a/src/vs/workbench/api/node/extHostDocumentData.ts b/src/vs/workbench/api/node/extHostDocumentData.ts index 4c4f59a9c2a..7d9d6a49155 100644 --- a/src/vs/workbench/api/node/extHostDocumentData.ts +++ b/src/vs/workbench/api/node/extHostDocumentData.ts @@ -97,7 +97,7 @@ export class ExtHostDocumentData extends MirrorTextModel { this._isDirty = isDirty; } - private _save(): Thenable { + private _save(): Promise { if (this._isDisposed) { return Promise.reject(new Error('Document has been closed')); } diff --git a/src/vs/workbench/api/node/extHostDocumentSaveParticipant.ts b/src/vs/workbench/api/node/extHostDocumentSaveParticipant.ts index ea1a0778ef4..ea3ef4d0518 100644 --- a/src/vs/workbench/api/node/extHostDocumentSaveParticipant.ts +++ b/src/vs/workbench/api/node/extHostDocumentSaveParticipant.ts @@ -48,7 +48,7 @@ export class ExtHostDocumentSaveParticipant implements ExtHostDocumentSavePartic }; } - $participateInSave(data: UriComponents, reason: SaveReason): Thenable { + $participateInSave(data: UriComponents, reason: SaveReason): Promise { const resource = URI.revive(data); const entries = this._callbacks.toArray(); @@ -109,7 +109,7 @@ export class ExtHostDocumentSaveParticipant implements ExtHostDocumentSavePartic const event = Object.freeze({ document, reason, - waitUntil(p: Thenable) { + waitUntil(p: Promise) { if (Object.isFrozen(promises)) { throw illegalState('waitUntil can not be called async'); } diff --git a/src/vs/workbench/api/node/extHostDocuments.ts b/src/vs/workbench/api/node/extHostDocuments.ts index 01dd9719bc4..313dec0438e 100644 --- a/src/vs/workbench/api/node/extHostDocuments.ts +++ b/src/vs/workbench/api/node/extHostDocuments.ts @@ -28,7 +28,7 @@ export class ExtHostDocuments implements ExtHostDocumentsShape { private _toDispose: IDisposable[]; private _proxy: MainThreadDocumentsShape; private _documentsAndEditors: ExtHostDocumentsAndEditors; - private _documentLoader = new Map>(); + private _documentLoader = new Map>(); constructor(mainContext: IMainContext, documentsAndEditors: ExtHostDocumentsAndEditors) { this._proxy = mainContext.getProxy(MainContext.MainThreadDocuments); @@ -67,7 +67,7 @@ export class ExtHostDocuments implements ExtHostDocumentsShape { return undefined; } - public ensureDocumentData(uri: URI): Thenable { + public ensureDocumentData(uri: URI): Promise { let cached = this._documentsAndEditors.getDocument(uri.toString()); if (cached) { @@ -89,7 +89,7 @@ export class ExtHostDocuments implements ExtHostDocumentsShape { return promise; } - public createDocumentData(options?: { language?: string; content?: string }): Thenable { + public createDocumentData(options?: { language?: string; content?: string }): Promise { return this._proxy.$tryCreateDocument(options).then(data => URI.revive(data)); } diff --git a/src/vs/workbench/api/node/extHostExtensionActivator.ts b/src/vs/workbench/api/node/extHostExtensionActivator.ts index 64292ed13f7..1bc33c64cbf 100644 --- a/src/vs/workbench/api/node/extHostExtensionActivator.ts +++ b/src/vs/workbench/api/node/extHostExtensionActivator.ts @@ -14,7 +14,7 @@ const NO_OP_VOID_PROMISE = Promise.resolve(void 0); export interface IExtensionMemento { get(key: string, defaultValue: T): T; - update(key: string, value: any): Thenable; + update(key: string, value: any): Promise; } export interface IExtensionContext { diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index 3905dfb9825..c5be3ff39e5 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -32,7 +32,7 @@ class ExtensionMemento implements IExtensionMemento { private readonly _shared: boolean; private readonly _storage: ExtHostStorage; - private readonly _init: Thenable; + private readonly _init: Promise; private _value: { [n: string]: any; }; private readonly _storageListener: IDisposable; @@ -53,7 +53,7 @@ class ExtensionMemento implements IExtensionMemento { }); } - get whenReady(): Thenable { + get whenReady(): Promise { return this._init; } @@ -65,7 +65,7 @@ class ExtensionMemento implements IExtensionMemento { return value; } - update(key: string, value: any): Thenable { + update(key: string, value: any): Promise { this._value[key] = value; return this._storage .setValue(this._shared, this._id, this._value) @@ -231,7 +231,7 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { } public async deactivateAll(): Promise { - let allPromises: Thenable[] = []; + let allPromises: Promise[] = []; try { const allExtensions = this._registry.getAllExtensionDescriptions(); const allExtensionsIds = allExtensions.map(ext => ext.id); @@ -253,16 +253,16 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { return false; } - private _activateByEvent(activationEvent: string, startup: boolean): Thenable { + private _activateByEvent(activationEvent: string, startup: boolean): Promise { const reason = new ExtensionActivatedByEvent(startup, activationEvent); return this._activator.activateByEvent(activationEvent, reason); } - private _activateById(extensionId: string, reason: ExtensionActivationReason): Thenable { + private _activateById(extensionId: string, reason: ExtensionActivationReason): Promise { return this._activator.activateById(extensionId, reason); } - public activateByIdWithErrors(extensionId: string, reason: ExtensionActivationReason): Thenable { + public activateByIdWithErrors(extensionId: string, reason: ExtensionActivationReason): Promise { return this._activateById(extensionId, reason).then(() => { const extension = this._activator.getActivatedExtension(extensionId); if (extension.activationFailed) { @@ -300,7 +300,7 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { return this._extensionPathIndex; } - private _deactivate(extensionId: string): Thenable { + private _deactivate(extensionId: string): Promise { let result = Promise.resolve(void 0); if (!this._barrier.isOpen()) { @@ -428,7 +428,7 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { }); } - private static _callActivate(logService: ILogService, extensionId: string, extensionModule: IExtensionModule, context: IExtensionContext, activationTimesBuilder: ExtensionActivationTimesBuilder): Thenable { + private static _callActivate(logService: ILogService, extensionId: string, extensionModule: IExtensionModule, context: IExtensionContext, activationTimesBuilder: ExtensionActivationTimesBuilder): Promise { // Make sure the extension's surface is not undefined extensionModule = extensionModule || { activate: undefined, @@ -440,12 +440,12 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { }); } - private static _callActivateOptional(logService: ILogService, extensionId: string, extensionModule: IExtensionModule, context: IExtensionContext, activationTimesBuilder: ExtensionActivationTimesBuilder): Thenable { + private static _callActivateOptional(logService: ILogService, extensionId: string, extensionModule: IExtensionModule, context: IExtensionContext, activationTimesBuilder: ExtensionActivationTimesBuilder): Promise { if (typeof extensionModule.activate === 'function') { try { activationTimesBuilder.activateCallStart(); logService.trace(`ExtensionService#_callActivateOptional ${extensionId}`); - const activateResult: Thenable = extensionModule.activate.apply(global, [context]); + const activateResult: Promise = extensionModule.activate.apply(global, [context]); activationTimesBuilder.activateCallStop(); activationTimesBuilder.activateResolveStart(); @@ -614,7 +614,7 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { setTimeout(() => this._nativeExit(code), 500); } - private _startExtensionHost(): Thenable { + private _startExtensionHost(): Promise { if (this._started) { throw new Error(`Extension host is already started!`); } @@ -634,12 +634,12 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { throw new Error(`Not implemented`); } - public $startExtensionHost(enabledExtensionIds: string[]): Thenable { + public $startExtensionHost(enabledExtensionIds: string[]): Promise { this._registry.keepOnly(enabledExtensionIds); return this._startExtensionHost(); } - public $activateByEvent(activationEvent: string): Thenable { + public $activateByEvent(activationEvent: string): Promise { return ( this._barrier.wait() .then(_ => this._activateByEvent(activationEvent, false)) diff --git a/src/vs/workbench/api/node/extHostFileSystemEventService.ts b/src/vs/workbench/api/node/extHostFileSystemEventService.ts index 2a44937ed2c..b3bce5d253f 100644 --- a/src/vs/workbench/api/node/extHostFileSystemEventService.ts +++ b/src/vs/workbench/api/node/extHostFileSystemEventService.ts @@ -139,7 +139,7 @@ export class ExtHostFileSystemEventService implements ExtHostFileSystemEventServ }; } - $onWillRename(oldUriDto: UriComponents, newUriDto: UriComponents): Thenable { + $onWillRename(oldUriDto: UriComponents, newUriDto: UriComponents): Promise { const oldUri = URI.revive(oldUriDto); const newUri = URI.revive(newUriDto); @@ -148,7 +148,7 @@ export class ExtHostFileSystemEventService implements ExtHostFileSystemEventServ return { oldUri, newUri, - waitUntil: (thenable: Thenable): void => { + waitUntil: (thenable: Promise): void => { if (Object.isFrozen(bucket)) { throw new TypeError('waitUntil cannot be called async'); } diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index a2172065376..d165594ba34 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -38,7 +38,7 @@ class OutlineAdapter { this._provider = provider; } - provideDocumentSymbols(resource: URI, token: CancellationToken): Thenable { + provideDocumentSymbols(resource: URI, token: CancellationToken): Promise { let doc = this._documents.getDocumentData(resource).document; return asThenable(() => this._provider.provideDocumentSymbols(doc, token)).then(value => { if (isFalsyOrEmpty(value)) { @@ -104,7 +104,7 @@ class CodeLensAdapter { private readonly _provider: vscode.CodeLensProvider ) { } - provideCodeLenses(resource: URI, token: CancellationToken): Thenable { + provideCodeLenses(resource: URI, token: CancellationToken): Promise { const doc = this._documents.getDocumentData(resource).document; return asThenable(() => this._provider.provideCodeLenses(doc, token)).then(lenses => { @@ -121,14 +121,14 @@ class CodeLensAdapter { }); } - resolveCodeLens(resource: URI, symbol: modes.ICodeLensSymbol, token: CancellationToken): Thenable { + resolveCodeLens(resource: URI, symbol: modes.ICodeLensSymbol, token: CancellationToken): Promise { const lens = this._heapService.get(ObjectIdentifier.of(symbol)); if (!lens) { return undefined; } - let resolve: Thenable; + let resolve: Promise; if (typeof this._provider.resolveCodeLens !== 'function' || lens.isResolved) { resolve = Promise.resolve(lens); } else { @@ -159,7 +159,7 @@ class DefinitionAdapter { private readonly _provider: vscode.DefinitionProvider ) { } - provideDefinition(resource: URI, position: IPosition, token: CancellationToken): Thenable { + provideDefinition(resource: URI, position: IPosition, token: CancellationToken): Promise { let doc = this._documents.getDocumentData(resource).document; let pos = typeConvert.Position.to(position); return asThenable(() => this._provider.provideDefinition(doc, pos, token)).then(convertToDefinitionLinks); @@ -173,7 +173,7 @@ class DeclarationAdapter { private readonly _provider: vscode.DeclarationProvider ) { } - provideDeclaration(resource: URI, position: IPosition, token: CancellationToken): Thenable { + provideDeclaration(resource: URI, position: IPosition, token: CancellationToken): Promise { let doc = this._documents.getDocumentData(resource).document; let pos = typeConvert.Position.to(position); return asThenable(() => this._provider.provideDeclaration(doc, pos, token)).then(convertToDefinitionLinks); @@ -187,7 +187,7 @@ class ImplementationAdapter { private readonly _provider: vscode.ImplementationProvider ) { } - provideImplementation(resource: URI, position: IPosition, token: CancellationToken): Thenable { + provideImplementation(resource: URI, position: IPosition, token: CancellationToken): Promise { let doc = this._documents.getDocumentData(resource).document; let pos = typeConvert.Position.to(position); return asThenable(() => this._provider.provideImplementation(doc, pos, token)).then(convertToDefinitionLinks); @@ -201,7 +201,7 @@ class TypeDefinitionAdapter { private readonly _provider: vscode.TypeDefinitionProvider ) { } - provideTypeDefinition(resource: URI, position: IPosition, token: CancellationToken): Thenable { + provideTypeDefinition(resource: URI, position: IPosition, token: CancellationToken): Promise { const doc = this._documents.getDocumentData(resource).document; const pos = typeConvert.Position.to(position); return asThenable(() => this._provider.provideTypeDefinition(doc, pos, token)).then(convertToDefinitionLinks); @@ -215,7 +215,7 @@ class HoverAdapter { private readonly _provider: vscode.HoverProvider, ) { } - public provideHover(resource: URI, position: IPosition, token: CancellationToken): Thenable { + public provideHover(resource: URI, position: IPosition, token: CancellationToken): Promise { let doc = this._documents.getDocumentData(resource).document; let pos = typeConvert.Position.to(position); @@ -243,7 +243,7 @@ class DocumentHighlightAdapter { private readonly _provider: vscode.DocumentHighlightProvider ) { } - provideDocumentHighlights(resource: URI, position: IPosition, token: CancellationToken): Thenable { + provideDocumentHighlights(resource: URI, position: IPosition, token: CancellationToken): Promise { let doc = this._documents.getDocumentData(resource).document; let pos = typeConvert.Position.to(position); @@ -264,7 +264,7 @@ class ReferenceAdapter { private readonly _provider: vscode.ReferenceProvider ) { } - provideReferences(resource: URI, position: IPosition, context: modes.ReferenceContext, token: CancellationToken): Thenable { + provideReferences(resource: URI, position: IPosition, context: modes.ReferenceContext, token: CancellationToken): Promise { let doc = this._documents.getDocumentData(resource).document; let pos = typeConvert.Position.to(position); @@ -292,7 +292,7 @@ class CodeActionAdapter { private readonly _extensionId: string ) { } - provideCodeActions(resource: URI, rangeOrSelection: IRange | ISelection, context: modes.CodeActionContext, token: CancellationToken): Thenable { + provideCodeActions(resource: URI, rangeOrSelection: IRange | ISelection, context: modes.CodeActionContext, token: CancellationToken): Promise { const doc = this._documents.getDocumentData(resource).document; const ran = Selection.isISelection(rangeOrSelection) @@ -363,7 +363,7 @@ class DocumentFormattingAdapter { private readonly _provider: vscode.DocumentFormattingEditProvider ) { } - provideDocumentFormattingEdits(resource: URI, options: modes.FormattingOptions, token: CancellationToken): Thenable { + provideDocumentFormattingEdits(resource: URI, options: modes.FormattingOptions, token: CancellationToken): Promise { const { document } = this._documents.getDocumentData(resource); @@ -383,7 +383,7 @@ class RangeFormattingAdapter { private readonly _provider: vscode.DocumentRangeFormattingEditProvider ) { } - provideDocumentRangeFormattingEdits(resource: URI, range: IRange, options: modes.FormattingOptions, token: CancellationToken): Thenable { + provideDocumentRangeFormattingEdits(resource: URI, range: IRange, options: modes.FormattingOptions, token: CancellationToken): Promise { const { document } = this._documents.getDocumentData(resource); const ran = typeConvert.Range.to(range); @@ -406,7 +406,7 @@ class OnTypeFormattingAdapter { autoFormatTriggerCharacters: string[] = []; // not here - provideOnTypeFormattingEdits(resource: URI, position: IPosition, ch: string, options: modes.FormattingOptions, token: CancellationToken): Thenable { + provideOnTypeFormattingEdits(resource: URI, position: IPosition, ch: string, options: modes.FormattingOptions, token: CancellationToken): Promise { const { document } = this._documents.getDocumentData(resource); const pos = typeConvert.Position.to(position); @@ -430,7 +430,7 @@ class NavigateTypeAdapter { this._provider = provider; } - provideWorkspaceSymbols(search: string, token: CancellationToken): Thenable { + provideWorkspaceSymbols(search: string, token: CancellationToken): Promise { const result: WorkspaceSymbolsDto = IdObject.mixin({ symbols: [] }); return asThenable(() => this._provider.provideWorkspaceSymbols(search, token)).then(value => { if (isNonEmptyArray(value)) { @@ -456,7 +456,7 @@ class NavigateTypeAdapter { }); } - resolveWorkspaceSymbol(symbol: WorkspaceSymbolDto, token: CancellationToken): Thenable { + resolveWorkspaceSymbol(symbol: WorkspaceSymbolDto, token: CancellationToken): Promise { if (typeof this._provider.resolveWorkspaceSymbol !== 'function') { return Promise.resolve(symbol); @@ -493,7 +493,7 @@ class RenameAdapter { private readonly _provider: vscode.RenameProvider ) { } - provideRenameEdits(resource: URI, position: IPosition, newName: string, token: CancellationToken): Thenable { + provideRenameEdits(resource: URI, position: IPosition, newName: string, token: CancellationToken): Promise { let doc = this._documents.getDocumentData(resource).document; let pos = typeConvert.Position.to(position); @@ -514,7 +514,7 @@ class RenameAdapter { }); } - resolveRenameLocation(resource: URI, position: IPosition, token: CancellationToken): Thenable { + resolveRenameLocation(resource: URI, position: IPosition, token: CancellationToken): Promise { if (typeof this._provider.prepareRename !== 'function') { return Promise.resolve(undefined); } @@ -583,7 +583,7 @@ class SuggestAdapter { this._provider = provider; } - provideCompletionItems(resource: URI, position: IPosition, context: modes.CompletionContext, token: CancellationToken): Thenable { + provideCompletionItems(resource: URI, position: IPosition, context: modes.CompletionContext, token: CancellationToken): Promise { const doc = this._documents.getDocumentData(resource).document; const pos = typeConvert.Position.to(position); @@ -630,7 +630,7 @@ class SuggestAdapter { }); } - resolveCompletionItem(resource: URI, position: IPosition, suggestion: modes.CompletionItem, token: CancellationToken): Thenable { + resolveCompletionItem(resource: URI, position: IPosition, suggestion: modes.CompletionItem, token: CancellationToken): Promise { if (typeof this._provider.resolveCompletionItem !== 'function') { return Promise.resolve(suggestion); @@ -733,7 +733,7 @@ class SignatureHelpAdapter { private readonly _provider: vscode.SignatureHelpProvider ) { } - provideSignatureHelp(resource: URI, position: IPosition, context: modes.SignatureHelpContext, token: CancellationToken): Thenable { + provideSignatureHelp(resource: URI, position: IPosition, context: modes.SignatureHelpContext, token: CancellationToken): Promise { const doc = this._documents.getDocumentData(resource).document; const pos = typeConvert.Position.to(position); @@ -755,7 +755,7 @@ class LinkProviderAdapter { private readonly _provider: vscode.DocumentLinkProvider ) { } - provideLinks(resource: URI, token: CancellationToken): Thenable { + provideLinks(resource: URI, token: CancellationToken): Promise { const doc = this._documents.getDocumentData(resource).document; return asThenable(() => this._provider.provideDocumentLinks(doc, token)).then(links => { @@ -773,7 +773,7 @@ class LinkProviderAdapter { }); } - resolveLink(link: modes.ILink, token: CancellationToken): Thenable { + resolveLink(link: modes.ILink, token: CancellationToken): Promise { if (typeof this._provider.resolveDocumentLink !== 'function') { return undefined; } @@ -800,7 +800,7 @@ class ColorProviderAdapter { private _provider: vscode.DocumentColorProvider ) { } - provideColors(resource: URI, token: CancellationToken): Thenable { + provideColors(resource: URI, token: CancellationToken): Promise { const doc = this._documents.getDocumentData(resource).document; return asThenable(() => this._provider.provideDocumentColors(doc, token)).then(colors => { if (!Array.isArray(colors)) { @@ -818,7 +818,7 @@ class ColorProviderAdapter { }); } - provideColorPresentations(resource: URI, raw: IRawColorInfo, token: CancellationToken): Thenable { + provideColorPresentations(resource: URI, raw: IRawColorInfo, token: CancellationToken): Promise { const document = this._documents.getDocumentData(resource).document; const range = typeConvert.Range.to(raw.range); const color = typeConvert.Color.to(raw.color); @@ -835,7 +835,7 @@ class FoldingProviderAdapter { private _provider: vscode.FoldingRangeProvider ) { } - provideFoldingRanges(resource: URI, context: modes.FoldingContext, token: CancellationToken): Thenable { + provideFoldingRanges(resource: URI, context: modes.FoldingContext, token: CancellationToken): Promise { const doc = this._documents.getDocumentData(resource).document; return asThenable(() => this._provider.provideFoldingRanges(doc, context, token)).then(ranges => { if (!Array.isArray(ranges)) { @@ -969,7 +969,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return ExtHostLanguageFeatures._handlePool++; } - private _withAdapter(handle: number, ctor: { new(...args: any[]): A }, callback: (adapter: A) => Thenable): Thenable { + private _withAdapter(handle: number, ctor: { new(...args: any[]): A }, callback: (adapter: A) => Promise): Promise { let data = this._adapter.get(handle); if (data.adapter instanceof ctor) { let t1: number; @@ -1007,7 +1007,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideDocumentSymbols(handle: number, resource: UriComponents, token: CancellationToken): Thenable { + $provideDocumentSymbols(handle: number, resource: UriComponents, token: CancellationToken): Promise { return this._withAdapter(handle, OutlineAdapter, adapter => adapter.provideDocumentSymbols(URI.revive(resource), token)); } @@ -1029,11 +1029,11 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return result; } - $provideCodeLenses(handle: number, resource: UriComponents, token: CancellationToken): Thenable { + $provideCodeLenses(handle: number, resource: UriComponents, token: CancellationToken): Promise { return this._withAdapter(handle, CodeLensAdapter, adapter => adapter.provideCodeLenses(URI.revive(resource), token)); } - $resolveCodeLens(handle: number, resource: UriComponents, symbol: modes.ICodeLensSymbol, token: CancellationToken): Thenable { + $resolveCodeLens(handle: number, resource: UriComponents, symbol: modes.ICodeLensSymbol, token: CancellationToken): Promise { return this._withAdapter(handle, CodeLensAdapter, adapter => adapter.resolveCodeLens(URI.revive(resource), symbol, token)); } @@ -1045,7 +1045,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable { + $provideDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise { return this._withAdapter(handle, DefinitionAdapter, adapter => adapter.provideDefinition(URI.revive(resource), position, token)); } @@ -1055,7 +1055,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideDeclaration(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable { + $provideDeclaration(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise { return this._withAdapter(handle, DeclarationAdapter, adapter => adapter.provideDeclaration(URI.revive(resource), position, token)); } @@ -1065,7 +1065,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideImplementation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable { + $provideImplementation(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise { return this._withAdapter(handle, ImplementationAdapter, adapter => adapter.provideImplementation(URI.revive(resource), position, token)); } @@ -1075,7 +1075,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideTypeDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable { + $provideTypeDefinition(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise { return this._withAdapter(handle, TypeDefinitionAdapter, adapter => adapter.provideTypeDefinition(URI.revive(resource), position, token)); } @@ -1087,7 +1087,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideHover(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable { + $provideHover(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise { return this._withAdapter(handle, HoverAdapter, adapter => adapter.provideHover(URI.revive(resource), position, token)); } @@ -1099,7 +1099,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideDocumentHighlights(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable { + $provideDocumentHighlights(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise { return this._withAdapter(handle, DocumentHighlightAdapter, adapter => adapter.provideDocumentHighlights(URI.revive(resource), position, token)); } @@ -1111,7 +1111,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideReferences(handle: number, resource: UriComponents, position: IPosition, context: modes.ReferenceContext, token: CancellationToken): Thenable { + $provideReferences(handle: number, resource: UriComponents, position: IPosition, context: modes.ReferenceContext, token: CancellationToken): Promise { return this._withAdapter(handle, ReferenceAdapter, adapter => adapter.provideReferences(URI.revive(resource), position, context, token)); } @@ -1124,7 +1124,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { } - $provideCodeActions(handle: number, resource: UriComponents, rangeOrSelection: IRange | ISelection, context: modes.CodeActionContext, token: CancellationToken): Thenable { + $provideCodeActions(handle: number, resource: UriComponents, rangeOrSelection: IRange | ISelection, context: modes.CodeActionContext, token: CancellationToken): Promise { return this._withAdapter(handle, CodeActionAdapter, adapter => adapter.provideCodeActions(URI.revive(resource), rangeOrSelection, context, token)); } @@ -1136,7 +1136,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideDocumentFormattingEdits(handle: number, resource: UriComponents, options: modes.FormattingOptions, token: CancellationToken): Thenable { + $provideDocumentFormattingEdits(handle: number, resource: UriComponents, options: modes.FormattingOptions, token: CancellationToken): Promise { return this._withAdapter(handle, DocumentFormattingAdapter, adapter => adapter.provideDocumentFormattingEdits(URI.revive(resource), options, token)); } @@ -1146,7 +1146,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideDocumentRangeFormattingEdits(handle: number, resource: UriComponents, range: IRange, options: modes.FormattingOptions, token: CancellationToken): Thenable { + $provideDocumentRangeFormattingEdits(handle: number, resource: UriComponents, range: IRange, options: modes.FormattingOptions, token: CancellationToken): Promise { return this._withAdapter(handle, RangeFormattingAdapter, adapter => adapter.provideDocumentRangeFormattingEdits(URI.revive(resource), range, options, token)); } @@ -1156,7 +1156,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideOnTypeFormattingEdits(handle: number, resource: UriComponents, position: IPosition, ch: string, options: modes.FormattingOptions, token: CancellationToken): Thenable { + $provideOnTypeFormattingEdits(handle: number, resource: UriComponents, position: IPosition, ch: string, options: modes.FormattingOptions, token: CancellationToken): Promise { return this._withAdapter(handle, OnTypeFormattingAdapter, adapter => adapter.provideOnTypeFormattingEdits(URI.revive(resource), position, ch, options, token)); } @@ -1168,11 +1168,11 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideWorkspaceSymbols(handle: number, search: string, token: CancellationToken): Thenable { + $provideWorkspaceSymbols(handle: number, search: string, token: CancellationToken): Promise { return this._withAdapter(handle, NavigateTypeAdapter, adapter => adapter.provideWorkspaceSymbols(search, token)); } - $resolveWorkspaceSymbol(handle: number, symbol: WorkspaceSymbolDto, token: CancellationToken): Thenable { + $resolveWorkspaceSymbol(handle: number, symbol: WorkspaceSymbolDto, token: CancellationToken): Promise { return this._withAdapter(handle, NavigateTypeAdapter, adapter => adapter.resolveWorkspaceSymbol(symbol, token)); } @@ -1188,11 +1188,11 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideRenameEdits(handle: number, resource: UriComponents, position: IPosition, newName: string, token: CancellationToken): Thenable { + $provideRenameEdits(handle: number, resource: UriComponents, position: IPosition, newName: string, token: CancellationToken): Promise { return this._withAdapter(handle, RenameAdapter, adapter => adapter.provideRenameEdits(URI.revive(resource), position, newName, token)); } - $resolveRenameLocation(handle: number, resource: URI, position: IPosition, token: CancellationToken): Thenable { + $resolveRenameLocation(handle: number, resource: URI, position: IPosition, token: CancellationToken): Promise { return this._withAdapter(handle, RenameAdapter, adapter => adapter.resolveRenameLocation(URI.revive(resource), position, token)); } @@ -1204,11 +1204,11 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideCompletionItems(handle: number, resource: UriComponents, position: IPosition, context: modes.CompletionContext, token: CancellationToken): Thenable { + $provideCompletionItems(handle: number, resource: UriComponents, position: IPosition, context: modes.CompletionContext, token: CancellationToken): Promise { return this._withAdapter(handle, SuggestAdapter, adapter => adapter.provideCompletionItems(URI.revive(resource), position, context, token)); } - $resolveCompletionItem(handle: number, resource: UriComponents, position: IPosition, suggestion: modes.CompletionItem, token: CancellationToken): Thenable { + $resolveCompletionItem(handle: number, resource: UriComponents, position: IPosition, suggestion: modes.CompletionItem, token: CancellationToken): Promise { return this._withAdapter(handle, SuggestAdapter, adapter => adapter.resolveCompletionItem(URI.revive(resource), position, suggestion, token)); } @@ -1228,7 +1228,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideSignatureHelp(handle: number, resource: UriComponents, position: IPosition, context: modes.SignatureHelpContext, token: CancellationToken): Thenable { + $provideSignatureHelp(handle: number, resource: UriComponents, position: IPosition, context: modes.SignatureHelpContext, token: CancellationToken): Promise { return this._withAdapter(handle, SignatureHelpAdapter, adapter => adapter.provideSignatureHelp(URI.revive(resource), position, context, token)); } @@ -1240,11 +1240,11 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideDocumentLinks(handle: number, resource: UriComponents, token: CancellationToken): Thenable { + $provideDocumentLinks(handle: number, resource: UriComponents, token: CancellationToken): Promise { return this._withAdapter(handle, LinkProviderAdapter, adapter => adapter.provideLinks(URI.revive(resource), token)); } - $resolveDocumentLink(handle: number, link: modes.ILink, token: CancellationToken): Thenable { + $resolveDocumentLink(handle: number, link: modes.ILink, token: CancellationToken): Promise { return this._withAdapter(handle, LinkProviderAdapter, adapter => adapter.resolveLink(link, token)); } @@ -1254,11 +1254,11 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideDocumentColors(handle: number, resource: UriComponents, token: CancellationToken): Thenable { + $provideDocumentColors(handle: number, resource: UriComponents, token: CancellationToken): Promise { return this._withAdapter(handle, ColorProviderAdapter, adapter => adapter.provideColors(URI.revive(resource), token)); } - $provideColorPresentations(handle: number, resource: UriComponents, colorInfo: IRawColorInfo, token: CancellationToken): Thenable { + $provideColorPresentations(handle: number, resource: UriComponents, colorInfo: IRawColorInfo, token: CancellationToken): Promise { return this._withAdapter(handle, ColorProviderAdapter, adapter => adapter.provideColorPresentations(URI.revive(resource), colorInfo, token)); } @@ -1268,7 +1268,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideFoldingRanges(handle: number, resource: UriComponents, context: vscode.FoldingContext, token: CancellationToken): Thenable { + $provideFoldingRanges(handle: number, resource: UriComponents, context: vscode.FoldingContext, token: CancellationToken): Promise { return this._withAdapter(handle, FoldingProviderAdapter, adapter => adapter.provideFoldingRanges(URI.revive(resource), context, token)); } @@ -1280,7 +1280,7 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { return this._createDisposable(handle); } - $provideSelectionRanges(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Thenable { + $provideSelectionRanges(handle: number, resource: UriComponents, position: IPosition, token: CancellationToken): Promise { return this._withAdapter(handle, SelectionRangeAdapter, adapter => adapter.provideSelectionRanges(URI.revive(resource), position, token)); } diff --git a/src/vs/workbench/api/node/extHostLanguages.ts b/src/vs/workbench/api/node/extHostLanguages.ts index fddc63becaa..6449d452e76 100644 --- a/src/vs/workbench/api/node/extHostLanguages.ts +++ b/src/vs/workbench/api/node/extHostLanguages.ts @@ -20,11 +20,11 @@ export class ExtHostLanguages { this._documents = documents; } - getLanguages(): Thenable { + getLanguages(): Promise { return this._proxy.$getLanguages(); } - changeLanguage(uri: vscode.Uri, languageId: string): Thenable { + changeLanguage(uri: vscode.Uri, languageId: string): Promise { return this._proxy.$changeLanguage(uri, languageId).then(() => { return this._documents.getDocumentData(uri).document; }); diff --git a/src/vs/workbench/api/node/extHostMessageService.ts b/src/vs/workbench/api/node/extHostMessageService.ts index f5bc168b537..f24be5f48b0 100644 --- a/src/vs/workbench/api/node/extHostMessageService.ts +++ b/src/vs/workbench/api/node/extHostMessageService.ts @@ -20,9 +20,9 @@ export class ExtHostMessageService { this._proxy = mainContext.getProxy(MainContext.MainThreadMessageService); } - showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | string, rest: string[]): Thenable; - showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | vscode.MessageItem, rest: vscode.MessageItem[]): Thenable; - showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | string | vscode.MessageItem, rest: (string | vscode.MessageItem)[]): Thenable { + showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | string, rest: string[]): Promise; + showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | vscode.MessageItem, rest: vscode.MessageItem[]): Promise; + showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | string | vscode.MessageItem, rest: (string | vscode.MessageItem)[]): Promise { let options: MainThreadMessageOptions = { extension }; let items: (string | vscode.MessageItem)[]; diff --git a/src/vs/workbench/api/node/extHostOutputService.ts b/src/vs/workbench/api/node/extHostOutputService.ts index 3cf3be59ea1..9e64042fc1b 100644 --- a/src/vs/workbench/api/node/extHostOutputService.ts +++ b/src/vs/workbench/api/node/extHostOutputService.ts @@ -14,7 +14,7 @@ import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle'; export abstract class AbstractExtHostOutputChannel extends Disposable implements vscode.OutputChannel { - readonly _id: Thenable; + readonly _id: Promise; private readonly _name: string; protected readonly _proxy: MainThreadOutputServiceShape; private _disposed: boolean; diff --git a/src/vs/workbench/api/node/extHostProgress.ts b/src/vs/workbench/api/node/extHostProgress.ts index ebe5cc7f407..4eb444f677a 100644 --- a/src/vs/workbench/api/node/extHostProgress.ts +++ b/src/vs/workbench/api/node/extHostProgress.ts @@ -89,4 +89,4 @@ class ProgressCallback extends Progress { throttledReport(p: IProgressStep): void { this._proxy.$progressReport(this._handle, p); } -} \ No newline at end of file +} diff --git a/src/vs/workbench/api/node/extHostQuickOpen.ts b/src/vs/workbench/api/node/extHostQuickOpen.ts index 33053514452..202e9952675 100644 --- a/src/vs/workbench/api/node/extHostQuickOpen.ts +++ b/src/vs/workbench/api/node/extHostQuickOpen.ts @@ -36,10 +36,10 @@ export class ExtHostQuickOpen implements ExtHostQuickOpenShape { this._commands = commands; } - showQuickPick(itemsOrItemsPromise: QuickPickItem[] | Thenable, enableProposedApi: boolean, options: QuickPickOptions & { canPickMany: true; }, token?: CancellationToken): Thenable; - showQuickPick(itemsOrItemsPromise: string[] | Thenable, enableProposedApi: boolean, options?: QuickPickOptions, token?: CancellationToken): Thenable; - showQuickPick(itemsOrItemsPromise: QuickPickItem[] | Thenable, enableProposedApi: boolean, options?: QuickPickOptions, token?: CancellationToken): Thenable; - showQuickPick(itemsOrItemsPromise: Item[] | Thenable, enableProposedApi: boolean, options?: QuickPickOptions, token: CancellationToken = CancellationToken.None): Thenable { + showQuickPick(itemsOrItemsPromise: QuickPickItem[] | Promise, enableProposedApi: boolean, options: QuickPickOptions & { canPickMany: true; }, token?: CancellationToken): Promise; + showQuickPick(itemsOrItemsPromise: string[] | Promise, enableProposedApi: boolean, options?: QuickPickOptions, token?: CancellationToken): Promise; + showQuickPick(itemsOrItemsPromise: QuickPickItem[] | Promise, enableProposedApi: boolean, options?: QuickPickOptions, token?: CancellationToken): Promise; + showQuickPick(itemsOrItemsPromise: Item[] | Promise, enableProposedApi: boolean, options?: QuickPickOptions, token: CancellationToken = CancellationToken.None): Promise { // clear state from last invocation this._onDidSelectItem = undefined; @@ -133,7 +133,7 @@ export class ExtHostQuickOpen implements ExtHostQuickOpenShape { // ---- input - showInput(options?: InputBoxOptions, token: CancellationToken = CancellationToken.None): Thenable { + showInput(options?: InputBoxOptions, token: CancellationToken = CancellationToken.None): Promise { // global validate fn used in callback below this._validateInput = options && options.validateInput; @@ -148,7 +148,7 @@ export class ExtHostQuickOpen implements ExtHostQuickOpenShape { }); } - $validateInput(input: string): Thenable { + $validateInput(input: string): Promise { if (this._validateInput) { return asThenable(() => this._validateInput(input)); } @@ -157,7 +157,7 @@ export class ExtHostQuickOpen implements ExtHostQuickOpenShape { // ---- workspace folder picker - showWorkspaceFolderPick(options?: WorkspaceFolderPickOptions, token = CancellationToken.None): Thenable { + showWorkspaceFolderPick(options?: WorkspaceFolderPickOptions, token = CancellationToken.None): Promise { return this._commands.executeCommand('_workbench.pickWorkspaceFolder', [options]).then((selectedFolder: WorkspaceFolder) => { if (!selectedFolder) { return undefined; diff --git a/src/vs/workbench/api/node/extHostSCM.ts b/src/vs/workbench/api/node/extHostSCM.ts index 1ed3ad6bba9..81c4a82160f 100644 --- a/src/vs/workbench/api/node/extHostSCM.ts +++ b/src/vs/workbench/api/node/extHostSCM.ts @@ -279,7 +279,7 @@ class ExtHostSourceControlResourceGroup implements vscode.SourceControlResourceG return this._resourceStatesMap.get(handle); } - $executeResourceCommand(handle: number): Thenable { + $executeResourceCommand(handle: number): Promise { const command = this._resourceStatesCommandsMap.get(handle); if (!command) { @@ -608,7 +608,7 @@ export class ExtHostSCM implements ExtHostSCMShape { return inputBox; } - $provideOriginalResource(sourceControlHandle: number, uriComponents: UriComponents, token: CancellationToken): Thenable { + $provideOriginalResource(sourceControlHandle: number, uriComponents: UriComponents, token: CancellationToken): Promise { const uri = URI.revive(uriComponents); this.logService.trace('ExtHostSCM#$provideOriginalResource', sourceControlHandle, uri.toString()); @@ -634,7 +634,7 @@ export class ExtHostSCM implements ExtHostSCMShape { return Promise.resolve(null); } - $executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): Thenable { + $executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): Promise { this.logService.trace('ExtHostSCM#$executeResourceCommand', sourceControlHandle, groupHandle, handle); const sourceControl = this._sourceControls.get(sourceControlHandle); @@ -652,7 +652,7 @@ export class ExtHostSCM implements ExtHostSCMShape { return group.$executeResourceCommand(handle); } - $validateInput(sourceControlHandle: number, value: string, cursorPosition: number): Thenable<[string, number] | undefined> { + $validateInput(sourceControlHandle: number, value: string, cursorPosition: number): Promise<[string, number] | undefined> { this.logService.trace('ExtHostSCM#$validateInput', sourceControlHandle); const sourceControl = this._sourceControls.get(sourceControlHandle); @@ -674,7 +674,7 @@ export class ExtHostSCM implements ExtHostSCMShape { }); } - $setSelectedSourceControls(selectedSourceControlHandles: number[]): Thenable { + $setSelectedSourceControls(selectedSourceControlHandles: number[]): Promise { this.logService.trace('ExtHostSCM#$setSelectedSourceControls', selectedSourceControlHandles); const set = new Set(); diff --git a/src/vs/workbench/api/node/extHostSearch.ts b/src/vs/workbench/api/node/extHostSearch.ts index a06729009c6..75436d5aa32 100644 --- a/src/vs/workbench/api/node/extHostSearch.ts +++ b/src/vs/workbench/api/node/extHostSearch.ts @@ -115,7 +115,7 @@ export class ExtHostSearch implements ExtHostSearchShape { }); } - $provideFileSearchResults(handle: number, session: number, rawQuery: IRawFileQuery, token: CancellationToken): Thenable { + $provideFileSearchResults(handle: number, session: number, rawQuery: IRawFileQuery, token: CancellationToken): Promise { const query = reviveQuery(rawQuery); if (handle === this._internalFileSearchHandle) { return this.doInternalFileSearch(handle, session, query, token); @@ -134,7 +134,7 @@ export class ExtHostSearch implements ExtHostSearchShape { } } - private doInternalFileSearch(handle: number, session: number, rawQuery: IFileQuery, token: CancellationToken): Thenable { + private doInternalFileSearch(handle: number, session: number, rawQuery: IFileQuery, token: CancellationToken): Promise { const onResult = (ev) => { if (isSerializedFileMatch(ev)) { ev = [ev]; @@ -153,7 +153,7 @@ export class ExtHostSearch implements ExtHostSearchShape { return this._internalFileSearchProvider.doFileSearch(rawQuery, onResult, token); } - $clearCache(cacheKey: string): Thenable { + $clearCache(cacheKey: string): Promise { if (this._internalFileSearchProvider) { this._internalFileSearchProvider.clearCache(cacheKey); } @@ -164,7 +164,7 @@ export class ExtHostSearch implements ExtHostSearchShape { return Promise.resolve(undefined); } - $provideTextSearchResults(handle: number, session: number, rawQuery: IRawTextQuery, token: CancellationToken): Thenable { + $provideTextSearchResults(handle: number, session: number, rawQuery: IRawTextQuery, token: CancellationToken): Promise { const provider = this._textSearchProvider.get(handle); if (!provider.provideTextSearchResults) { return Promise.resolve(undefined); diff --git a/src/vs/workbench/api/node/extHostStorage.ts b/src/vs/workbench/api/node/extHostStorage.ts index 04a8db63782..8925cdbb4d0 100644 --- a/src/vs/workbench/api/node/extHostStorage.ts +++ b/src/vs/workbench/api/node/extHostStorage.ts @@ -23,11 +23,11 @@ export class ExtHostStorage implements ExtHostStorageShape { this._proxy = mainContext.getProxy(MainContext.MainThreadStorage); } - getValue(shared: boolean, key: string, defaultValue?: T): Thenable { + getValue(shared: boolean, key: string, defaultValue?: T): Promise { return this._proxy.$getValue(shared, key).then(value => value || defaultValue); } - setValue(shared: boolean, key: string, value: object): Thenable { + setValue(shared: boolean, key: string, value: object): Promise { return this._proxy.$setValue(shared, key, value); } diff --git a/src/vs/workbench/api/node/extHostTask.ts b/src/vs/workbench/api/node/extHostTask.ts index 92d06dac9d2..d57fdecd022 100644 --- a/src/vs/workbench/api/node/extHostTask.ts +++ b/src/vs/workbench/api/node/extHostTask.ts @@ -775,7 +775,7 @@ export class ExtHostTask implements ExtHostTaskShape { this._proxy.$registerTaskSystem(scheme, info); } - public fetchTasks(filter?: vscode.TaskFilter): Thenable { + public fetchTasks(filter?: vscode.TaskFilter): Promise { return this._proxy.$fetchTasks(TaskFilterDTO.from(filter)).then((values) => { let result: vscode.Task[] = []; for (let value of values) { @@ -788,7 +788,7 @@ export class ExtHostTask implements ExtHostTaskShape { }); } - public executeTask(extension: IExtensionDescription, task: vscode.Task): Thenable { + public executeTask(extension: IExtensionDescription, task: vscode.Task): Promise { let tTask = (task as types.Task); // We have a preserved ID. So the task didn't change. if (tTask._id !== void 0) { @@ -808,7 +808,7 @@ export class ExtHostTask implements ExtHostTaskShape { return result; } - public terminateTask(execution: vscode.TaskExecution): Thenable { + public terminateTask(execution: vscode.TaskExecution): Promise { if (!(execution instanceof TaskExecutionImpl)) { throw new Error('No valid task execution provided'); } @@ -865,7 +865,7 @@ export class ExtHostTask implements ExtHostTaskShape { } } - public $provideTasks(handle: number, validTypes: { [key: string]: boolean; }): Thenable { + public $provideTasks(handle: number, validTypes: { [key: string]: boolean; }): Promise { let handler = this._handlers.get(handle); if (!handler) { return Promise.reject(new Error('no handler found')); @@ -888,7 +888,7 @@ export class ExtHostTask implements ExtHostTaskShape { }); } - public $resolveVariables(uriComponents: UriComponents, toResolve: { process?: { name: string; cwd?: string; path?: string }, variables: string[] }): Thenable<{ process?: string, variables: { [key: string]: string; } }> { + public $resolveVariables(uriComponents: UriComponents, toResolve: { process?: { name: string; cwd?: string; path?: string }, variables: string[] }): Promise<{ process?: string, variables: { [key: string]: string; } }> { let uri: URI = URI.revive(uriComponents); let result = { process: undefined as string, diff --git a/src/vs/workbench/api/node/extHostTerminalService.ts b/src/vs/workbench/api/node/extHostTerminalService.ts index ff374e794f1..ec3a2cc63b1 100644 --- a/src/vs/workbench/api/node/extHostTerminalService.ts +++ b/src/vs/workbench/api/node/extHostTerminalService.ts @@ -119,7 +119,7 @@ export class ExtHostTerminal extends BaseExtHostTerminal implements vscode.Termi this._name = name; } - public get processId(): Thenable { + public get processId(): Promise { return this._pidPromise; } diff --git a/src/vs/workbench/api/node/extHostTextEditor.ts b/src/vs/workbench/api/node/extHostTextEditor.ts index a78c80d9425..61e9417501f 100644 --- a/src/vs/workbench/api/node/extHostTextEditor.ts +++ b/src/vs/workbench/api/node/extHostTextEditor.ts @@ -482,7 +482,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { ); } - private _trySetSelection(): Thenable { + private _trySetSelection(): Promise { let selection = this._selections.map(TypeConverters.Selection.from); return this._runOnProxy(() => this._proxy.$trySetSelections(this._id, selection)); } @@ -494,7 +494,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { // ---- editing - edit(callback: (edit: TextEditorEdit) => void, options: { undoStopBefore: boolean; undoStopAfter: boolean; } = { undoStopBefore: true, undoStopAfter: true }): Thenable { + edit(callback: (edit: TextEditorEdit) => void, options: { undoStopBefore: boolean; undoStopAfter: boolean; } = { undoStopBefore: true, undoStopAfter: true }): Promise { if (this._disposed) { return Promise.reject(new Error('TextEditor#edit not possible on closed editors')); } @@ -503,7 +503,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { return this._applyEdit(edit); } - private _applyEdit(editBuilder: TextEditorEdit): Thenable { + private _applyEdit(editBuilder: TextEditorEdit): Promise { let editData = editBuilder.finalize(); // return when there is nothing to do @@ -557,7 +557,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { }); } - insertSnippet(snippet: SnippetString, where?: Position | Position[] | Range | Range[], options: { undoStopBefore: boolean; undoStopAfter: boolean; } = { undoStopBefore: true, undoStopAfter: true }): Thenable { + insertSnippet(snippet: SnippetString, where?: Position | Position[] | Range | Range[], options: { undoStopBefore: boolean; undoStopAfter: boolean; } = { undoStopBefore: true, undoStopAfter: true }): Promise { if (this._disposed) { return Promise.reject(new Error('TextEditor#insertSnippet not possible on closed editors')); } @@ -589,7 +589,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { // ---- util - private _runOnProxy(callback: () => Thenable): Thenable { + private _runOnProxy(callback: () => Promise): Promise { if (this._disposed) { console.warn('TextEditor is closed/disposed'); return Promise.resolve(undefined); @@ -603,7 +603,7 @@ export class ExtHostTextEditor implements vscode.TextEditor { } } -function warnOnError(promise: Thenable): void { +function warnOnError(promise: Promise): void { promise.then(void 0, (err) => { console.warn(err); }); diff --git a/src/vs/workbench/api/node/extHostTextEditors.ts b/src/vs/workbench/api/node/extHostTextEditors.ts index def77250f79..7843bd63662 100644 --- a/src/vs/workbench/api/node/extHostTextEditors.ts +++ b/src/vs/workbench/api/node/extHostTextEditors.ts @@ -50,10 +50,10 @@ export class ExtHostEditors implements ExtHostEditorsShape { return this._extHostDocumentsAndEditors.allEditors(); } - showTextDocument(document: vscode.TextDocument, column: vscode.ViewColumn, preserveFocus: boolean): Thenable; - showTextDocument(document: vscode.TextDocument, options: { column: vscode.ViewColumn, preserveFocus: boolean, pinned: boolean }): Thenable; - showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): Thenable; - showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): Thenable { + showTextDocument(document: vscode.TextDocument, column: vscode.ViewColumn, preserveFocus: boolean): Promise; + showTextDocument(document: vscode.TextDocument, options: { column: vscode.ViewColumn, preserveFocus: boolean, pinned: boolean }): Promise; + showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): Promise; + showTextDocument(document: vscode.TextDocument, columnOrOptions: vscode.ViewColumn | vscode.TextDocumentShowOptions, preserveFocus?: boolean): Promise { let options: ITextDocumentShowOptions; if (typeof columnOrOptions === 'number') { options = { @@ -87,7 +87,7 @@ export class ExtHostEditors implements ExtHostEditorsShape { return new TextEditorDecorationType(this._proxy, options); } - applyWorkspaceEdit(edit: vscode.WorkspaceEdit): Thenable { + applyWorkspaceEdit(edit: vscode.WorkspaceEdit): Promise { const dto = TypeConverters.WorkspaceEdit.from(edit, this._extHostDocumentsAndEditors); return this._proxy.$tryApplyWorkspaceEdit(dto); } @@ -146,7 +146,7 @@ export class ExtHostEditors implements ExtHostEditorsShape { } } - getDiffInformation(id: string): Thenable { + getDiffInformation(id: string): Promise { return Promise.resolve(this._proxy.$getDiffInformation(id)); } } diff --git a/src/vs/workbench/api/node/extHostTreeViews.ts b/src/vs/workbench/api/node/extHostTreeViews.ts index 8d71acffbcf..80b280fcef7 100644 --- a/src/vs/workbench/api/node/extHostTreeViews.ts +++ b/src/vs/workbench/api/node/extHostTreeViews.ts @@ -82,7 +82,7 @@ export class ExtHostTreeViews implements ExtHostTreeViewsShape { get onDidChangeVisibility() { return treeView.onDidChangeVisibility; }, get message() { return treeView.message; }, set message(message: string | MarkdownString) { checkProposedApiEnabled(extension); treeView.message = message; }, - reveal: (element: T, options?: IRevealOptions): Thenable => { + reveal: (element: T, options?: IRevealOptions): Promise => { return treeView.reveal(element, options); }, dispose: () => { @@ -92,7 +92,7 @@ export class ExtHostTreeViews implements ExtHostTreeViewsShape { }; } - $getChildren(treeViewId: string, treeItemHandle?: string): Thenable { + $getChildren(treeViewId: string, treeItemHandle?: string): Promise { const treeView = this.treeViews.get(treeViewId); if (!treeView) { return Promise.reject(new Error(localize('treeView.notRegistered', 'No tree view with id \'{0}\' registered.', treeViewId))); @@ -194,7 +194,7 @@ class ExtHostTreeView extends Disposable { } } - getChildren(parentHandle?: TreeItemHandle): Thenable { + getChildren(parentHandle?: TreeItemHandle): Promise { const parentElement = parentHandle ? this.getExtensionElement(parentHandle) : void 0; if (parentHandle && !parentElement) { console.error(`No tree item with id \'${parentHandle}\' found.`); @@ -260,7 +260,7 @@ class ExtHostTreeView extends Disposable { } } - private resolveUnknownParentChain(element: T): Thenable { + private resolveUnknownParentChain(element: T): Promise { return this.resolveParent(element) .then((parent) => { if (!parent) { @@ -275,7 +275,7 @@ class ExtHostTreeView extends Disposable { }); } - private resolveParent(element: T): Thenable { + private resolveParent(element: T): Promise { const node = this.nodes.get(element); if (node) { return Promise.resolve(node.parent ? this.elements.get(node.parent.item.handle) : null); @@ -283,7 +283,7 @@ class ExtHostTreeView extends Disposable { return asThenable(() => this.dataProvider.getParent(element)); } - private resolveTreeNode(element: T, parent?: TreeNode): Thenable { + private resolveTreeNode(element: T, parent?: TreeNode): Promise { const node = this.nodes.get(element); if (node) { return Promise.resolve(node); @@ -317,7 +317,7 @@ class ExtHostTreeView extends Disposable { return this.roots; } - private fetchChildrenNodes(parentElement?: T): Thenable { + private fetchChildrenNodes(parentElement?: T): Promise { // clear children cache this.clearChildren(parentElement); @@ -330,7 +330,7 @@ class ExtHostTreeView extends Disposable { .then(coalesce); } - private refresh(elements: T[]): Thenable { + private refresh(elements: T[]): Promise { const hasRoot = elements.some(element => !element); if (hasRoot) { this.clearAll(); // clear cache @@ -386,7 +386,7 @@ class ExtHostTreeView extends Disposable { .then(() => Object.keys(itemsToRefresh).length ? this.proxy.$refresh(this.viewId, itemsToRefresh) : null); } - private refreshNode(treeItemHandle: TreeItemHandle): Thenable { + private refreshNode(treeItemHandle: TreeItemHandle): Promise { const extElement = this.getExtensionElement(treeItemHandle); const existing = this.nodes.get(extElement); this.clearChildren(extElement); // clear children cache diff --git a/src/vs/workbench/api/node/extHostUrls.ts b/src/vs/workbench/api/node/extHostUrls.ts index 23bfb2e3d6c..5260672b8d4 100644 --- a/src/vs/workbench/api/node/extHostUrls.ts +++ b/src/vs/workbench/api/node/extHostUrls.ts @@ -40,7 +40,7 @@ export class ExtHostUrls implements ExtHostUrlsShape { }); } - $handleExternalUri(handle: number, uri: UriComponents): Thenable { + $handleExternalUri(handle: number, uri: UriComponents): Promise { const handler = this.handlers.get(handle); if (!handler) { diff --git a/src/vs/workbench/api/node/extHostWebview.ts b/src/vs/workbench/api/node/extHostWebview.ts index 93c50645b77..6fa89896fa0 100644 --- a/src/vs/workbench/api/node/extHostWebview.ts +++ b/src/vs/workbench/api/node/extHostWebview.ts @@ -62,7 +62,7 @@ export class ExtHostWebview implements vscode.Webview { this._options = newOptions; } - public postMessage(message: any): Thenable { + public postMessage(message: any): Promise { this.assertNotDisposed(); return this._proxy.$postMessage(this._handle, message); } @@ -201,7 +201,7 @@ export class ExtHostWebviewPanel implements vscode.WebviewPanel { this._visible = value; } - public postMessage(message: any): Thenable { + public postMessage(message: any): Promise { this.assertNotDisposed(); return this._proxy.$postMessage(this._handle, message); } @@ -305,7 +305,7 @@ export class ExtHostWebviews implements ExtHostWebviewsShape { } } - $onDidDisposeWebviewPanel(handle: WebviewPanelHandle): Thenable { + $onDidDisposeWebviewPanel(handle: WebviewPanelHandle): Promise { const panel = this.getWebviewPanel(handle); if (panel) { panel.dispose(); @@ -321,7 +321,7 @@ export class ExtHostWebviews implements ExtHostWebviewsShape { state: any, position: EditorViewColumn, options: vscode.WebviewOptions & vscode.WebviewPanelOptions - ): Thenable { + ): Promise { const serializer = this._serializers.get(viewType); if (!serializer) { return Promise.reject(new Error(`No serializer found for '${viewType}'`)); @@ -330,7 +330,7 @@ export class ExtHostWebviews implements ExtHostWebviewsShape { const webview = new ExtHostWebview(webviewHandle, this._proxy, options); const revivedPanel = new ExtHostWebviewPanel(webviewHandle, this._proxy, viewType, title, typeConverters.ViewColumn.to(position), options, webview); this._webviewPanels.set(webviewHandle, revivedPanel); - return serializer.deserializeWebviewPanel(revivedPanel, state); + return Promise.resolve(serializer.deserializeWebviewPanel(revivedPanel, state)); } private getWebviewPanel(handle: WebviewPanelHandle): ExtHostWebviewPanel | undefined { diff --git a/src/vs/workbench/api/node/extHostWorkspace.ts b/src/vs/workbench/api/node/extHostWorkspace.ts index b2cd3e82d15..15cb4162e77 100644 --- a/src/vs/workbench/api/node/extHostWorkspace.ts +++ b/src/vs/workbench/api/node/extHostWorkspace.ts @@ -345,7 +345,7 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape { // --- search --- - findFiles(include: string | RelativePattern, exclude: vscode.GlobPattern, maxResults: number, extensionId: string, token: vscode.CancellationToken = CancellationToken.None): Thenable { + findFiles(include: string | RelativePattern, exclude: vscode.GlobPattern, maxResults: number, extensionId: string, token: vscode.CancellationToken = CancellationToken.None): Promise { this._logService.trace(`extHostWorkspace#findFiles: fileSearch, extension: ${extensionId}, entryPoint: findFiles`); let includePattern: string; @@ -380,7 +380,7 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape { .then(data => Array.isArray(data) ? data.map(URI.revive) : []); } - findTextInFiles(query: vscode.TextSearchQuery, options: vscode.FindTextInFilesOptions, callback: (result: vscode.TextSearchResult) => void, extensionId: string, token: vscode.CancellationToken = CancellationToken.None): Thenable { + findTextInFiles(query: vscode.TextSearchQuery, options: vscode.FindTextInFilesOptions, callback: (result: vscode.TextSearchResult) => void, extensionId: string, token: vscode.CancellationToken = CancellationToken.None): Promise { this._logService.trace(`extHostWorkspace#findTextInFiles: textSearch, extension: ${extensionId}, entryPoint: findTextInFiles`); const requestId = this._requestIdProvider.getNext(); @@ -466,11 +466,11 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape { } } - saveAll(includeUntitled?: boolean): Thenable { + saveAll(includeUntitled?: boolean): Promise { return this._proxy.$saveAll(includeUntitled); } - resolveProxy(url: string): Thenable { + resolveProxy(url: string): Promise { return this._proxy.$resolveProxy(url); } } diff --git a/src/vs/workbench/browser/actions/toggleSidebarVisibility.ts b/src/vs/workbench/browser/actions/toggleSidebarVisibility.ts index 921dc26b558..51ef3f93c98 100644 --- a/src/vs/workbench/browser/actions/toggleSidebarVisibility.ts +++ b/src/vs/workbench/browser/actions/toggleSidebarVisibility.ts @@ -26,7 +26,7 @@ export class ToggleSidebarVisibilityAction extends Action { this.enabled = !!this.partService; } - run(): Thenable { + run(): Promise { const hideSidebar = this.partService.isVisible(Parts.SIDEBAR_PART); this.partService.setSideBarHidden(hideSidebar); diff --git a/src/vs/workbench/browser/actions/workspaceActions.ts b/src/vs/workbench/browser/actions/workspaceActions.ts index 79885e6f18b..2ce97f9c32c 100644 --- a/src/vs/workbench/browser/actions/workspaceActions.ts +++ b/src/vs/workbench/browser/actions/workspaceActions.ts @@ -31,7 +31,7 @@ export class OpenFileAction extends Action { super(id, label); } - run(event?: any, data?: ITelemetryData): Thenable { + run(event?: any, data?: ITelemetryData): Promise { return this.dialogService.pickFileAndOpen({ forceNewWindow: false, telemetryExtraData: data }); } } @@ -49,7 +49,7 @@ export class OpenFolderAction extends Action { super(id, label); } - run(event?: any, data?: ITelemetryData): Thenable { + run(event?: any, data?: ITelemetryData): Promise { return this.dialogService.pickFolderAndOpen({ forceNewWindow: false, telemetryExtraData: data }); } } @@ -67,7 +67,7 @@ export class OpenFileFolderAction extends Action { super(id, label); } - run(event?: any, data?: ITelemetryData): Thenable { + run(event?: any, data?: ITelemetryData): Promise { return this.dialogService.pickFileFolderAndOpen({ forceNewWindow: false, telemetryExtraData: data }); } } @@ -85,7 +85,7 @@ export class AddRootFolderAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.commandService.executeCommand(ADD_ROOT_FOLDER_COMMAND_ID); } } @@ -105,7 +105,7 @@ export class GlobalRemoveRootFolderAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const state = this.contextService.getWorkbenchState(); // Workspace / Folder @@ -139,7 +139,7 @@ export class SaveWorkspaceAsAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.getNewWorkspaceConfigPath().then(configPathUri => { if (configPathUri) { const configPath = configPathUri.fsPath; @@ -158,7 +158,7 @@ export class SaveWorkspaceAsAction extends Action { }); } - private getNewWorkspaceConfigPath(): Thenable { + private getNewWorkspaceConfigPath(): Promise { return this.dialogService.showSaveDialog({ saveLabel: mnemonicButtonLabel(nls.localize({ key: 'save', comment: ['&& denotes a mnemonic'] }, "&&Save")), title: nls.localize('saveWorkspace', "Save Workspace"), @@ -181,7 +181,7 @@ export class OpenWorkspaceAction extends Action { super(id, label); } - run(event?: any, data?: ITelemetryData): Thenable { + run(event?: any, data?: ITelemetryData): Promise { return this.dialogService.pickWorkspaceAndOpen({ telemetryExtraData: data }); } } @@ -202,7 +202,7 @@ export class OpenWorkspaceConfigFileAction extends Action { this.enabled = !!this.workspaceContextService.getWorkspace().configuration; } - run(): Thenable { + run(): Promise { return this.editorService.openEditor({ resource: this.workspaceContextService.getWorkspace().configuration }); } } @@ -223,7 +223,7 @@ export class DuplicateWorkspaceInNewWindowAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const folders = this.workspaceContextService.getWorkspace().folders; return this.workspacesService.createWorkspace(folders).then(newWorkspace => { diff --git a/src/vs/workbench/browser/dnd.ts b/src/vs/workbench/browser/dnd.ts index 38bf337a617..dd1d09e2e28 100644 --- a/src/vs/workbench/browser/dnd.ts +++ b/src/vs/workbench/browser/dnd.ts @@ -206,7 +206,7 @@ export class ResourcesDropHandler { }); } - private doHandleDrop(untitledOrFileResources: (IDraggedResource | IDraggedEditor)[]): Thenable { + private doHandleDrop(untitledOrFileResources: (IDraggedResource | IDraggedEditor)[]): Promise { // Check for dirty editors being dropped const resourcesWithBackups: IDraggedEditor[] = untitledOrFileResources.filter(resource => !resource.isExternal && !!(resource as IDraggedEditor).backupResource); @@ -225,7 +225,7 @@ export class ResourcesDropHandler { return Promise.resolve(false); } - private handleDirtyEditorDrop(droppedDirtyEditor: IDraggedEditor): Thenable { + private handleDirtyEditorDrop(droppedDirtyEditor: IDraggedEditor): Promise { // Untitled: always ensure that we open a new untitled for each file we drop if (droppedDirtyEditor.resource.scheme === Schemas.untitled) { @@ -254,7 +254,7 @@ export class ResourcesDropHandler { return DefaultEndOfLine.LF; } - private handleWorkspaceFileDrop(fileOnDiskResources: URI[]): Thenable { + private handleWorkspaceFileDrop(fileOnDiskResources: URI[]): Promise { const workspaceResources: { workspaces: URI[], folders: URI[] } = { workspaces: [], folders: [] @@ -286,7 +286,7 @@ export class ResourcesDropHandler { // Pass focus to window this.windowService.focusWindow(); - let workspacesToOpen: Thenable; + let workspacesToOpen: Promise; // Open in separate windows if we drop workspaces or just one folder if (workspaces.length > 0 || folders.length === 1) { diff --git a/src/vs/workbench/browser/panel.ts b/src/vs/workbench/browser/panel.ts index f827e998708..9aa0915c856 100644 --- a/src/vs/workbench/browser/panel.ts +++ b/src/vs/workbench/browser/panel.ts @@ -75,7 +75,7 @@ export abstract class TogglePanelAction extends Action { this.panelId = panelId; } - run(): Thenable { + run(): Promise { if (this.isPanelFocused()) { this.partService.setPanelHidden(true); } else { diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts index 627a12e72bd..d045a40e5fc 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarActions.ts @@ -43,7 +43,7 @@ export class ViewletActivityAction extends ActivityAction { super(activity); } - run(event: any): Thenable { + run(event: any): Promise { if (event instanceof MouseEvent && event.button === 2) { return Promise.resolve(false); // do not run on right click } @@ -90,7 +90,7 @@ export class ToggleViewletAction extends Action { super(_viewlet.id, _viewlet.name); } - run(): Thenable { + run(): Promise { const sideBarVisible = this.partService.isVisible(Parts.SIDEBAR_PART); const activeViewlet = this.viewletService.getActiveViewlet(); @@ -206,7 +206,7 @@ class SwitchSideBarViewAction extends Action { super(id, name); } - run(offset: number): Thenable { + run(offset: number): Promise { const pinnedViewletIds = this.activityService.getPinnedViewletIds(); const activeViewlet = this.viewletService.getActiveViewlet(); @@ -238,7 +238,7 @@ export class PreviousSideBarViewAction extends SwitchSideBarViewAction { super(id, name, viewletService, activityService); } - run(): Thenable { + run(): Promise { return super.run(-1); } } @@ -257,7 +257,7 @@ export class NextSideBarViewAction extends SwitchSideBarViewAction { super(id, name, viewletService, activityService); } - run(): Thenable { + run(): Promise { return super.run(1); } } diff --git a/src/vs/workbench/browser/parts/compositeBar.ts b/src/vs/workbench/browser/parts/compositeBar.ts index d5881e26d65..b235c20b06a 100644 --- a/src/vs/workbench/browser/parts/compositeBar.ts +++ b/src/vs/workbench/browser/parts/compositeBar.ts @@ -39,7 +39,7 @@ export interface ICompositeBarOptions { getCompositePinnedAction: (compositeId: string) => Action; getOnCompositeClickAction: (compositeId: string) => Action; getContextMenuActions: () => Action[]; - openComposite: (compositeId: string) => Thenable; + openComposite: (compositeId: string) => Promise; getDefaultCompositeId: () => string; hidePart: () => void; } diff --git a/src/vs/workbench/browser/parts/editor/baseEditor.ts b/src/vs/workbench/browser/parts/editor/baseEditor.ts index 2bd03e27045..f8e3014ad63 100644 --- a/src/vs/workbench/browser/parts/editor/baseEditor.ts +++ b/src/vs/workbench/browser/parts/editor/baseEditor.ts @@ -77,7 +77,7 @@ export abstract class BaseEditor extends Panel implements IEditor { * The provided cancellation token should be used to test if the operation * was cancelled. */ - setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { this._input = input; this._options = options; diff --git a/src/vs/workbench/browser/parts/editor/binaryEditor.ts b/src/vs/workbench/browser/parts/editor/binaryEditor.ts index 79d53b8b8b4..733a359cb22 100644 --- a/src/vs/workbench/browser/parts/editor/binaryEditor.ts +++ b/src/vs/workbench/browser/parts/editor/binaryEditor.ts @@ -21,7 +21,7 @@ import { dispose } from 'vs/base/common/lifecycle'; import { IStorageService } from 'vs/platform/storage/common/storage'; export interface IOpenCallbacks { - openInternal: (input: EditorInput, options: EditorOptions) => Thenable; + openInternal: (input: EditorInput, options: EditorOptions) => Promise; openExternal: (uri: URI) => void; } @@ -72,7 +72,7 @@ export abstract class BaseBinaryResourceEditor extends BaseEditor { parent.appendChild(this.scrollbar.getDomNode()); } - setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { return super.setInput(input, options, token).then(() => { return input.resolve().then(model => { diff --git a/src/vs/workbench/browser/parts/editor/breadcrumbs.ts b/src/vs/workbench/browser/parts/editor/breadcrumbs.ts index d9db7b89d1f..841ae7146fd 100644 --- a/src/vs/workbench/browser/parts/editor/breadcrumbs.ts +++ b/src/vs/workbench/browser/parts/editor/breadcrumbs.ts @@ -59,7 +59,7 @@ export abstract class BreadcrumbsConfig { onDidChange: Event; abstract getValue(overrides?: IConfigurationOverrides): T; - abstract updateValue(value: T, overrides?: IConfigurationOverrides): Thenable; + abstract updateValue(value: T, overrides?: IConfigurationOverrides): Promise; abstract dispose(): void; private constructor() { @@ -92,7 +92,7 @@ export abstract class BreadcrumbsConfig { getValue(overrides?: IConfigurationOverrides): T { return service.getValue(name, overrides); } - updateValue(newValue: T, overrides?: IConfigurationOverrides): Thenable { + updateValue(newValue: T, overrides?: IConfigurationOverrides): Promise { return service.updateValue(name, newValue, overrides); } dispose(): void { diff --git a/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.ts b/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.ts index 9c844bfb451..88055da1e0e 100644 --- a/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.ts +++ b/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.ts @@ -227,7 +227,7 @@ export class FileDataSource implements IDataSource { return URI.isUri(element) || IWorkspace.isIWorkspace(element) || IWorkspaceFolder.isIWorkspaceFolder(element) || element.isDirectory; } - getChildren(tree: ITree, element: IWorkspace | IWorkspaceFolder | IFileStat | URI): Thenable { + getChildren(tree: ITree, element: IWorkspace | IWorkspaceFolder | IFileStat | URI): Promise { if (IWorkspace.isIWorkspace(element)) { return Promise.resolve(element.folders).then(folders => { for (let child of folders) { @@ -252,7 +252,7 @@ export class FileDataSource implements IDataSource { }); } - getParent(tree: ITree, element: IWorkspace | URI | IWorkspaceFolder | IFileStat): Thenable { + getParent(tree: ITree, element: IWorkspace | URI | IWorkspaceFolder | IFileStat): Promise { return Promise.resolve(this._parents.get(element)); } } diff --git a/src/vs/workbench/browser/parts/editor/editor.ts b/src/vs/workbench/browser/parts/editor/editor.ts index 4d91fd06327..7fb2b96ca90 100644 --- a/src/vs/workbench/browser/parts/editor/editor.ts +++ b/src/vs/workbench/browser/parts/editor/editor.ts @@ -76,7 +76,7 @@ export interface IEditorOpeningEvent extends IEditorIdentifier { * to return a promise that resolves to NULL to prevent the opening * alltogether. */ - prevent(callback: () => Thenable): void; + prevent(callback: () => Promise): void; } export interface IEditorGroupsAccessor { @@ -102,7 +102,7 @@ export interface IEditorGroupsAccessor { export interface IEditorGroupView extends IDisposable, ISerializableView, IEditorGroup { readonly group: EditorGroup; - readonly whenRestored: Thenable; + readonly whenRestored: Promise; readonly disposed: boolean; readonly onDidFocus: Event; @@ -155,5 +155,5 @@ export interface EditorGroupsServiceImpl extends IEditorGroupsService { /** * A promise that resolves when groups have been restored. */ - readonly whenRestored: Thenable; + readonly whenRestored: Promise; } diff --git a/src/vs/workbench/browser/parts/editor/editorActions.ts b/src/vs/workbench/browser/parts/editor/editorActions.ts index bcf9cf0dcdf..5a7979e0df7 100644 --- a/src/vs/workbench/browser/parts/editor/editorActions.ts +++ b/src/vs/workbench/browser/parts/editor/editorActions.ts @@ -35,7 +35,7 @@ export class ExecuteCommandAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.commandService.executeCommand(this.commandId, this.commandArgs); } } @@ -242,7 +242,7 @@ export class NavigateBetweenGroupsAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const nextGroup = this.editorGroupService.findGroup({ location: GroupLocation.NEXT }, this.editorGroupService.activeGroup, true); nextGroup.focus(); @@ -263,7 +263,7 @@ export class FocusActiveGroupAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.editorGroupService.activeGroup.focus(); return Promise.resolve(true); @@ -281,7 +281,7 @@ export abstract class BaseFocusGroupAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const group = this.editorGroupService.findGroup(this.scope, this.editorGroupService.activeGroup, true); if (group) { group.focus(); @@ -423,7 +423,7 @@ export class OpenToSideFromQuickOpenAction extends Action { this.class = (preferredDirection === GroupDirection.RIGHT) ? 'quick-open-sidebyside-vertical' : 'quick-open-sidebyside-horizontal'; } - run(context: any): Thenable { + run(context: any): Promise { const entry = toEditorQuickOpenEntry(context); if (entry) { const input = entry.getInput(); @@ -490,7 +490,7 @@ export class CloseOneEditorAction extends Action { super(id, label, 'close-editor-action'); } - run(context?: IEditorCommandsContext): Thenable { + run(context?: IEditorCommandsContext): Promise { let group: IEditorGroup; let editorIndex: number; if (context) { @@ -535,7 +535,7 @@ export class RevertAndCloseEditorAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const activeControl = this.editorService.activeControl; if (activeControl) { const editor = activeControl.input; @@ -569,7 +569,7 @@ export class CloseLeftEditorsInGroupAction extends Action { super(id, label); } - run(context?: IEditorIdentifier): Thenable { + run(context?: IEditorIdentifier): Promise { const { group, editor } = getTarget(this.editorService, this.editorGroupService, context); if (group && editor) { return group.closeEditors({ direction: CloseDirection.LEFT, except: editor }); @@ -614,7 +614,7 @@ export abstract class BaseCloseAllAction extends Action { return groupsToClose; } - run(): Thenable { + run(): Promise { // Just close all if there are no or one dirty editor if (this.textFileService.getDirty().length < 2) { @@ -627,7 +627,7 @@ export abstract class BaseCloseAllAction extends Action { return void 0; } - let saveOrRevertPromise: Thenable; + let saveOrRevertPromise: Promise; if (confirm === ConfirmResult.DONT_SAVE) { saveOrRevertPromise = this.textFileService.revertAll(null, { soft: true }).then(() => true); } else { @@ -644,7 +644,7 @@ export abstract class BaseCloseAllAction extends Action { }); } - protected abstract doCloseAll(): Thenable; + protected abstract doCloseAll(): Promise; } export class CloseAllEditorsAction extends BaseCloseAllAction { @@ -700,7 +700,7 @@ export class CloseEditorsInOtherGroupsAction extends Action { super(id, label); } - run(context?: IEditorIdentifier): Thenable { + run(context?: IEditorIdentifier): Promise { const groupToSkip = context ? this.editorGroupService.getGroup(context.groupId) : this.editorGroupService.activeGroup; return Promise.all(this.editorGroupService.getGroups(GroupsOrder.MOST_RECENTLY_ACTIVE).map(g => { if (g.id === groupToSkip.id) { @@ -726,7 +726,7 @@ export class CloseEditorInAllGroupsAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const activeEditor = this.editorService.activeEditor; if (activeEditor) { return Promise.all(this.editorGroupService.getGroups(GroupsOrder.MOST_RECENTLY_ACTIVE).map(g => g.closeEditor(activeEditor))); @@ -856,7 +856,7 @@ export class MinimizeOtherGroupsAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.editorGroupService.arrangeGroups(GroupsArrangement.MINIMIZE_OTHERS); return Promise.resolve(false); @@ -872,7 +872,7 @@ export class ResetGroupSizesAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.editorGroupService.arrangeGroups(GroupsArrangement.EVEN); return Promise.resolve(false); @@ -894,7 +894,7 @@ export class MaximizeGroupAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { if (this.editorService.activeEditor) { this.editorGroupService.arrangeGroups(GroupsArrangement.MINIMIZE_OTHERS); this.partService.setSideBarHidden(true); @@ -915,7 +915,7 @@ export abstract class BaseNavigateEditorAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const result = this.navigate(); if (!result) { return Promise.resolve(false); @@ -1102,7 +1102,7 @@ export class NavigateForwardAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.historyService.forward(); return Promise.resolve(null); @@ -1118,7 +1118,7 @@ export class NavigateBackwardsAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.historyService.back(); return Promise.resolve(null); @@ -1134,7 +1134,7 @@ export class NavigateToLastEditLocationAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.historyService.openLastEditLocation(); return Promise.resolve(null); @@ -1150,7 +1150,7 @@ export class NavigateLastAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.historyService.last(); return Promise.resolve(null); @@ -1170,7 +1170,7 @@ export class ReopenClosedEditorAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.historyService.reopenLastClosedEditor(); return Promise.resolve(false); @@ -1191,7 +1191,7 @@ export class ClearRecentFilesAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { // Clear global recently opened this.windowsService.clearRecentlyOpened(); @@ -1238,7 +1238,7 @@ export class BaseQuickOpenEditorInGroupAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const keys = this.keybindingService.lookupKeybindings(this.id); @@ -1293,7 +1293,7 @@ export class OpenPreviousEditorFromHistoryAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const keys = this.keybindingService.lookupKeybindings(this.id); this.quickOpenService.show(null, { quickNavigateConfiguration: { keybindings: keys } }); @@ -1311,7 +1311,7 @@ export class OpenNextRecentlyUsedEditorAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.historyService.forward(true); return Promise.resolve(null); @@ -1327,7 +1327,7 @@ export class OpenPreviousRecentlyUsedEditorAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.historyService.back(true); return Promise.resolve(null); @@ -1347,7 +1347,7 @@ export class ClearEditorHistoryAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { // Editor history this.historyService.clear(); @@ -1619,7 +1619,7 @@ export class BaseCreateEditorGroupAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.editorGroupService.addGroup(this.editorGroupService.activeGroup, this.direction, { activate: true }); return Promise.resolve(true); diff --git a/src/vs/workbench/browser/parts/editor/editorControl.ts b/src/vs/workbench/browser/parts/editor/editorControl.ts index 397a1b12c2c..c2545617136 100644 --- a/src/vs/workbench/browser/parts/editor/editorControl.ts +++ b/src/vs/workbench/browser/parts/editor/editorControl.ts @@ -56,7 +56,7 @@ export class EditorControl extends Disposable { return this._activeControl; } - openEditor(editor: EditorInput, options?: EditorOptions): Thenable { + openEditor(editor: EditorInput, options?: EditorOptions): Promise { // Editor control const descriptor = Registry.as(EditorExtensions.Editors).getEditor(editor); @@ -145,7 +145,7 @@ export class EditorControl extends Disposable { this._onDidSizeConstraintsChange.fire(); } - private doSetInput(control: BaseEditor, editor: EditorInput, options: EditorOptions): Thenable { + private doSetInput(control: BaseEditor, editor: EditorInput, options: EditorOptions): Promise { // If the input did not change, return early and only apply the options // unless the options instruct us to force open it even if it is the same diff --git a/src/vs/workbench/browser/parts/editor/editorGroupView.ts b/src/vs/workbench/browser/parts/editor/editorGroupView.ts index 6d1863f93f2..a7acb4b8513 100644 --- a/src/vs/workbench/browser/parts/editor/editorGroupView.ts +++ b/src/vs/workbench/browser/parts/editor/editorGroupView.ts @@ -95,7 +95,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { private active: boolean; private dimension: Dimension; - private _whenRestored: Thenable; + private _whenRestored: Promise; private isRestored: boolean; private scopedInstantiationService: IInstantiationService; @@ -111,7 +111,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { private ignoreOpenEditorErrors: boolean; private disposedEditorsWorker: RunOnceWorker; - private mapEditorToPendingConfirmation: Map> = new Map>(); + private mapEditorToPendingConfirmation: Map> = new Map>(); constructor( private accessor: IEditorGroupsAccessor, @@ -397,7 +397,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { } } - private restoreEditors(from: IEditorGroupView | ISerializedEditorGroup): Thenable { + private restoreEditors(from: IEditorGroupView | ISerializedEditorGroup): Promise { if (this._group.count === 0) { return Promise.resolve(); // nothing to show } @@ -602,7 +602,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { return this._disposed; } - get whenRestored(): Thenable { + get whenRestored(): Promise { return this._whenRestored; } @@ -724,7 +724,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { //#region openEditor() - openEditor(editor: EditorInput, options?: EditorOptions): Thenable { + openEditor(editor: EditorInput, options?: EditorOptions): Promise { // Guard against invalid inputs if (!editor) { @@ -743,7 +743,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { return this.doOpenEditor(editor, options); } - private doOpenEditor(editor: EditorInput, options?: EditorOptions): Thenable { + private doOpenEditor(editor: EditorInput, options?: EditorOptions): Promise { // Determine options const openEditorOptions: IEditorOpenOptions = { @@ -784,10 +784,10 @@ export class EditorGroupView extends Themable implements IEditorGroupView { return this.doShowEditor(editor, openEditorOptions.active, options); } - private doShowEditor(editor: EditorInput, active: boolean, options?: EditorOptions): Thenable { + private doShowEditor(editor: EditorInput, active: boolean, options?: EditorOptions): Promise { // Show in editor control if the active editor changed - let openEditorPromise: Thenable; + let openEditorPromise: Promise; if (active) { openEditorPromise = this.editorControl.openEditor(editor, options).then(result => { @@ -847,7 +847,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { //#region openEditors() - openEditors(editors: { editor: EditorInput, options?: EditorOptions }[]): Thenable { + openEditors(editors: { editor: EditorInput, options?: EditorOptions }[]): Promise { if (!editors.length) { return Promise.resolve(null); } @@ -958,7 +958,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { //#region closeEditor() - closeEditor(editor: EditorInput = this.activeEditor): Thenable { + closeEditor(editor: EditorInput = this.activeEditor): Promise { if (!editor) { return Promise.resolve(); } @@ -1074,7 +1074,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { this._group.closeEditor(editor); } - private handleDirty(editors: EditorInput[]): Thenable { + private handleDirty(editors: EditorInput[]): Promise { if (!editors.length) { return Promise.resolve(false); // no veto } @@ -1104,7 +1104,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { }); } - private doHandleDirty(editor: EditorInput): Thenable { + private doHandleDirty(editor: EditorInput): Promise { if ( !editor.isDirty() || // editor must be dirty this.accessor.groups.some(groupView => groupView !== this && groupView.group.contains(editor, true /* support side by side */)) || // editor is opened in other group @@ -1151,7 +1151,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { //#region closeEditors() - closeEditors(args: EditorInput[] | ICloseEditorsFilter): Thenable { + closeEditors(args: EditorInput[] | ICloseEditorsFilter): Promise { if (this.isEmpty()) { return Promise.resolve(); } @@ -1224,7 +1224,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { //#region closeAllEditors() - closeAllEditors(): Thenable { + closeAllEditors(): Promise { if (this.isEmpty()) { // If the group is empty and the request is to close all editors, we still close @@ -1269,7 +1269,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { //#region replaceEditors() - replaceEditors(editors: EditorReplacement[]): Thenable { + replaceEditors(editors: EditorReplacement[]): Promise { // Extract active vs. inactive replacements let activeReplacement: EditorReplacement; @@ -1419,7 +1419,7 @@ export class EditorGroupView extends Themable implements IEditorGroupView { } class EditorOpeningEvent implements IEditorOpeningEvent { - private override: () => Thenable; + private override: () => Promise; constructor( private _group: GroupIdentifier, @@ -1440,11 +1440,11 @@ class EditorOpeningEvent implements IEditorOpeningEvent { return this._options; } - prevent(callback: () => Thenable): void { + prevent(callback: () => Promise): void { this.override = callback; } - isPrevented(): () => Thenable { + isPrevented(): () => Promise { return this.override; } } diff --git a/src/vs/workbench/browser/parts/editor/editorPart.ts b/src/vs/workbench/browser/parts/editor/editorPart.ts index 051a40d3b8f..fb78ef17cc7 100644 --- a/src/vs/workbench/browser/parts/editor/editorPart.ts +++ b/src/vs/workbench/browser/parts/editor/editorPart.ts @@ -129,7 +129,7 @@ export class EditorPart extends Part implements EditorGroupsServiceImpl, IEditor private gridWidget: SerializableGrid; private gridWidgetView: GridWidgetView; - private _whenRestored: Thenable; + private _whenRestored: Promise; private whenRestoredResolve: () => void; constructor( @@ -222,7 +222,7 @@ export class EditorPart extends Part implements EditorGroupsServiceImpl, IEditor return this.gridWidget.orientation === Orientation.VERTICAL ? GroupOrientation.VERTICAL : GroupOrientation.HORIZONTAL; } - get whenRestored(): Thenable { + get whenRestored(): Promise { return this._whenRestored; } diff --git a/src/vs/workbench/browser/parts/editor/editorPicker.ts b/src/vs/workbench/browser/parts/editor/editorPicker.ts index b3ec71db9cf..b27ed329dfd 100644 --- a/src/vs/workbench/browser/parts/editor/editorPicker.ts +++ b/src/vs/workbench/browser/parts/editor/editorPicker.ts @@ -90,7 +90,7 @@ export abstract class BaseEditorPicker extends QuickOpenHandler { this.scorerCache = Object.create(null); } - getResults(searchValue: string, token: CancellationToken): Thenable { + getResults(searchValue: string, token: CancellationToken): Promise { const editorEntries = this.getEditorEntries(); if (!editorEntries.length) { return Promise.resolve(null); diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index b6bb0cffc16..213e1c8dc85 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -824,7 +824,7 @@ export class ShowLanguageExtensionsAction extends Action { this.enabled = galleryService.isEnabled(); } - run(): Thenable { + run(): Promise { return this.commandService.executeCommand('workbench.extensions.action.showExtensionsForLanguage', this.fileExtension).then(() => void 0); } } @@ -849,7 +849,7 @@ export class ChangeModeAction extends Action { super(actionId, actionLabel); } - run(): Thenable { + run(): Promise { const activeTextEditorWidget = getCodeEditor(this.editorService.activeTextEditorWidget); if (!activeTextEditorWidget) { return this.quickInputService.pick([{ label: nls.localize('noEditor', "No text editor active at this time") }]); @@ -1056,7 +1056,7 @@ class ChangeIndentationAction extends Action { super(actionId, actionLabel); } - run(): Thenable { + run(): Promise { const activeTextEditorWidget = getCodeEditor(this.editorService.activeTextEditorWidget); if (!activeTextEditorWidget) { return this.quickInputService.pick([{ label: nls.localize('noEditor', "No text editor active at this time") }]); @@ -1106,7 +1106,7 @@ export class ChangeEOLAction extends Action { super(actionId, actionLabel); } - run(): Thenable { + run(): Promise { const activeTextEditorWidget = getCodeEditor(this.editorService.activeTextEditorWidget); if (!activeTextEditorWidget) { return this.quickInputService.pick([{ label: nls.localize('noEditor', "No text editor active at this time") }]); @@ -1153,7 +1153,7 @@ export class ChangeEncodingAction extends Action { super(actionId, actionLabel); } - run(): Thenable { + run(): Promise { if (!getCodeEditor(this.editorService.activeTextEditorWidget)) { return this.quickInputService.pick([{ label: nls.localize('noEditor', "No text editor active at this time") }]); } diff --git a/src/vs/workbench/browser/parts/editor/resourceViewer.ts b/src/vs/workbench/browser/parts/editor/resourceViewer.ts index 0af468160c1..c16192107a8 100644 --- a/src/vs/workbench/browser/parts/editor/resourceViewer.ts +++ b/src/vs/workbench/browser/parts/editor/resourceViewer.ts @@ -568,7 +568,7 @@ class InlineImageView { return context; } - private static imageSrc(descriptor: IResourceDescriptor, fileService: IFileService): Thenable { + private static imageSrc(descriptor: IResourceDescriptor, fileService: IFileService): Promise { if (descriptor.resource.scheme === Schemas.data) { return Promise.resolve(descriptor.resource.toString(true /* skip encoding */)); } diff --git a/src/vs/workbench/browser/parts/editor/sideBySideEditor.ts b/src/vs/workbench/browser/parts/editor/sideBySideEditor.ts index ffe94a1943f..b94b5eb95a7 100644 --- a/src/vs/workbench/browser/parts/editor/sideBySideEditor.ts +++ b/src/vs/workbench/browser/parts/editor/sideBySideEditor.ts @@ -92,7 +92,7 @@ export class SideBySideEditor extends BaseEditor { this.updateStyles(); } - setInput(newInput: SideBySideEditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(newInput: SideBySideEditorInput, options: EditorOptions, token: CancellationToken): Promise { const oldInput = this.input; return super.setInput(newInput, options, token) .then(() => this.updateInput(oldInput, newInput, options, token)); @@ -157,7 +157,7 @@ export class SideBySideEditor extends BaseEditor { return this.detailsEditor; } - private updateInput(oldInput: SideBySideEditorInput, newInput: SideBySideEditorInput, options: EditorOptions, token: CancellationToken): Thenable { + private updateInput(oldInput: SideBySideEditorInput, newInput: SideBySideEditorInput, options: EditorOptions, token: CancellationToken): Promise { if (!newInput.matches(oldInput)) { if (oldInput) { this.disposeEditors(); @@ -172,7 +172,7 @@ export class SideBySideEditor extends BaseEditor { ).then(() => void 0); } - private setNewInput(newInput: SideBySideEditorInput, options: EditorOptions, token: CancellationToken): Thenable { + private setNewInput(newInput: SideBySideEditorInput, options: EditorOptions, token: CancellationToken): Promise { const detailsEditor = this._createEditor(newInput.details, this.detailsEditorContainer); const masterEditor = this._createEditor(newInput.master, this.masterEditorContainer); diff --git a/src/vs/workbench/browser/parts/editor/textDiffEditor.ts b/src/vs/workbench/browser/parts/editor/textDiffEditor.ts index 44cfef0bb1e..07acd4f01a9 100644 --- a/src/vs/workbench/browser/parts/editor/textDiffEditor.ts +++ b/src/vs/workbench/browser/parts/editor/textDiffEditor.ts @@ -73,7 +73,7 @@ export class TextDiffEditor extends BaseTextEditor implements ITextDiffEditor { return this.instantiationService.createInstance(DiffEditorWidget, parent, configuration); } - setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { // Dispose previous diff navigator this.diffNavigatorDisposables = dispose(this.diffNavigatorDisposables); diff --git a/src/vs/workbench/browser/parts/editor/textEditor.ts b/src/vs/workbench/browser/parts/editor/textEditor.ts index 9fce9723cd9..4dd0e46cb82 100644 --- a/src/vs/workbench/browser/parts/editor/textEditor.ts +++ b/src/vs/workbench/browser/parts/editor/textEditor.ts @@ -187,7 +187,7 @@ export abstract class BaseTextEditor extends BaseEditor implements ITextEditor { return this.instantiationService.createInstance(CodeEditorWidget, parent, configuration, {}); } - setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { return super.setInput(input, options, token).then(() => { // Update editor options after having set the input. We do this because there can be diff --git a/src/vs/workbench/browser/parts/editor/textResourceEditor.ts b/src/vs/workbench/browser/parts/editor/textResourceEditor.ts index a90138fb843..33403726926 100644 --- a/src/vs/workbench/browser/parts/editor/textResourceEditor.ts +++ b/src/vs/workbench/browser/parts/editor/textResourceEditor.ts @@ -54,7 +54,7 @@ export class AbstractTextResourceEditor extends BaseTextEditor { return nls.localize('textEditor', "Text Editor"); } - setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { // Remember view settings if input changes this.saveTextResourceEditorViewState(this.input); diff --git a/src/vs/workbench/browser/parts/notifications/notificationsToasts.ts b/src/vs/workbench/browser/parts/notifications/notificationsToasts.ts index 7cab630f56b..fd17e4c738c 100644 --- a/src/vs/workbench/browser/parts/notifications/notificationsToasts.ts +++ b/src/vs/workbench/browser/parts/notifications/notificationsToasts.ts @@ -90,7 +90,7 @@ export class NotificationsToasts extends Themable { }); } - private onCanShowNotifications(): Thenable { + private onCanShowNotifications(): Promise { // Wait for the running phase to ensure we can draw notifications properly return this.lifecycleService.when(LifecyclePhase.Ready).then(() => { diff --git a/src/vs/workbench/browser/parts/panel/panelActions.ts b/src/vs/workbench/browser/parts/panel/panelActions.ts index f9fa7fd846b..4ceaa84ec59 100644 --- a/src/vs/workbench/browser/parts/panel/panelActions.ts +++ b/src/vs/workbench/browser/parts/panel/panelActions.ts @@ -29,7 +29,7 @@ export class ClosePanelAction extends Action { super(id, name, 'hide-panel-action'); } - run(): Thenable { + run(): Promise { this.partService.setPanelHidden(true); return Promise.resolve(null); } @@ -48,7 +48,7 @@ export class TogglePanelAction extends Action { super(id, name, partService.isVisible(Parts.PANEL_PART) ? 'panel expanded' : 'panel'); } - run(): Thenable { + run(): Promise { this.partService.setPanelHidden(this.partService.isVisible(Parts.PANEL_PART)); return Promise.resolve(null); } @@ -68,7 +68,7 @@ class FocusPanelAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { // Show panel if (!this.partService.isVisible(Parts.PANEL_PART)) { @@ -116,7 +116,7 @@ export class TogglePanelPositionAction extends Action { setClassAndLabel(); } - run(): Thenable { + run(): Promise { const position = this.partService.getPanelPosition(); this.partService.setPanelPosition(position === Position.BOTTOM ? Position.RIGHT : Position.BOTTOM); @@ -156,7 +156,7 @@ export class ToggleMaximizedPanelAction extends Action { })); } - run(): Thenable { + run(): Promise { if (!this.partService.isVisible(Parts.PANEL_PART)) { this.partService.setPanelHidden(false); } @@ -181,7 +181,7 @@ export class PanelActivityAction extends ActivityAction { super(activity); } - run(event: any): Thenable { + run(event: any): Promise { this.panelService.openPanel(this.activity.id, true); this.activate(); return Promise.resolve(null); @@ -198,7 +198,7 @@ export class SwitchPanelViewAction extends Action { super(id, name); } - run(offset: number): Thenable { + run(offset: number): Promise { const pinnedPanels = this.panelService.getPinnedPanels(); const activePanel = this.panelService.getActivePanel(); if (!activePanel) { @@ -229,7 +229,7 @@ export class PreviousPanelViewAction extends SwitchPanelViewAction { super(id, name, panelService); } - run(): Thenable { + run(): Promise { return super.run(-1); } } @@ -247,7 +247,7 @@ export class NextPanelViewAction extends SwitchPanelViewAction { super(id, name, panelService); } - public run(): Thenable { + public run(): Promise { return super.run(1); } } diff --git a/src/vs/workbench/browser/parts/quickinput/quickInput.ts b/src/vs/workbench/browser/parts/quickinput/quickInput.ts index c74cafd63a9..8d35a6dc458 100644 --- a/src/vs/workbench/browser/parts/quickinput/quickInput.ts +++ b/src/vs/workbench/browser/parts/quickinput/quickInput.ts @@ -1143,7 +1143,7 @@ export class QuickInputService extends Component implements IQuickInputService { return; } const input = this.createInputBox(); - const validateInput = options.validateInput || (() => >Promise.resolve(undefined)); + const validateInput = options.validateInput || (() => >Promise.resolve(undefined)); const onDidValueChange = Event.debounce(input.onDidChangeValue, (last, cur) => cur, 100); let validationValue = options.value || ''; let validation = Promise.resolve(validateInput(validationValue)); diff --git a/src/vs/workbench/browser/parts/quickopen/quickOpenController.ts b/src/vs/workbench/browser/parts/quickopen/quickOpenController.ts index 5847a140f15..afe34275bb4 100644 --- a/src/vs/workbench/browser/parts/quickopen/quickOpenController.ts +++ b/src/vs/workbench/browser/parts/quickopen/quickOpenController.ts @@ -53,7 +53,7 @@ import { IStorageService } from 'vs/platform/storage/common/storage'; const HELP_PREFIX = '?'; -type ValueCallback = (value: T | Thenable) => void; +type ValueCallback = (value: T | Promise) => void; export class QuickOpenController extends Component implements IQuickOpenService { @@ -452,7 +452,7 @@ export class QuickOpenController extends Component implements IQuickOpenService const previousInput = this.quickOpenWidget.getInput(); const wasShowingHistory = previousInput && previousInput.entries && previousInput.entries.some(e => e instanceof EditorHistoryEntry || e instanceof EditorHistoryEntryGroup); if (wasShowingHistory || matchingHistoryEntries.length > 0) { - let responseDelay: Thenable; + let responseDelay: Promise; if (resolvedHandler.hasShortResponseTime()) { responseDelay = timeout(QuickOpenController.MAX_SHORT_RESPONSE_TIME); } else { @@ -836,7 +836,7 @@ export class RemoveFromEditorHistoryAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { interface IHistoryPickEntry extends IQuickPickItem { input: IEditorInput | IResourceInput; } diff --git a/src/vs/workbench/browser/parts/quickopen/quickopen.ts b/src/vs/workbench/browser/parts/quickopen/quickopen.ts index 3c749da10dd..2f4d95a864c 100644 --- a/src/vs/workbench/browser/parts/quickopen/quickopen.ts +++ b/src/vs/workbench/browser/parts/quickopen/quickopen.ts @@ -50,7 +50,7 @@ export class BaseQuickOpenNavigateAction extends Action { super(id, label); } - run(event?: any): Thenable { + run(event?: any): Promise { const keys = this.keybindingService.lookupKeybindings(this.id); const quickNavigate = this.quickNavigate ? { keybindings: keys } : void 0; diff --git a/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts b/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts index 7485f78800e..e9be92173e0 100644 --- a/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts +++ b/src/vs/workbench/browser/parts/sidebar/sidebarPart.ts @@ -175,7 +175,7 @@ export class SidebarPart extends CompositePart implements IViewletServi } } - openViewlet(id: string, focus?: boolean): Thenable { + openViewlet(id: string, focus?: boolean): Promise { if (this.getViewlet(id)) { return Promise.resolve(this.doOpenViewlet(id, focus)); } @@ -259,7 +259,7 @@ class FocusSideBarAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { // Show side bar if (!this.partService.isVisible(Parts.SIDEBAR_PART)) { diff --git a/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts b/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts index cc601c33b01..bc312086ebb 100644 --- a/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts +++ b/src/vs/workbench/browser/parts/statusbar/statusbarPart.ts @@ -329,7 +329,7 @@ class ManageExtensionAction extends Action { super('statusbar.manage.extension', nls.localize('manageExtension', "Manage Extension")); } - run(extensionId: string): Thenable { + run(extensionId: string): Promise { return this.commandService.executeCommand('_extensions.manage', extensionId); } } diff --git a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts index d47b03e8845..b16c2f2f60c 100644 --- a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts +++ b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts @@ -542,7 +542,7 @@ class ShowItemInFolderAction extends Action { super('showItemInFolder.action.id', label); } - run(): Thenable { + run(): Promise { return this.windowsService.showItemInFolder(this.path); } } diff --git a/src/vs/workbench/browser/parts/views/customView.ts b/src/vs/workbench/browser/parts/views/customView.ts index 649836e5be7..62ba18371ce 100644 --- a/src/vs/workbench/browser/parts/views/customView.ts +++ b/src/vs/workbench/browser/parts/views/customView.ts @@ -472,7 +472,7 @@ export class CustomTreeView extends Disposable implements ITreeView { return Promise.resolve(null); } - expand(itemOrItems: ITreeItem | ITreeItem[]): Thenable { + expand(itemOrItems: ITreeItem | ITreeItem[]): Promise { if (this.tree) { itemOrItems = Array.isArray(itemOrItems) ? itemOrItems : [itemOrItems]; return this.tree.expandAll(itemOrItems); @@ -493,7 +493,7 @@ export class CustomTreeView extends Disposable implements ITreeView { } } - reveal(item: ITreeItem): Thenable { + reveal(item: ITreeItem): Promise { if (this.tree) { return this.tree.reveal(item); } @@ -827,7 +827,7 @@ class MultipleSelectionActionRunner extends ActionRunner { super(); } - runAction(action: IAction, context: any): Thenable { + runAction(action: IAction, context: any): Promise { if (action instanceof MenuItemAction) { const selection = this.getSelectedResources(); const filteredSelection = selection.filter(s => s !== context); diff --git a/src/vs/workbench/browser/parts/views/views.ts b/src/vs/workbench/browser/parts/views/views.ts index acadcbb0185..f618b70cb0a 100644 --- a/src/vs/workbench/browser/parts/views/views.ts +++ b/src/vs/workbench/browser/parts/views/views.ts @@ -537,7 +537,7 @@ export class ViewsService extends Disposable implements IViewsService { return this.viewDescriptorCollections.get(container); } - openView(id: string, focus: boolean): Thenable { + openView(id: string, focus: boolean): Promise { const viewDescriptor = ViewsRegistry.getView(id); if (viewDescriptor) { const viewletDescriptor = this.viewletService.getViewlet(viewDescriptor.container.id); diff --git a/src/vs/workbench/browser/quickopen.ts b/src/vs/workbench/browser/quickopen.ts index cbaeea3da1d..c4a6346e546 100644 --- a/src/vs/workbench/browser/quickopen.ts +++ b/src/vs/workbench/browser/quickopen.ts @@ -43,7 +43,7 @@ export class QuickOpenHandler { * As such, returning the same model instance across multiple searches will yield best * results in terms of performance when many items are shown. */ - getResults(searchValue: string, token: CancellationToken): Thenable> { + getResults(searchValue: string, token: CancellationToken): Promise> { return Promise.resolve(null); } diff --git a/src/vs/workbench/browser/viewlet.ts b/src/vs/workbench/browser/viewlet.ts index f0763f64709..e61e215069d 100644 --- a/src/vs/workbench/browser/viewlet.ts +++ b/src/vs/workbench/browser/viewlet.ts @@ -137,7 +137,7 @@ export class ShowViewletAction extends Action { this.enabled = !!this.viewletService && !!this.editorGroupService; } - run(): Thenable { + run(): Promise { // Pass focus to viewlet if not open or focused if (this.otherViewletShowing() || !this.sidebarHasFocus()) { diff --git a/src/vs/workbench/common/actions.ts b/src/vs/workbench/common/actions.ts index 27618b146dc..13ecdbceba2 100644 --- a/src/vs/workbench/common/actions.ts +++ b/src/vs/workbench/common/actions.ts @@ -93,7 +93,7 @@ Registry.add(Extensions.WorkbenchActions, new class implements IWorkbenchActionR }; } - private triggerAndDisposeAction(instantiationService: IInstantiationService, lifecycleService: ILifecycleService, descriptor: SyncActionDescriptor, args: any): Thenable { + private triggerAndDisposeAction(instantiationService: IInstantiationService, lifecycleService: ILifecycleService, descriptor: SyncActionDescriptor, args: any): Promise { // run action when workbench is created return lifecycleService.when(LifecyclePhase.Ready).then(() => { diff --git a/src/vs/workbench/common/editor.ts b/src/vs/workbench/common/editor.ts index 523b7150d54..4559882e6d7 100644 --- a/src/vs/workbench/common/editor.ts +++ b/src/vs/workbench/common/editor.ts @@ -301,7 +301,7 @@ export interface IEditorInput extends IDisposable { /** * Resolves the input. */ - resolve(): Thenable; + resolve(): Promise; /** * Returns if this input is dirty or not. @@ -311,7 +311,7 @@ export interface IEditorInput extends IDisposable { /** * Reverts this input. */ - revert(options?: IRevertOptions): Thenable; + revert(options?: IRevertOptions): Promise; /** * Returns if the other object matches this input. @@ -402,7 +402,7 @@ export abstract class EditorInput extends Disposable implements IEditorInput { * Returns a type of EditorModel that represents the resolved input. Subclasses should * override to provide a meaningful model. */ - abstract resolve(): Thenable; + abstract resolve(): Promise; /** * An editor that is dirty will be asked to be saved once it closes. @@ -414,21 +414,21 @@ export abstract class EditorInput extends Disposable implements IEditorInput { /** * Subclasses should bring up a proper dialog for the user if the editor is dirty and return the result. */ - confirmSave(): Thenable { + confirmSave(): Promise { return Promise.resolve(ConfirmResult.DONT_SAVE); } /** * Saves the editor if it is dirty. Subclasses return a promise with a boolean indicating the success of the operation. */ - save(): Thenable { + save(): Promise { return Promise.resolve(true); } /** * Reverts the editor if it is dirty. Subclasses return a promise with a boolean indicating the success of the operation. */ - revert(options?: IRevertOptions): Thenable { + revert(options?: IRevertOptions): Promise { return Promise.resolve(true); } @@ -546,15 +546,15 @@ export class SideBySideEditorInput extends EditorInput { return this.master.isDirty(); } - confirmSave(): Thenable { + confirmSave(): Promise { return this.master.confirmSave(); } - save(): Thenable { + save(): Promise { return this.master.save(); } - revert(): Thenable { + revert(): Promise { return this.master.revert(); } @@ -585,7 +585,7 @@ export class SideBySideEditorInput extends EditorInput { this._register(this.master.onDidChangeLabel(() => this._onDidChangeLabel.fire())); } - resolve(): Thenable { + resolve(): Promise { return Promise.resolve(null); } @@ -636,7 +636,7 @@ export class EditorModel extends Disposable implements IEditorModel { /** * Causes this model to load returning a promise when loading is completed. */ - load(): Thenable { + load(): Promise { return Promise.resolve(this); } @@ -915,7 +915,7 @@ export class EditorCommandsContextActionRunner extends ActionRunner { super(); } - run(action: IAction, context?: any): Thenable { + run(action: IAction, context?: any): Promise { return super.run(action, this.context); } } diff --git a/src/vs/workbench/common/editor/binaryEditorModel.ts b/src/vs/workbench/common/editor/binaryEditorModel.ts index d124fa599d4..183f5163765 100644 --- a/src/vs/workbench/common/editor/binaryEditorModel.ts +++ b/src/vs/workbench/common/editor/binaryEditorModel.ts @@ -74,7 +74,7 @@ export class BinaryEditorModel extends EditorModel { return this.etag; } - load(): Thenable { + load(): Promise { // Make sure to resolve up to date stat for file resources if (this.fileService.canHandleResource(this.resource)) { diff --git a/src/vs/workbench/common/editor/dataUriEditorInput.ts b/src/vs/workbench/common/editor/dataUriEditorInput.ts index 1e025627d95..5eaa261c2a3 100644 --- a/src/vs/workbench/common/editor/dataUriEditorInput.ts +++ b/src/vs/workbench/common/editor/dataUriEditorInput.ts @@ -62,7 +62,7 @@ export class DataUriEditorInput extends EditorInput { return this.description; } - resolve(): Thenable { + resolve(): Promise { return this.instantiationService.createInstance(BinaryEditorModel, this.resource, this.getName()).load().then(m => m as BinaryEditorModel); } diff --git a/src/vs/workbench/common/editor/diffEditorInput.ts b/src/vs/workbench/common/editor/diffEditorInput.ts index 4fa0b509ae1..3d534f3f87f 100644 --- a/src/vs/workbench/common/editor/diffEditorInput.ts +++ b/src/vs/workbench/common/editor/diffEditorInput.ts @@ -34,7 +34,7 @@ export class DiffEditorInput extends SideBySideEditorInput { return this.master; } - resolve(): Thenable { + resolve(): Promise { // Create Model - we never reuse our cached model if refresh is true because we cannot // decide for the inputs within if the cached model can be reused or not. There may be @@ -55,7 +55,7 @@ export class DiffEditorInput extends SideBySideEditorInput { return this.forceOpenAsBinary ? BINARY_DIFF_EDITOR_ID : TEXT_DIFF_EDITOR_ID; } - private createModel(): Thenable { + private createModel(): Promise { // Join resolve call over two inputs and build diff editor model return Promise.all([ diff --git a/src/vs/workbench/common/editor/diffEditorModel.ts b/src/vs/workbench/common/editor/diffEditorModel.ts index 099481b910e..794afd369d5 100644 --- a/src/vs/workbench/common/editor/diffEditorModel.ts +++ b/src/vs/workbench/common/editor/diffEditorModel.ts @@ -29,7 +29,7 @@ export class DiffEditorModel extends EditorModel { return this._modifiedModel as EditorModel; } - load(): Thenable { + load(): Promise { return Promise.all([ this._originalModel.load(), this._modifiedModel.load() diff --git a/src/vs/workbench/common/editor/resourceEditorInput.ts b/src/vs/workbench/common/editor/resourceEditorInput.ts index aa6410fbc83..c0f7d4ff143 100644 --- a/src/vs/workbench/common/editor/resourceEditorInput.ts +++ b/src/vs/workbench/common/editor/resourceEditorInput.ts @@ -19,7 +19,7 @@ export class ResourceEditorInput extends EditorInput { static readonly ID: string = 'workbench.editors.resourceEditorInput'; - private modelReference: Thenable>; + private modelReference: Promise>; private resource: URI; private name: string; private description: string; @@ -80,7 +80,7 @@ export class ResourceEditorInput extends EditorInput { return descriptor; } - resolve(): Thenable { + resolve(): Promise { if (!this.modelReference) { this.modelReference = this.textModelResolverService.createModelReference(this.resource); } diff --git a/src/vs/workbench/common/editor/textDiffEditorModel.ts b/src/vs/workbench/common/editor/textDiffEditorModel.ts index 76e2fd18a1f..fda5a788dd6 100644 --- a/src/vs/workbench/common/editor/textDiffEditorModel.ts +++ b/src/vs/workbench/common/editor/textDiffEditorModel.ts @@ -29,7 +29,7 @@ export class TextDiffEditorModel extends DiffEditorModel { return this._modifiedModel as BaseTextEditorModel; } - load(): Thenable { + load(): Promise { return super.load().then(() => { this.updateTextDiffEditorModel(); diff --git a/src/vs/workbench/common/editor/untitledEditorInput.ts b/src/vs/workbench/common/editor/untitledEditorInput.ts index 94392e03a4f..769a39be553 100644 --- a/src/vs/workbench/common/editor/untitledEditorInput.ts +++ b/src/vs/workbench/common/editor/untitledEditorInput.ts @@ -27,7 +27,7 @@ export class UntitledEditorInput extends EditorInput implements IEncodingSupport private _hasAssociatedFilePath: boolean; private cachedModel: UntitledEditorModel; - private modelResolve: Thenable; + private modelResolve: Promise; private readonly _onDidModelChangeContent: Emitter = this._register(new Emitter()); get onDidModelChangeContent(): Event { return this._onDidModelChangeContent.event; } @@ -162,15 +162,15 @@ export class UntitledEditorInput extends EditorInput implements IEncodingSupport return this.hasAssociatedFilePath; } - confirmSave(): Thenable { + confirmSave(): Promise { return this.textFileService.confirmSave([this.resource]); } - save(): Thenable { + save(): Promise { return this.textFileService.save(this.resource); } - revert(): Thenable { + revert(): Promise { if (this.cachedModel) { this.cachedModel.revert(); } @@ -209,7 +209,7 @@ export class UntitledEditorInput extends EditorInput implements IEncodingSupport } } - resolve(): Thenable { + resolve(): Promise { // Join a model resolve if we have had one before if (this.modelResolve) { diff --git a/src/vs/workbench/common/editor/untitledEditorModel.ts b/src/vs/workbench/common/editor/untitledEditorModel.ts index f05982c3d81..371f2c57cfe 100644 --- a/src/vs/workbench/common/editor/untitledEditorModel.ts +++ b/src/vs/workbench/common/editor/untitledEditorModel.ts @@ -132,7 +132,7 @@ export class UntitledEditorModel extends BaseTextEditorModel implements IEncodin this.contentChangeEventScheduler.schedule(); } - load(): Thenable { + load(): Promise { // Check for backups first return this.backupFileService.loadBackupResource(this.resource).then(backupResource => { diff --git a/src/vs/workbench/common/views.ts b/src/vs/workbench/common/views.ts index fd08fbce997..d6756663f48 100644 --- a/src/vs/workbench/common/views.ts +++ b/src/vs/workbench/common/views.ts @@ -229,7 +229,7 @@ export const IViewsService = createDecorator('viewsService'); export interface IViewsService { _serviceBrand: any; - openView(id: string, focus?: boolean): Thenable; + openView(id: string, focus?: boolean): Promise; getViewDescriptors(container: ViewContainer): IViewDescriptorCollection; } @@ -268,9 +268,9 @@ export interface ITreeView extends IDisposable { getOptimalWidth(): number; - reveal(item: ITreeItem): Thenable; + reveal(item: ITreeItem): Promise; - expand(itemOrItems: ITreeItem | ITreeItem[]): Thenable; + expand(itemOrItems: ITreeItem | ITreeItem[]): Promise; setSelection(items: ITreeItem[]): void; diff --git a/src/vs/workbench/electron-browser/actions.ts b/src/vs/workbench/electron-browser/actions.ts index 922aaab8f4e..b963a748071 100644 --- a/src/vs/workbench/electron-browser/actions.ts +++ b/src/vs/workbench/electron-browser/actions.ts @@ -53,7 +53,7 @@ export class CloseCurrentWindowAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { this.windowService.closeWindow(); return Promise.resolve(true); @@ -75,7 +75,7 @@ export class CloseWorkspaceAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { if (this.contextService.getWorkbenchState() === WorkbenchState.EMPTY) { this.notificationService.info(nls.localize('noWorkspaceOpened', "There is currently no workspace opened in this instance to close.")); @@ -99,7 +99,7 @@ export class NewWindowAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.windowsService.openNewWindow(); } } @@ -113,7 +113,7 @@ export class ToggleFullScreenAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.windowService.toggleFullScreen(); } } @@ -133,7 +133,7 @@ export class ToggleMenuBarAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { let currentVisibilityValue = this.configurationService.getValue(ToggleMenuBarAction.menuBarVisibilityKey); if (typeof currentVisibilityValue !== 'string') { currentVisibilityValue = 'default'; @@ -161,7 +161,7 @@ export class ToggleDevToolsAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.windowsService.toggleDevTools(); } } @@ -206,7 +206,7 @@ export class ZoomInAction extends BaseZoomAction { super(id, label, configurationService); } - run(): Thenable { + run(): Promise { this.setConfiguredZoomLevel(webFrame.getZoomLevel() + 1); return Promise.resolve(true); @@ -226,7 +226,7 @@ export class ZoomOutAction extends BaseZoomAction { super(id, label, configurationService); } - run(): Thenable { + run(): Promise { this.setConfiguredZoomLevel(webFrame.getZoomLevel() - 1); return Promise.resolve(true); @@ -246,7 +246,7 @@ export class ZoomResetAction extends BaseZoomAction { super(id, label, configurationService); } - run(): Thenable { + run(): Promise { this.setConfiguredZoomLevel(0); return Promise.resolve(true); @@ -266,7 +266,7 @@ export class ReloadWindowAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.windowService.reloadWindow().then(() => true); } } @@ -284,7 +284,7 @@ export class ReloadWindowWithExtensionsDisabledAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.windowService.reloadWindow({ _: [], 'disable-extensions': true }).then(() => true); } } @@ -312,7 +312,7 @@ export abstract class BaseSwitchWindow extends Action { protected abstract isQuickNavigate(): boolean; - run(): Thenable { + run(): Promise { const currentWindowId = this.windowService.getCurrentWindowId(); return this.windowsService.getWindows().then(windows => { @@ -422,7 +422,7 @@ export abstract class BaseOpenRecentAction extends Action { protected abstract isQuickNavigate(): boolean; - run(): Thenable { + run(): Promise { return this.windowService.getRecentlyOpened() .then(({ workspaces, files }) => this.openRecent(workspaces, files)); } @@ -555,7 +555,7 @@ export class OpenIssueReporterAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.issueService.openReporter() .then(() => true); } @@ -573,7 +573,7 @@ export class OpenProcessExplorer extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.issueService.openProcessExplorer() .then(() => true); } @@ -591,7 +591,7 @@ export class ReportPerformanceIssueUsingReporterAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { // TODO: Reporter should send timings table as well return this.issueService.openReporter({ issueType: IssueType.PerformanceIssue }) .then(() => true); @@ -614,7 +614,7 @@ export class KeybindingsReferenceAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { window.open(KeybindingsReferenceAction.URL); return null; } @@ -635,7 +635,7 @@ export class OpenDocumentationUrlAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { window.open(OpenDocumentationUrlAction.URL); return null; } @@ -656,7 +656,7 @@ export class OpenIntroductoryVideosUrlAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { window.open(OpenIntroductoryVideosUrlAction.URL); return null; } @@ -677,7 +677,7 @@ export class OpenTipsAndTricksUrlAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { window.open(OpenTipsAndTricksUrlAction.URL); return null; } @@ -692,7 +692,7 @@ export class ToggleSharedProcessAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.windowsService.toggleSharedProcess(); } } @@ -715,7 +715,7 @@ export abstract class BaseNavigationAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const isEditorFocus = this.partService.hasFocus(Parts.EDITOR_PART); const isPanelFocus = this.partService.hasFocus(Parts.PANEL_PART); const isSidebarFocus = this.partService.hasFocus(Parts.SIDEBAR_PART); @@ -738,11 +738,11 @@ export abstract class BaseNavigationAction extends Action { return Promise.resolve(false); } - protected navigateOnEditorFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Thenable { + protected navigateOnEditorFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { return Promise.resolve(true); } - protected navigateOnPanelFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Thenable { + protected navigateOnPanelFocus(_isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { return Promise.resolve(true); } @@ -760,7 +760,7 @@ export abstract class BaseNavigationAction extends Action { return this.panelService.openPanel(activePanelId, true); } - protected navigateToSidebar(): Thenable { + protected navigateToSidebar(): Promise { if (!this.partService.isVisible(Parts.SIDEBAR_PART)) { return Promise.resolve(false); } @@ -806,7 +806,7 @@ export class NavigateLeftAction extends BaseNavigationAction { super(id, label, editorGroupService, panelService, partService, viewletService); } - protected navigateOnEditorFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Thenable { + protected navigateOnEditorFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { const didNavigate = this.navigateAcrossEditorGroup(GroupDirection.LEFT); if (didNavigate) { return Promise.resolve(true); @@ -819,7 +819,7 @@ export class NavigateLeftAction extends BaseNavigationAction { return Promise.resolve(false); } - protected navigateOnPanelFocus(isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): Thenable { + protected navigateOnPanelFocus(isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): Promise { if (isPanelPositionDown && isSidebarPositionLeft) { return this.navigateToSidebar(); } @@ -856,7 +856,7 @@ export class NavigateRightAction extends BaseNavigationAction { super(id, label, editorGroupService, panelService, partService, viewletService); } - protected navigateOnEditorFocus(isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): Thenable { + protected navigateOnEditorFocus(isSidebarPositionLeft: boolean, isPanelPositionDown: boolean): Promise { const didNavigate = this.navigateAcrossEditorGroup(GroupDirection.RIGHT); if (didNavigate) { return Promise.resolve(true); @@ -873,7 +873,7 @@ export class NavigateRightAction extends BaseNavigationAction { return Promise.resolve(false); } - protected navigateOnPanelFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Thenable { + protected navigateOnPanelFocus(isSidebarPositionLeft: boolean, _isPanelPositionDown: boolean): Promise { if (!isSidebarPositionLeft) { return this.navigateToSidebar(); } @@ -996,7 +996,7 @@ export class IncreaseViewSizeAction extends BaseResizeViewAction { super(id, label, partService); } - run(): Thenable { + run(): Promise { this.resizePart(BaseResizeViewAction.RESIZE_INCREMENT); return Promise.resolve(true); } @@ -1016,7 +1016,7 @@ export class DecreaseViewSizeAction extends BaseResizeViewAction { super(id, label, partService); } - run(): Thenable { + run(): Promise { this.resizePart(-BaseResizeViewAction.RESIZE_INCREMENT); return Promise.resolve(true); } @@ -1035,7 +1035,7 @@ export class NewWindowTab extends Action { super(NewWindowTab.ID, NewWindowTab.LABEL); } - run(): Thenable { + run(): Promise { return this.windowsService.newWindowTab().then(() => true); } } @@ -1053,7 +1053,7 @@ export class ShowPreviousWindowTab extends Action { super(ShowPreviousWindowTab.ID, ShowPreviousWindowTab.LABEL); } - run(): Thenable { + run(): Promise { return this.windowsService.showPreviousWindowTab().then(() => true); } } @@ -1071,7 +1071,7 @@ export class ShowNextWindowTab extends Action { super(ShowNextWindowTab.ID, ShowNextWindowTab.LABEL); } - run(): Thenable { + run(): Promise { return this.windowsService.showNextWindowTab().then(() => true); } } @@ -1089,7 +1089,7 @@ export class MoveWindowTabToNewWindow extends Action { super(MoveWindowTabToNewWindow.ID, MoveWindowTabToNewWindow.LABEL); } - run(): Thenable { + run(): Promise { return this.windowsService.moveWindowTabToNewWindow().then(() => true); } } @@ -1107,7 +1107,7 @@ export class MergeAllWindowTabs extends Action { super(MergeAllWindowTabs.ID, MergeAllWindowTabs.LABEL); } - run(): Thenable { + run(): Promise { return this.windowsService.mergeAllWindowTabs().then(() => true); } } @@ -1125,7 +1125,7 @@ export class ToggleWindowTabsBar extends Action { super(ToggleWindowTabsBar.ID, ToggleWindowTabsBar.LABEL); } - run(): Thenable { + run(): Promise { return this.windowsService.toggleWindowTabsBar().then(() => true); } } @@ -1142,7 +1142,7 @@ export class OpenTwitterUrlAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { if (product.twitterUrl) { return Promise.resolve(shell.openExternal(product.twitterUrl)); } @@ -1163,7 +1163,7 @@ export class OpenRequestFeatureUrlAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { if (product.requestFeatureUrl) { return Promise.resolve(shell.openExternal(product.requestFeatureUrl)); } @@ -1184,7 +1184,7 @@ export class OpenLicenseUrlAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { if (product.licenseUrl) { if (language) { const queryArgChar = product.licenseUrl.indexOf('?') > 0 ? '&' : '?'; @@ -1211,7 +1211,7 @@ export class OpenPrivacyStatementUrlAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { if (product.privacyStatementUrl) { if (language) { const queryArgChar = product.privacyStatementUrl.indexOf('?') > 0 ? '&' : '?'; @@ -1239,7 +1239,7 @@ export class ShowAboutDialogAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.windowsService.openAboutDialog(); } } @@ -1258,7 +1258,7 @@ export class InspectContextKeysAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const disposables: IDisposable[] = []; const stylesheet = createStyleSheet(); diff --git a/src/vs/workbench/electron-browser/main.ts b/src/vs/workbench/electron-browser/main.ts index 59418a29373..f5c44d48e7f 100644 --- a/src/vs/workbench/electron-browser/main.ts +++ b/src/vs/workbench/electron-browser/main.ts @@ -238,7 +238,7 @@ function createWorkspaceService(payload: IWorkspaceInitializationPayload, enviro }); } -function createStorageService(payload: IWorkspaceInitializationPayload, environmentService: IEnvironmentService, logService: ILogService, mainProcessClient: ElectronIPCClient): Thenable { +function createStorageService(payload: IWorkspaceInitializationPayload, environmentService: IEnvironmentService, logService: ILogService, mainProcessClient: ElectronIPCClient): Promise { const globalStorageDatabase = new GlobalStorageDatabaseChannelClient(mainProcessClient.getChannel('storage')); const storageService = new StorageService(globalStorageDatabase, logService, environmentService); diff --git a/src/vs/workbench/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts index 7466b83fde2..80bd4782837 100644 --- a/src/vs/workbench/electron-browser/window.ts +++ b/src/vs/workbench/electron-browser/window.ts @@ -411,7 +411,7 @@ export class ElectronWindow extends Themable { } private openResources(resources: (IResourceInput | IUntitledResourceInput)[], diffMode: boolean): void { - this.lifecycleService.when(LifecyclePhase.Ready).then((): Thenable => { + this.lifecycleService.when(LifecyclePhase.Ready).then((): Promise => { // In diffMode we open 2 resources as diff if (diffMode && resources.length === 2) { diff --git a/src/vs/workbench/electron-browser/workbench.ts b/src/vs/workbench/electron-browser/workbench.ts index 3a3829df446..795153f51e7 100644 --- a/src/vs/workbench/electron-browser/workbench.ts +++ b/src/vs/workbench/electron-browser/workbench.ts @@ -253,7 +253,7 @@ export class Workbench extends Disposable implements IPartService { (configuration.filesToDiff && configuration.filesToDiff.length > 0); } - startup(): Thenable { + startup(): Promise { this.workbenchStarted = true; // Create Workbench Container @@ -700,8 +700,8 @@ export class Workbench extends Disposable implements IPartService { updateSplitEditorsVerticallyContext(); } - private restoreParts(): Thenable { - const restorePromises: Thenable[] = []; + private restoreParts(): Promise { + const restorePromises: Promise[] = []; // Restore Editorpart perf.mark('willRestoreEditors'); @@ -804,7 +804,7 @@ export class Workbench extends Disposable implements IPartService { return this.lifecycleService.startupKind === StartupKind.ReloadedWindow; } - private resolveEditorsToOpen(): Thenable | IResourceEditor[] { + private resolveEditorsToOpen(): Promise | IResourceEditor[] { const config = this.workbenchParams.configuration; // Files to open, diff or create diff --git a/src/vs/workbench/parts/backup/common/backupRestorer.ts b/src/vs/workbench/parts/backup/common/backupRestorer.ts index 3aa54ae8fdb..ec5a953331a 100644 --- a/src/vs/workbench/parts/backup/common/backupRestorer.ts +++ b/src/vs/workbench/parts/backup/common/backupRestorer.ts @@ -28,13 +28,13 @@ export class BackupRestorer implements IWorkbenchContribution { this.lifecycleService.when(LifecyclePhase.Restored).then(() => this.doRestoreBackups()); } - private doRestoreBackups(): Thenable { + private doRestoreBackups(): Promise { // Find all files and untitled with backups return this.backupFileService.getWorkspaceFileBackups().then(backups => { // Resolve backups that are opened - return this.doResolveOpenedBackups(backups).then((unresolved): Thenable | undefined => { + return this.doResolveOpenedBackups(backups).then((unresolved): Promise | undefined => { // Some failed to restore or were not opened at all so we open and resolve them manually if (unresolved.length > 0) { @@ -46,8 +46,8 @@ export class BackupRestorer implements IWorkbenchContribution { }); } - private doResolveOpenedBackups(backups: URI[]): Thenable { - const restorePromises: Thenable[] = []; + private doResolveOpenedBackups(backups: URI[]): Promise { + const restorePromises: Promise[] = []; const unresolved: URI[] = []; backups.forEach(backup => { @@ -62,7 +62,7 @@ export class BackupRestorer implements IWorkbenchContribution { return Promise.all(restorePromises).then(() => unresolved, () => unresolved); } - private doOpenEditors(resources: URI[]): Thenable { + private doOpenEditors(resources: URI[]): Promise { const hasOpenedEditors = this.editorService.visibleEditors.length > 0; const inputs = resources.map((resource, index) => this.resolveInput(resource, index, hasOpenedEditors)); diff --git a/src/vs/workbench/parts/debug/browser/breakpointsView.ts b/src/vs/workbench/parts/debug/browser/breakpointsView.ts index 4e567790181..eb0b589dde0 100644 --- a/src/vs/workbench/parts/debug/browser/breakpointsView.ts +++ b/src/vs/workbench/parts/debug/browser/breakpointsView.ts @@ -543,7 +543,7 @@ class FunctionBreakpointInputRenderer implements IListRenderer { +export function openBreakpointSource(breakpoint: IBreakpoint, sideBySide: boolean, preserveFocus: boolean, debugService: IDebugService, editorService: IEditorService): Promise { if (breakpoint.uri.scheme === DEBUG_SCHEME && debugService.state === State.Inactive) { return Promise.resolve(null); } diff --git a/src/vs/workbench/parts/debug/browser/debugActions.ts b/src/vs/workbench/parts/debug/browser/debugActions.ts index 6b2def5a35d..cf5a6fb1cf9 100644 --- a/src/vs/workbench/parts/debug/browser/debugActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugActions.ts @@ -43,7 +43,7 @@ export abstract class AbstractDebugAction extends Action { this.updateEnablement(); } - public run(e?: any): Thenable { + public run(e?: any): Promise { throw new Error('implement me'); } @@ -99,7 +99,7 @@ export class ConfigureAction extends AbstractDebugAction { this.class = this.debugService.getConfigurationManager().selectedConfiguration.name ? 'debug-action configure' : 'debug-action configure notification'; } - public run(event?: any): Thenable { + public run(event?: any): Promise { if (this.contextService.getWorkbenchState() === WorkbenchState.EMPTY) { this.notificationService.info(nls.localize('noFolderDebugConfig', "Please first open a folder in order to do advanced debug configuration.")); return Promise.resolve(null); @@ -135,7 +135,7 @@ export class StartAction extends AbstractDebugAction { // Note: When this action is executed from the process explorer, a config is passed. For all // other cases it is run with no arguments. - public run(config?: IConfig): Thenable { + public run(config?: IConfig): Promise { if (config && 'type' in config && 'request' in config) { return this.debugService.startDebugging(undefined, config, this.isNoDebug()); } @@ -203,7 +203,7 @@ export class SelectAndStartAction extends AbstractDebugAction { super(id, label, undefined, debugService, keybindingService); } - public run(): Thenable { + public run(): Promise { return this.quickOpenService.show('debug '); } } @@ -233,7 +233,7 @@ export class RestartAction extends AbstractDebugAction { this.updateLabel(session && session.configuration.request === 'attach' ? RestartAction.RECONNECT_LABEL : RestartAction.LABEL); } - public run(session: IDebugSession): Thenable { + public run(session: IDebugSession): Promise { if (!session || !session.getId) { session = this.debugService.getViewModel().focusedSession; } @@ -744,7 +744,7 @@ export class FocusSessionAction extends AbstractDebugAction { super(id, label, null, debugService, keybindingService, 100); } - public run(sessionName: string): Thenable { + public run(sessionName: string): Promise { const session = this.debugService.getModel().getSessions().filter(p => p.getLabel() === sessionName).pop(); this.debugService.focusStackFrame(undefined, undefined, session, true); const stackFrame = this.debugService.getViewModel().focusedStackFrame; @@ -808,7 +808,7 @@ export class ReplCollapseAllAction extends CollapseAction2 { super(tree, true, undefined); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return super.run(event).then(() => { this.toFocus.focus(); }); diff --git a/src/vs/workbench/parts/debug/browser/debugEditorActions.ts b/src/vs/workbench/parts/debug/browser/debugEditorActions.ts index f136aaa92e2..3dbe2c0ef00 100644 --- a/src/vs/workbench/parts/debug/browser/debugEditorActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugEditorActions.ts @@ -188,7 +188,7 @@ class SelectionToWatchExpressionsAction extends EditorAction { }); } - public run(accessor: ServicesAccessor, editor: ICodeEditor): Thenable { + public run(accessor: ServicesAccessor, editor: ICodeEditor): Promise { const debugService = accessor.get(IDebugService); const viewletService = accessor.get(IViewletService); @@ -230,7 +230,7 @@ class GoToBreakpointAction extends EditorAction { super(opts); } - public run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Thenable { + public run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): Promise { const debugService = accessor.get(IDebugService); const editorService = accessor.get(IEditorService); const currentUri = editor.getModel().uri; diff --git a/src/vs/workbench/parts/debug/browser/debugQuickOpen.ts b/src/vs/workbench/parts/debug/browser/debugQuickOpen.ts index 95504883467..0f6aa619a07 100644 --- a/src/vs/workbench/parts/debug/browser/debugQuickOpen.ts +++ b/src/vs/workbench/parts/debug/browser/debugQuickOpen.ts @@ -92,7 +92,7 @@ export class DebugQuickOpenHandler extends Quickopen.QuickOpenHandler { return nls.localize('debugAriaLabel', "Type a name of a launch configuration to run."); } - public getResults(input: string, token: CancellationToken): Thenable { + public getResults(input: string, token: CancellationToken): Promise { const configurations: Model.QuickOpenEntry[] = []; const configManager = this.debugService.getConfigurationManager(); diff --git a/src/vs/workbench/parts/debug/browser/loadedScriptsView.ts b/src/vs/workbench/parts/debug/browser/loadedScriptsView.ts index d2761a2ab06..baec4a01f99 100644 --- a/src/vs/workbench/parts/debug/browser/loadedScriptsView.ts +++ b/src/vs/workbench/parts/debug/browser/loadedScriptsView.ts @@ -545,7 +545,7 @@ class LoadedScriptsDataSource implements IDataSource { return element === null || element.hasChildren(); } - getChildren(element: LoadedScriptsItem | null): Thenable { + getChildren(element: LoadedScriptsItem | null): Promise { if (element === null) { element = this.root; } diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index c15e0dc8f85..6cf0c421429 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -112,7 +112,7 @@ export interface IExpression extends IReplElement, IExpressionContainer { export interface IDebugger { createDebugAdapter(session: IDebugSession, outputService: IOutputService): Promise; runInTerminal(args: DebugProtocol.RunInTerminalRequestArguments): Promise; - getCustomTelemetryService(): Thenable; + getCustomTelemetryService(): Promise; } export const enum State { @@ -186,7 +186,7 @@ export interface IDebugSession extends ITreeElement { // DAP request - initialize(dbgr: IDebugger): Thenable; + initialize(dbgr: IDebugger): Promise; launchOrAttach(config: IConfig): Promise; restart(): Promise; terminate(restart?: boolean /* false */): Promise; @@ -291,7 +291,7 @@ export interface IStackFrame extends ITreeElement { getSpecificSourceName(): string; restart(): Promise; toString(): string; - openInEditor(editorService: IEditorService, preserveFocus?: boolean, sideBySide?: boolean): Thenable; + openInEditor(editorService: IEditorService, preserveFocus?: boolean, sideBySide?: boolean): Promise; } export interface IEnablement extends ITreeElement { @@ -594,7 +594,7 @@ export interface IConfigurationManager { */ onDidSelectConfiguration: Event; - activateDebuggers(activationEvent: string, debugType?: string): Thenable; + activateDebuggers(activationEvent: string, debugType?: string): Promise; needsToRunInExtHost(debugType: string): boolean; hasDebugConfigurationProvider(debugType: string): boolean; @@ -608,7 +608,7 @@ export interface IConfigurationManager { registerDebugAdapterTrackerFactory(debugAdapterTrackerFactory: IDebugAdapterTrackerFactory): IDisposable; unregisterDebugAdapterTrackerFactory(debugAdapterTrackerFactory: IDebugAdapterTrackerFactory): void; - resolveConfigurationByProviders(folderUri: uri | undefined, type: string | undefined, debugConfiguration: any): Thenable; + resolveConfigurationByProviders(folderUri: uri | undefined, type: string | undefined, debugConfiguration: any): Promise; provideDebugAdapter(session: IDebugSession): Promise; registerDebugAdapterFactory(debugTypes: string[], debugAdapterFactory: IDebugAdapterFactory): IDisposable; @@ -661,7 +661,7 @@ export interface ILaunch { /** * Opens the launch.json file. Creates if it does not exist. */ - openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): Thenable<{ editor: IEditor, created: boolean }>; + openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): Promise<{ editor: IEditor, created: boolean }>; } // Debug service interfaces @@ -785,12 +785,12 @@ export interface IDebugService { * Returns true if the start debugging was successfull. For compound launches, all configurations have to start successfuly for it to return success. * On errors the startDebugging will throw an error, however some error and cancelations are handled and in that case will simply return false. */ - startDebugging(launch: ILaunch, configOrName?: IConfig | string, noDebug?: boolean): Thenable; + startDebugging(launch: ILaunch, configOrName?: IConfig | string, noDebug?: boolean): Promise; /** * Restarts a session or creates a new one if there is no active session. */ - restartSession(session: IDebugSession, restartData?: any): Thenable; + restartSession(session: IDebugSession, restartData?: any): Promise; /** * Stops the session. If the session does not exist then stops all sessions. diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index c4dce89cd40..79d90ad6394 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -380,7 +380,7 @@ export class StackFrame implements IStackFrame { return `${this.name} (${this.source.inMemory ? this.source.name : this.source.uri.fsPath}:${this.range.startLineNumber})`; } - openInEditor(editorService: IEditorService, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Thenable { + openInEditor(editorService: IEditorService, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Promise { return !this.source.available ? Promise.resolve(null) : this.source.openInEditor(editorService, this.range, preserveFocus, sideBySide, pinned); } diff --git a/src/vs/workbench/parts/debug/common/debugSource.ts b/src/vs/workbench/parts/debug/common/debugSource.ts index 434c78d670f..35b974baee2 100644 --- a/src/vs/workbench/parts/debug/common/debugSource.ts +++ b/src/vs/workbench/parts/debug/common/debugSource.ts @@ -83,7 +83,7 @@ export class Source { return this.uri.scheme === DEBUG_SCHEME; } - openInEditor(editorService: IEditorService, selection: IRange, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Thenable { + openInEditor(editorService: IEditorService, selection: IRange, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Promise { return !this.available ? Promise.resolve(null) : editorService.openEditor({ resource: this.uri, description: this.origin, diff --git a/src/vs/workbench/parts/debug/electron-browser/breakpointWidget.ts b/src/vs/workbench/parts/debug/electron-browser/breakpointWidget.ts index 8a753096f88..a9a1f42be75 100644 --- a/src/vs/workbench/parts/debug/electron-browser/breakpointWidget.ts +++ b/src/vs/workbench/parts/debug/electron-browser/breakpointWidget.ts @@ -230,7 +230,7 @@ export class BreakpointWidget extends ZoneWidget implements IPrivateBreakpointWi this.themeService.onThemeChange(() => setDecorations()); this.toDispose.push(CompletionProviderRegistry.register({ scheme: DEBUG_SCHEME, hasAccessToAllModels: true }, { - provideCompletionItems: (model: ITextModel, position: Position, _context: CompletionContext, token: CancellationToken): Thenable => { + provideCompletionItems: (model: ITextModel, position: Position, _context: CompletionContext, token: CancellationToken): Promise => { let suggestionsPromise: Promise; if (this.context === Context.CONDITION || this.context === Context.LOG_MESSAGE && this.isCurlyBracketOpen()) { suggestionsPromise = provideSuggestionItems(this.editor.getModel(), new Position(this.lineNumber, 1), 'none', undefined, _context, token).then(suggestions => { diff --git a/src/vs/workbench/parts/debug/electron-browser/callStackView.ts b/src/vs/workbench/parts/debug/electron-browser/callStackView.ts index df7cd90ad2c..0c8e556b3ca 100644 --- a/src/vs/workbench/parts/debug/electron-browser/callStackView.ts +++ b/src/vs/workbench/parts/debug/electron-browser/callStackView.ts @@ -581,7 +581,7 @@ class CallStackDataSource implements IDataSource { return element === null || element instanceof DebugSession || (element instanceof Thread && element.stopped); } - getChildren(element: CallStackItem | null): Thenable { + getChildren(element: CallStackItem | null): Promise { if (element === null) { const model = this.debugService.getModel(); const sessions = model.getSessions(); diff --git a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts index 030ca8cd203..8c20e13ff80 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts @@ -217,7 +217,7 @@ export class ConfigurationManager implements IConfigurationManager { return providers2.length > 0; } - public resolveConfigurationByProviders(folderUri: uri | undefined, type: string | undefined, debugConfiguration: IConfig): Thenable { + public resolveConfigurationByProviders(folderUri: uri | undefined, type: string | undefined, debugConfiguration: IConfig): Promise { return this.activateDebuggers('onDebugResolve', type).then(() => { // pipe the config through the promises sequentially. append at the end the '*' types const providers = this.configProviders.filter(p => p.type === type && p.resolveDebugConfiguration) @@ -235,7 +235,7 @@ export class ConfigurationManager implements IConfigurationManager { }); } - public provideDebugConfigurations(folderUri: uri | undefined, type: string): Thenable { + public provideDebugConfigurations(folderUri: uri | undefined, type: string): Promise { return this.activateDebuggers('onDebugInitialConfigurations') .then(() => Promise.all(this.configProviders.filter(p => p.type === type && p.provideDebugConfigurations).map(p => p.provideDebugConfigurations(folderUri))) .then(results => results.reduce((first, second) => first.concat(second), []))); @@ -401,14 +401,14 @@ export class ConfigurationManager implements IConfigurationManager { return this.debuggers.filter(dbg => strings.equalsIgnoreCase(dbg.type, type)).pop(); } - public guessDebugger(type?: string): Thenable { + public guessDebugger(type?: string): Promise { if (type) { const adapter = this.getDebugger(type); return Promise.resolve(adapter); } const activeTextEditorWidget = this.editorService.activeTextEditorWidget; - let candidates: Thenable; + let candidates: Promise; if (isCodeEditor(activeTextEditorWidget)) { const model = activeTextEditorWidget.getModel(); const language = model ? model.getLanguageIdentifier().language : undefined; @@ -441,8 +441,8 @@ export class ConfigurationManager implements IConfigurationManager { }); } - public activateDebuggers(activationEvent: string, debugType?: string): Thenable { - const thenables: Thenable[] = [ + public activateDebuggers(activationEvent: string, debugType?: string): Promise { + const thenables: Promise[] = [ this.extensionService.activateByEvent(activationEvent), this.extensionService.activateByEvent('onDebug') ]; @@ -531,7 +531,7 @@ class Launch implements ILaunch { return config.configurations.filter(config => config && config.name === name).shift(); } - public openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): Thenable<{ editor: IEditor, created: boolean }> { + public openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): Promise<{ editor: IEditor, created: boolean }> { const resource = this.uri; let created = false; @@ -609,7 +609,7 @@ class WorkspaceLaunch extends Launch implements ILaunch { return this.configurationService.inspect('launch').workspace; } - openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): Thenable<{ editor: IEditor, created: boolean }> { + openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): Promise<{ editor: IEditor, created: boolean }> { return this.editorService.openEditor({ resource: this.contextService.getWorkspace().configuration, options: { preserveFocus } @@ -646,7 +646,7 @@ class UserLaunch extends Launch implements ILaunch { return this.configurationService.inspect('launch').user; } - openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): Thenable<{ editor: IEditor, created: boolean }> { + openConfigFile(sideBySide: boolean, preserveFocus: boolean, type?: string): Promise<{ editor: IEditor, created: boolean }> { return this.preferencesService.openGlobalSettings(false, { preserveFocus }).then(editor => ({ editor, created: false })); } } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugHover.ts b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts index 9e250067c3a..978ef4822f1 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugHover.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts @@ -207,7 +207,7 @@ export class DebugHoverWidget implements IContentWidget { .then(expressions => (expressions.length > 0 && expressions.every(e => e.value === expressions[0].value)) ? expressions[0] : null); } - private doShow(position: Position, expression: IExpression, focus: boolean, forceValueHover = false): Thenable { + private doShow(position: Position, expression: IExpression, focus: boolean, forceValueHover = false): Promise { if (!this.domNode) { this.create(); } @@ -298,7 +298,7 @@ class DebugHoverDataSource implements IDataSource { return element === null || element.hasChildren; } - getChildren(element: IExpression | null): Thenable { + getChildren(element: IExpression | null): Promise { if (element === null) { element = this.expression; } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index bc37e401e65..e696bf302e2 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -255,7 +255,7 @@ export class DebugService implements IDebugService { * main entry point * properly manages compounds, checks for errors and handles the initializing state. */ - startDebugging(launch: ILaunch, configOrName?: IConfig | string, noDebug = false, unresolvedConfig?: IConfig, ): Thenable { + startDebugging(launch: ILaunch, configOrName?: IConfig | string, noDebug = false, unresolvedConfig?: IConfig, ): Promise { this.startInitializingState(); // make sure to save all files and that the configuration is up to date @@ -343,7 +343,7 @@ export class DebugService implements IDebugService { /** * gets the debugger for the type, resolves configurations by providers, substitutes variables and runs prelaunch tasks */ - private createSession(launch: ILaunch, config: IConfig, unresolvedConfig: IConfig, noDebug: boolean): Thenable { + private createSession(launch: ILaunch, config: IConfig, unresolvedConfig: IConfig, noDebug: boolean): Promise { // We keep the debug type in a separate variable 'type' so that a no-folder config has no attributes. // Storing the type in the config would break extensions that assume that the no-folder case is indicated by an empty config. let type: string; @@ -359,7 +359,7 @@ export class DebugService implements IDebugService { config.noDebug = true; } - const debuggerThenable: Thenable = type ? Promise.resolve(null) : this.configurationManager.guessDebugger().then(dbgr => { type = dbgr && dbgr.type; }); + const debuggerThenable: Promise = type ? Promise.resolve(null) : this.configurationManager.guessDebugger().then(dbgr => { type = dbgr && dbgr.type; }); return debuggerThenable.then(() => this.configurationManager.resolveConfigurationByProviders(launch && launch.workspace ? launch.workspace.uri : undefined, type, config).then(config => { // a falsy config indicates an aborted launch @@ -417,7 +417,7 @@ export class DebugService implements IDebugService { /** * instantiates the new session, initializes the session, registers session listeners and reports telemetry */ - private doCreateSession(root: IWorkspaceFolder, configuration: { resolved: IConfig, unresolved: IConfig }): Thenable { + private doCreateSession(root: IWorkspaceFolder, configuration: { resolved: IConfig, unresolved: IConfig }): Promise { const session = this.instantiationService.createInstance(DebugSession, configuration, root, this.model); this.model.addSession(session); @@ -474,7 +474,7 @@ export class DebugService implements IDebugService { }); } - private launchOrAttachToSession(session: IDebugSession, focus = true): Thenable { + private launchOrAttachToSession(session: IDebugSession, focus = true): Promise { const dbgr = this.configurationManager.getDebugger(session.configuration.type); return session.initialize(dbgr).then(() => { return session.launchOrAttach(session.configuration).then(() => { @@ -546,10 +546,10 @@ export class DebugService implements IDebugService { })); } - restartSession(session: IDebugSession, restartData?: any): Thenable { + restartSession(session: IDebugSession, restartData?: any): Promise { return this.textFileService.saveAll().then(() => { const isAutoRestart = !!restartData; - const runTasks: () => Thenable = () => { + const runTasks: () => Promise = () => { if (isAutoRestart) { // Do not run preLaunch and postDebug tasks for automatic restarts return Promise.resolve(TaskRunResult.Success); @@ -595,7 +595,7 @@ export class DebugService implements IDebugService { } } - let substitutionThenable: Thenable = Promise.resolve(session.configuration); + let substitutionThenable: Promise = Promise.resolve(session.configuration); if (needsToSubstitute) { substitutionThenable = this.configurationManager.resolveConfigurationByProviders(launch.workspace ? launch.workspace.uri : undefined, unresolved.type, unresolved) .then(resolved => this.substituteVariables(launch, resolved)); @@ -630,7 +630,7 @@ export class DebugService implements IDebugService { return Promise.all(sessions.map(s => s.terminate())); } - private substituteVariables(launch: ILaunch | undefined, config: IConfig): Thenable { + private substituteVariables(launch: ILaunch | undefined, config: IConfig): Promise { const dbg = this.configurationManager.getDebugger(config.type); if (dbg) { let folder: IWorkspaceFolder | undefined = undefined; @@ -652,7 +652,7 @@ export class DebugService implements IDebugService { return Promise.resolve(config); } - private showError(message: string, actions: IAction[] = []): Thenable { + private showError(message: string, actions: IAction[] = []): Promise { const configureAction = this.instantiationService.createInstance(debugactions.ConfigureAction, debugactions.ConfigureAction.ID, debugactions.ConfigureAction.LABEL); actions.push(configureAction); return this.dialogService.show(severity.Error, message, actions.map(a => a.label).concat(nls.localize('cancel', "Cancel")), { cancelId: actions.length }).then(choice => { @@ -666,7 +666,7 @@ export class DebugService implements IDebugService { //---- task management - private runTaskAndCheckErrors(root: IWorkspaceFolder, taskId: string | TaskIdentifier): Thenable { + private runTaskAndCheckErrors(root: IWorkspaceFolder, taskId: string | TaskIdentifier): Promise { const debugAnywayAction = new Action('debug.debugAnyway', nls.localize('debugAnyway', "Debug Anyway"), undefined, true, () => Promise.resolve(TaskRunResult.Success)); return this.runTask(root, taskId).then((taskSummary: ITaskSummary) => { @@ -695,7 +695,7 @@ export class DebugService implements IDebugService { }); } - private runTask(root: IWorkspaceFolder, taskId: string | TaskIdentifier): Thenable { + private runTask(root: IWorkspaceFolder, taskId: string | TaskIdentifier): Promise { if (!taskId) { return Promise.resolve(null); } @@ -1012,7 +1012,7 @@ export class DebugService implements IDebugService { //---- telemetry - private telemetryDebugSessionStart(root: IWorkspaceFolder, type: string): Thenable { + private telemetryDebugSessionStart(root: IWorkspaceFolder, type: string): Promise { const extension = this.configurationManager.getDebugger(type).extensionDescription; /* __GDPR__ "debugSessionStart" : { @@ -1036,7 +1036,7 @@ export class DebugService implements IDebugService { }); } - private telemetryDebugSessionStop(session: IDebugSession, adapterExitEvent: AdapterEndEvent): Thenable { + private telemetryDebugSessionStop(session: IDebugSession, adapterExitEvent: AdapterEndEvent): Promise { const breakpoints = this.model.getBreakpoints(); @@ -1058,7 +1058,7 @@ export class DebugService implements IDebugService { }); } - private telemetryDebugMisconfiguration(debugType: string, message: string): Thenable { + private telemetryDebugMisconfiguration(debugType: string, message: string): Promise { /* __GDPR__ "debugMisconfiguration" : { "type" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, @@ -1071,7 +1071,7 @@ export class DebugService implements IDebugService { }); } - private telemetryDebugAddBreakpoint(breakpoint: IBreakpoint, context: string): Thenable { + private telemetryDebugAddBreakpoint(breakpoint: IBreakpoint, context: string): Promise { /* __GDPR__ "debugAddBreakpoint" : { "context": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, diff --git a/src/vs/workbench/parts/debug/electron-browser/debugSession.ts b/src/vs/workbench/parts/debug/electron-browser/debugSession.ts index 064254f7bf7..d0b01b5ae7b 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugSession.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugSession.ts @@ -135,7 +135,7 @@ export class DebugSession implements IDebugSession { /** * create and initialize a new debug adapter for this session */ - initialize(dbgr: IDebugger): Thenable { + initialize(dbgr: IDebugger): Promise { if (this.raw) { // if there was already a connection make sure to remove old listeners diff --git a/src/vs/workbench/parts/debug/electron-browser/repl.ts b/src/vs/workbench/parts/debug/electron-browser/repl.ts index 091da783716..4f6e5582009 100644 --- a/src/vs/workbench/parts/debug/electron-browser/repl.ts +++ b/src/vs/workbench/parts/debug/electron-browser/repl.ts @@ -386,7 +386,7 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati CompletionProviderRegistry.register({ scheme: DEBUG_SCHEME, pattern: '**/replinput', hasAccessToAllModels: true }, { triggerCharacters: ['.'], - provideCompletionItems: (model: ITextModel, position: Position, _context: CompletionContext, token: CancellationToken): Thenable => { + provideCompletionItems: (model: ITextModel, position: Position, _context: CompletionContext, token: CancellationToken): Promise => { // Disable history navigation because up and down are used to navigate through the suggest widget this.historyNavigationEnablement.set(false); @@ -759,7 +759,7 @@ class ReplDataSource implements IDataSource { return element === null || !!(element).hasChildren; } - getChildren(element: IReplElement | null): Thenable { + getChildren(element: IReplElement | null): Promise { if (element === null) { return Promise.resolve(this.input ? this.input.getReplElements() : []); } diff --git a/src/vs/workbench/parts/debug/electron-browser/variablesView.ts b/src/vs/workbench/parts/debug/electron-browser/variablesView.ts index 438129dd0f2..a477413b303 100644 --- a/src/vs/workbench/parts/debug/electron-browser/variablesView.ts +++ b/src/vs/workbench/parts/debug/electron-browser/variablesView.ts @@ -162,7 +162,7 @@ export class VariablesDataSource implements IDataSource { return element.hasChildren; } - getChildren(element: IExpression | IScope | null): Thenable<(IExpression | IScope)[]> { + getChildren(element: IExpression | IScope | null): Promise<(IExpression | IScope)[]> { if (element === null) { const stackFrame = this.debugService.getViewModel().focusedStackFrame; return stackFrame ? stackFrame.getScopes() : Promise.resolve([]); diff --git a/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts b/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts index 57dd1d3452a..dd6728e9112 100644 --- a/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts +++ b/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts @@ -199,7 +199,7 @@ class WatchExpressionsDataSource implements IDataSource { return element.hasChildren; } - getChildren(element: IExpression | null): Thenable<(IExpression)[]> { + getChildren(element: IExpression | null): Promise<(IExpression)[]> { if (element === null) { const watchExpressions = this.debugService.getModel().getWatchExpressions(); const viewModel = this.debugService.getViewModel(); diff --git a/src/vs/workbench/parts/debug/node/debugger.ts b/src/vs/workbench/parts/debug/node/debugger.ts index 7d913302660..60468da355d 100644 --- a/src/vs/workbench/parts/debug/node/debugger.ts +++ b/src/vs/workbench/parts/debug/node/debugger.ts @@ -115,7 +115,7 @@ export class Debugger implements IDebugger { }); } - substituteVariables(folder: IWorkspaceFolder, config: IConfig): Thenable { + substituteVariables(folder: IWorkspaceFolder, config: IConfig): Promise { if (this.inExtHost()) { return this.configurationManager.substituteVariables(this.type, folder, config).then(config => { return this.configurationResolverService.resolveWithInteractionReplace(folder, config, 'launch', this.variables); @@ -208,7 +208,7 @@ export class Debugger implements IDebugger { } @memoize - getCustomTelemetryService(): Thenable { + getCustomTelemetryService(): Promise { if (!this.debuggerContribution.aiKey) { return Promise.resolve(undefined); } diff --git a/src/vs/workbench/parts/debug/node/terminals.ts b/src/vs/workbench/parts/debug/node/terminals.ts index 5d514e483a6..c81df11eb9c 100644 --- a/src/vs/workbench/parts/debug/node/terminals.ts +++ b/src/vs/workbench/parts/debug/node/terminals.ts @@ -187,7 +187,7 @@ class LinuxTerminalService extends TerminalLauncher { public runInTerminal0(title: string, dir: string, args: string[], envVars: env.IProcessEnvironment, configuration: ITerminalSettings): Promise { const terminalConfig = configuration.external; - const execThenable: Thenable = terminalConfig.linuxExec ? Promise.resolve(terminalConfig.linuxExec) : getDefaultTerminalLinuxReady(); + const execThenable: Promise = terminalConfig.linuxExec ? Promise.resolve(terminalConfig.linuxExec) : getDefaultTerminalLinuxReady(); return new Promise((c, e) => { diff --git a/src/vs/workbench/parts/debug/test/common/mockDebug.ts b/src/vs/workbench/parts/debug/test/common/mockDebug.ts index c607480b044..9b0838ee00e 100644 --- a/src/vs/workbench/parts/debug/test/common/mockDebug.ts +++ b/src/vs/workbench/parts/debug/test/common/mockDebug.ts @@ -199,7 +199,7 @@ export class MockSession implements IDebugSession { rawUpdate(data: IRawModelUpdate): void { } - initialize(dbgr: IDebugger): Thenable { + initialize(dbgr: IDebugger): Promise { throw new Error('Method not implemented.'); } launchOrAttach(config: IConfig): Promise { diff --git a/src/vs/workbench/parts/extensions/browser/extensionsQuickOpen.ts b/src/vs/workbench/parts/extensions/browser/extensionsQuickOpen.ts index 626f1e22215..3c65a60f628 100644 --- a/src/vs/workbench/parts/extensions/browser/extensionsQuickOpen.ts +++ b/src/vs/workbench/parts/extensions/browser/extensionsQuickOpen.ts @@ -46,7 +46,7 @@ export class ExtensionsHandler extends QuickOpenHandler { super(); } - getResults(text: string, token: CancellationToken): Thenable> { + getResults(text: string, token: CancellationToken): Promise> { const label = nls.localize('manage', "Press Enter to manage your extensions."); const action = () => { this.viewletService.openViewlet(VIEWLET_ID, true) @@ -82,7 +82,7 @@ export class GalleryExtensionsHandler extends QuickOpenHandler { super(); } - getResults(text: string, token: CancellationToken): Thenable> { + getResults(text: string, token: CancellationToken): Promise> { if (/\./.test(text)) { return this.galleryService.query({ names: [text], pageSize: 1 }) .then(galleryResult => { diff --git a/src/vs/workbench/parts/extensions/common/extensionsInput.ts b/src/vs/workbench/parts/extensions/common/extensionsInput.ts index a9c9bd41e4b..e3f5e16c522 100644 --- a/src/vs/workbench/parts/extensions/common/extensionsInput.ts +++ b/src/vs/workbench/parts/extensions/common/extensionsInput.ts @@ -38,7 +38,7 @@ export class ExtensionsInput extends EditorInput { return this.extension === otherExtensionInput.extension; } - resolve(): Thenable { + resolve(): Promise { return Promise.resolve(null); } diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index 4befadce043..21bbe3a63e5 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -270,7 +270,7 @@ export class ExtensionEditor extends BaseEditor { this.content = append(body, $('.content')); } - setInput(input: ExtensionsInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: ExtensionsInput, options: EditorOptions, token: CancellationToken): Promise { return this.extensionService.getExtensions() .then(runningExtensions => { this.activeElement = null; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.ts index 40c8b6a2bd2..134e2bfe27b 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.ts @@ -70,7 +70,7 @@ export class ExtensionHostProfileService extends Disposable implements IExtensio this._onDidChangeState.fire(void 0); } - public startProfiling(): Thenable { + public startProfiling(): Promise { if (this._state !== ProfileSessionState.None) { return null; } diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 2679fd84256..0d62b580bc5 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -491,7 +491,7 @@ export abstract class DropDownAction extends Action { return this._actionItem; } - public run({ actionGroups, disposeActionsOnHide }: { actionGroups: IAction[][], disposeActionsOnHide: boolean }): Thenable { + public run({ actionGroups, disposeActionsOnHide }: { actionGroups: IAction[][], disposeActionsOnHide: boolean }): Promise { if (this._actionItem) { this._actionItem.showMenu(actionGroups, disposeActionsOnHide); } @@ -595,7 +595,7 @@ export class ManageExtensionAction extends DropDownAction { return groups; } - run(): Thenable { + run(): Promise { return this.extensionService.getExtensions().then(runtimeExtensions => super.run({ actionGroups: this.getActionGroups(runtimeExtensions), disposeActionsOnHide: true })); } @@ -628,7 +628,7 @@ export class InstallAnotherVersionAction extends Action { this.enabled = this.extension && !!this.extension.gallery; } - run(): Thenable { + run(): Promise { return this.quickInputService.pick(this.getVersionEntries(), { placeHolder: localize('selectVersion', "Select Version to Install"), matchOnDetail: true }) .then(pick => { if (pick) { @@ -992,7 +992,7 @@ export class ExtensionEditorDropDownAction extends DropDownAction { } } - public run(): Thenable { + public run(): Promise { const enabledActions = this.actions.filter(a => a.enabled); if (enabledActions.length === 1) { enabledActions[0].run(); @@ -1334,7 +1334,7 @@ export class ShowEnabledExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1357,7 +1357,7 @@ export class ShowInstalledExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1380,7 +1380,7 @@ export class ShowDisabledExtensionsAction extends Action { super(id, label, 'null', true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1412,7 +1412,7 @@ export class ClearExtensionsInputAction extends Action { this.enabled = !!value; } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1439,7 +1439,7 @@ export class ShowBuiltInExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1462,7 +1462,7 @@ export class ShowOutdatedExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1485,7 +1485,7 @@ export class ShowPopularExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1508,7 +1508,7 @@ export class ShowRecommendedExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1541,7 +1541,7 @@ export class InstallWorkspaceRecommendedExtensionsAction extends Action { this.recommendations = recommendations; } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1549,7 +1549,7 @@ export class InstallWorkspaceRecommendedExtensionsAction extends Action { viewlet.focus(); const names = this.recommendations.map(({ extensionId }) => extensionId); return this.extensionWorkbenchService.queryGallery({ names, source: 'install-all-workspace-recommendations' }).then(pager => { - let installPromises: Thenable[] = []; + let installPromises: Promise[] = []; let model = new PagedModel(pager); for (let i = 0; i < pager.total; i++) { installPromises.push(model.resolve(i, CancellationToken.None).then(e => { @@ -1584,7 +1584,7 @@ export class InstallRecommendedExtensionAction extends Action { this.extensionId = extensionId; } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1680,7 +1680,7 @@ export class ShowRecommendedKeymapExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1703,7 +1703,7 @@ export class ShowLanguageExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1726,7 +1726,7 @@ export class ShowAzureExtensionsAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1765,7 +1765,7 @@ export class ChangeSortAction extends Action { this.enabled = value && this.query.isValid() && !this.query.equals(query); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -1803,7 +1803,7 @@ export class ChangeGroupAction extends Action { this.query = new Query(query.value, query.sortBy, this.groupBy || query.groupBy); } - run(): Thenable { + run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { @@ -2619,12 +2619,12 @@ export class ReinstallAction extends Action { return this.extensionsWorkbenchService.local.filter(l => l.type === LocalExtensionType.User && l.local).length > 0; } - run(): Thenable { + run(): Promise { return this.quickInputService.pick(this.getEntries(), { placeHolder: localize('selectExtensionToReinstall', "Select Extension to Reinstall") }) .then(pick => pick && this.reinstallExtension(pick.extension)); } - private getEntries(): Thenable<(IQuickPickItem & { extension: IExtension })[]> { + private getEntries(): Promise<(IQuickPickItem & { extension: IExtension })[]> { return this.extensionsWorkbenchService.queryLocal() .then(local => { const entries = local @@ -2641,7 +2641,7 @@ export class ReinstallAction extends Action { }); } - private reinstallExtension(extension: IExtension): Thenable { + private reinstallExtension(extension: IExtension): Promise { return this.viewletService.openViewlet(VIEWLET_ID) .then((viewlet: IExtensionsViewlet) => { viewlet.search(''); @@ -2700,7 +2700,7 @@ export class InstallSpecificVersionOfExtensionAction extends Action { private async getExtensionEntries(): Promise<(IQuickPickItem & { extension: IExtension, versions: IGalleryExtensionVersion[] })[]> { const installed = await this.extensionsWorkbenchService.queryLocal(); - const versionsPromises: Thenable<{ extension: IExtension, versions: IGalleryExtensionVersion[] }>[] = []; + const versionsPromises: Promise<{ extension: IExtension, versions: IGalleryExtensionVersion[] }>[] = []; for (const extension of installed) { if (this.isEnabled(extension)) { versionsPromises.push(this.extensionGalleryService.getAllVersions(extension.gallery, true) @@ -2722,7 +2722,7 @@ export class InstallSpecificVersionOfExtensionAction extends Action { }); } - private install(extension: IExtension, version: string): Thenable { + private install(extension: IExtension, version: string): Promise { return this.viewletService.openViewlet(VIEWLET_ID) .then((viewlet: IExtensionsViewlet) => { viewlet.search(''); diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts index 7f4e0a18613..af793327171 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts @@ -401,8 +401,8 @@ export class ExtensionsListView extends ViewletPanel { } - private _searchExperiments: Thenable; - private getSearchExperiments(): Thenable { + private _searchExperiments: Promise; + private getSearchExperiments(): Promise { if (!this._searchExperiments) { this._searchExperiments = this.experimentService.getExperimentsByType(ExperimentActionType.ExtensionSearchResults); } diff --git a/src/vs/workbench/parts/files/browser/editors/binaryFileEditor.ts b/src/vs/workbench/parts/files/browser/editors/binaryFileEditor.ts index b2956c1bffe..e2a6bf40fe6 100644 --- a/src/vs/workbench/parts/files/browser/editors/binaryFileEditor.ts +++ b/src/vs/workbench/parts/files/browser/editors/binaryFileEditor.ts @@ -44,7 +44,7 @@ export class BinaryFileEditor extends BaseBinaryResourceEditor { ); } - private openInternal(input: EditorInput, options: EditorOptions): Thenable { + private openInternal(input: EditorInput, options: EditorOptions): Promise { if (input instanceof FileEditorInput) { input.setForceOpenAsText(); diff --git a/src/vs/workbench/parts/files/browser/editors/fileEditorTracker.ts b/src/vs/workbench/parts/files/browser/editors/fileEditorTracker.ts index 2300e540542..fc8f77b2b84 100644 --- a/src/vs/workbench/parts/files/browser/editors/fileEditorTracker.ts +++ b/src/vs/workbench/parts/files/browser/editors/fileEditorTracker.ts @@ -168,7 +168,7 @@ export class FileEditorTracker extends Disposable implements IWorkbenchContribut // file is really gone and not just a faulty file event. // This only applies to external file events, so we need to check for the isExternal // flag. - let checkExists: Thenable; + let checkExists: Promise; if (isExternal) { checkExists = timeout(100).then(() => this.fileService.existsFile(resource)); } else { diff --git a/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts b/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts index 69c4078ff86..ba0a6eac16e 100644 --- a/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts +++ b/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts @@ -109,7 +109,7 @@ export class TextFileEditor extends BaseTextEditor { } } - setInput(input: FileEditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: FileEditorInput, options: EditorOptions, token: CancellationToken): Promise { // Update/clear view settings if input changes this.doSaveOrClearTextEditorViewState(this.input); diff --git a/src/vs/workbench/parts/files/common/editors/fileEditorInput.ts b/src/vs/workbench/parts/files/common/editors/fileEditorInput.ts index 0fa6fce1e2f..0d8adaccef1 100644 --- a/src/vs/workbench/parts/files/common/editors/fileEditorInput.ts +++ b/src/vs/workbench/parts/files/common/editors/fileEditorInput.ts @@ -28,7 +28,7 @@ export class FileEditorInput extends EditorInput implements IFileEditorInput { private preferredEncoding: string; private forceOpenAsBinary: boolean; private forceOpenAsText: boolean; - private textModelReference: Thenable>; + private textModelReference: Promise>; private name: string; /** @@ -222,15 +222,15 @@ export class FileEditorInput extends EditorInput implements IFileEditorInput { return model.isDirty(); } - confirmSave(): Thenable { + confirmSave(): Promise { return this.textFileService.confirmSave([this.resource]); } - save(): Thenable { + save(): Promise { return this.textFileService.save(this.resource); } - revert(options?: IRevertOptions): Thenable { + revert(options?: IRevertOptions): Promise { return this.textFileService.revert(this.resource, options); } @@ -238,7 +238,7 @@ export class FileEditorInput extends EditorInput implements IFileEditorInput { return this.forceOpenAsBinary ? BINARY_FILE_EDITOR_ID : TEXT_FILE_EDITOR_ID; } - resolve(): Thenable { + resolve(): Promise { // Resolve as binary if (this.forceOpenAsBinary) { @@ -249,7 +249,7 @@ export class FileEditorInput extends EditorInput implements IFileEditorInput { return this.doResolveAsText(); } - private doResolveAsText(): Thenable { + private doResolveAsText(): Promise { // Resolve as text return this.textFileService.models.loadOrCreate(this.resource, { @@ -280,7 +280,7 @@ export class FileEditorInput extends EditorInput implements IFileEditorInput { }); } - private doResolveAsBinary(): Thenable { + private doResolveAsBinary(): Promise { return this.instantiationService.createInstance(BinaryEditorModel, this.resource, this.getName()).load().then(m => m as BinaryEditorModel); } diff --git a/src/vs/workbench/parts/files/common/files.ts b/src/vs/workbench/parts/files/common/files.ts index 974d5e1e0af..3a145b8b474 100644 --- a/src/vs/workbench/parts/files/common/files.ts +++ b/src/vs/workbench/parts/files/common/files.ts @@ -35,7 +35,7 @@ export interface IExplorerViewlet extends IViewlet { } export interface IExplorerView { - select(resource: URI, reveal?: boolean): Thenable; + select(resource: URI, reveal?: boolean): Promise; } /** @@ -154,7 +154,7 @@ export class FileOnDiskContentProvider implements ITextModelContentProvider { ) { } - provideTextContent(resource: URI): Thenable { + provideTextContent(resource: URI): Promise { const fileOnDiskResource = resource.with({ scheme: Schemas.file }); // Make sure our file from disk is resolved up to date @@ -180,9 +180,9 @@ export class FileOnDiskContentProvider implements ITextModelContentProvider { }); } - private resolveEditorModel(resource: URI, createAsNeeded?: true): Thenable; - private resolveEditorModel(resource: URI, createAsNeeded?: boolean): Thenable; - private resolveEditorModel(resource: URI, createAsNeeded: boolean = true): Thenable { + private resolveEditorModel(resource: URI, createAsNeeded?: true): Promise; + private resolveEditorModel(resource: URI, createAsNeeded?: boolean): Promise; + private resolveEditorModel(resource: URI, createAsNeeded: boolean = true): Promise { const fileOnDiskResource = resource.with({ scheme: Schemas.file }); return this.textFileService.resolveTextContent(fileOnDiskResource).then(content => { diff --git a/src/vs/workbench/parts/files/electron-browser/fileActions.ts b/src/vs/workbench/parts/files/electron-browser/fileActions.ts index 3c76c5c912e..1cece8af158 100644 --- a/src/vs/workbench/parts/files/electron-browser/fileActions.ts +++ b/src/vs/workbench/parts/files/electron-browser/fileActions.ts @@ -98,7 +98,7 @@ export class BaseErrorReportingAction extends Action { this._notificationService.error(toErrorMessage(error, false)); } - protected onErrorWithRetry(error: any, retry: () => Thenable): void { + protected onErrorWithRetry(error: any, retry: () => Promise): void { this._notificationService.prompt(Severity.Error, toErrorMessage(error, false), [{ label: nls.localize('retry', "Retry"), @@ -167,7 +167,7 @@ class TriggerRenameFileAction extends BaseFileAction { return this.renameAction.validateFileName(this.element.parent, name); } - public run(context?: any): Thenable { + public run(context?: any): Promise { if (!context) { return Promise.reject(new Error('No context provided to BaseEnableFileRenameAction.')); } @@ -234,7 +234,7 @@ export abstract class BaseRenameAction extends BaseFileAction { return super._isEnabled() && this.element && !this.element.isReadonly; } - public run(context?: any): Thenable { + public run(context?: any): Promise { if (!context) { return Promise.reject(new Error('No context provided to BaseRenameFileAction.')); } @@ -277,7 +277,7 @@ export abstract class BaseRenameAction extends BaseFileAction { return validateFileName(parent, name); } - public abstract runAction(newName: string): Thenable; + public abstract runAction(newName: string): Promise; } class RenameFileAction extends BaseRenameAction { @@ -295,7 +295,7 @@ class RenameFileAction extends BaseRenameAction { this._updateEnablement(); } - public runAction(newName: string): Thenable { + public runAction(newName: string): Promise { const parentResource = this.element.parent.resource; const targetResource = resources.joinPath(parentResource, newName); @@ -332,7 +332,7 @@ export class BaseNewAction extends BaseFileAction { this.renameAction = editableAction; } - public run(context?: any): Thenable { + public run(context?: any): Promise { if (!context) { return Promise.reject(new Error('No context provided to BaseNewAction.')); } @@ -456,7 +456,7 @@ export class GlobalNewUntitledFileAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { return this.editorService.openEditor({ options: { pinned: true } } as IUntitledResourceInput); // untitled are always pinned } } @@ -491,7 +491,7 @@ class CreateFileAction extends BaseCreateAction { this._updateEnablement(); } - public runAction(fileName: string): Thenable { + public runAction(fileName: string): Promise { const resource = this.element.parent.resource; return this.fileService.createFile(resources.joinPath(resource, fileName)).then(stat => { return this.editorService.openEditor({ resource: stat.resource, options: { pinned: true } }); @@ -518,7 +518,7 @@ class CreateFolderAction extends BaseCreateAction { this._updateEnablement(); } - public runAction(fileName: string): Thenable { + public runAction(fileName: string): Promise { const resource = this.element.parent.resource; return this.fileService.createFolder(resources.joinPath(resource, fileName)).then(void 0, (error) => { this.onErrorWithRetry(error, () => this.runAction(fileName)); @@ -554,7 +554,7 @@ class BaseDeleteFileAction extends BaseFileAction { return super._isEnabled() && this.elements && this.elements.every(e => !e.isReadonly); } - public run(): Thenable { + public run(): Promise { // Remove highlight if (this.tree) { @@ -571,7 +571,7 @@ class BaseDeleteFileAction extends BaseFileAction { const distinctElements = resources.distinctParents(this.elements, e => e.resource); // Handle dirty - let confirmDirtyPromise: Thenable = Promise.resolve(true); + let confirmDirtyPromise: Promise = Promise.resolve(true); const dirty = this.textFileService.getDirty().filter(d => distinctElements.some(e => resources.isEqualOrParent(d, e.resource, !isLinux /* ignorecase */))); if (dirty.length) { let message: string; @@ -608,7 +608,7 @@ class BaseDeleteFileAction extends BaseFileAction { return null; } - let confirmDeletePromise: Thenable; + let confirmDeletePromise: Promise; // Check if we need to ask for confirmation at all if (this.skipConfirm || (this.useTrash && this.configurationService.getValue(BaseDeleteFileAction.CONFIRM_DELETE_SETTING_KEY) === false)) { @@ -644,7 +644,7 @@ class BaseDeleteFileAction extends BaseFileAction { return confirmDeletePromise.then(confirmation => { // Check for confirmation checkbox - let updateConfirmSettingsPromise: Thenable = Promise.resolve(void 0); + let updateConfirmSettingsPromise: Promise = Promise.resolve(void 0); if (confirmation.confirmed && confirmation.checkboxChecked === true) { updateConfirmSettingsPromise = this.configurationService.updateValue(BaseDeleteFileAction.CONFIRM_DELETE_SETTING_KEY, false, ConfigurationTarget.USER); } @@ -781,7 +781,7 @@ export class AddFilesAction extends BaseFileAction { this._updateEnablement(); } - public run(resourcesToAdd: URI[]): Thenable { + public run(resourcesToAdd: URI[]): Promise { const addPromise = Promise.resolve(null).then(() => { if (resourcesToAdd && resourcesToAdd.length > 0) { @@ -807,7 +807,7 @@ export class AddFilesAction extends BaseFileAction { targetNames.add(isLinux ? child.name : child.name.toLowerCase()); }); - let overwritePromise: Thenable = Promise.resolve({ confirmed: true }); + let overwritePromise: Promise = Promise.resolve({ confirmed: true }); if (resourcesToAdd.some(resource => { return targetNames.has(!resources.hasToIgnoreCase(resource) ? resources.basename(resource) : resources.basename(resource).toLowerCase()); })) { @@ -827,7 +827,7 @@ export class AddFilesAction extends BaseFileAction { } // Run add in sequence - const addPromisesFactory: ITask>[] = []; + const addPromisesFactory: ITask>[] = []; resourcesToAdd.forEach(resource => { addPromisesFactory.push(() => { const sourceFile = resource; @@ -836,7 +836,7 @@ export class AddFilesAction extends BaseFileAction { // if the target exists and is dirty, make sure to revert it. otherwise the dirty contents // of the target file would replace the contents of the added file. since we already // confirmed the overwrite before, this is OK. - let revertPromise: Thenable = Promise.resolve(null); + let revertPromise: Promise = Promise.resolve(null); if (this.textFileService.isDirty(targetFile)) { revertPromise = this.textFileService.revertAll([targetFile], { soft: true }); } @@ -890,7 +890,7 @@ class CopyFileAction extends BaseFileAction { this._updateEnablement(); } - public run(): Thenable { + public run(): Promise { // Write to clipboard as file/folder to copy this.clipboardService.writeResources(this.elements.map(e => e.resource)); @@ -932,7 +932,7 @@ class PasteFileAction extends BaseFileAction { this._updateEnablement(); } - public run(fileToPaste: URI): Thenable { + public run(fileToPaste: URI): Promise { // Check if target is ancestor of pasted folder if (this.element.resource.toString() !== fileToPaste.toString() && resources.isEqualOrParent(this.element.resource, fileToPaste, !isLinux /* ignorecase */)) { @@ -994,7 +994,7 @@ export class DuplicateFileAction extends BaseFileAction { this._updateEnablement(); } - public run(): Thenable { + public run(): Promise { // Remove highlight if (this.tree) { @@ -1113,7 +1113,7 @@ export class GlobalCompareResourcesAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const activeInput = this.editorService.activeEditor; const activeResource = activeInput ? activeInput.getResource() : void 0; if (activeResource) { @@ -1170,7 +1170,7 @@ export class ToggleAutoSaveAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const setting = this.configurationService.inspect('files.autoSave'); let userAutoSaveConfig = setting.user; if (types.isUndefinedOrNull(userAutoSaveConfig)) { @@ -1210,7 +1210,7 @@ export abstract class BaseSaveAllAction extends BaseErrorReportingAction { } protected abstract includeUntitled(): boolean; - protected abstract doRun(context: any): Thenable; + protected abstract doRun(context: any): Promise; private registerListeners(): void { @@ -1232,7 +1232,7 @@ export abstract class BaseSaveAllAction extends BaseErrorReportingAction { } } - public run(context?: any): Thenable { + public run(context?: any): Promise { return this.doRun(context).then(() => true, error => { this.onError(error); return null; @@ -1255,7 +1255,7 @@ export class SaveAllAction extends BaseSaveAllAction { return 'explorer-action save-all'; } - protected doRun(context: any): Thenable { + protected doRun(context: any): Promise { return this.commandService.executeCommand(SAVE_ALL_COMMAND_ID); } @@ -1273,7 +1273,7 @@ export class SaveAllInGroupAction extends BaseSaveAllAction { return 'explorer-action save-all'; } - protected doRun(context: any): Thenable { + protected doRun(context: any): Promise { return this.commandService.executeCommand(SAVE_ALL_IN_GROUP_COMMAND_ID, {}, context); } @@ -1291,7 +1291,7 @@ export class CloseGroupAction extends Action { super(id, label, 'action-close-all-files'); } - public run(context?: any): Thenable { + public run(context?: any): Promise { return this.commandService.executeCommand(CLOSE_EDITORS_AND_GROUP_COMMAND_ID, {}, context); } } @@ -1309,7 +1309,7 @@ export class FocusFilesExplorer extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true).then((viewlet: ExplorerViewlet) => { const view = viewlet.getExplorerView(); if (view) { @@ -1335,7 +1335,7 @@ export class ShowActiveFileInExplorer extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const resource = toResource(this.editorService.activeEditor, { supportSideBySide: true }); if (resource) { this.commandService.executeCommand(REVEAL_IN_EXPLORER_COMMAND_ID, resource); @@ -1360,7 +1360,7 @@ export class CollapseExplorerView extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true).then((viewlet: ExplorerViewlet) => { const explorerView = viewlet.getExplorerView(); if (explorerView) { @@ -1388,7 +1388,7 @@ export class RefreshExplorerView extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { return this.viewletService.openViewlet(VIEWLET_ID, true).then((viewlet: ExplorerViewlet) => { const explorerView = viewlet.getExplorerView(); if (explorerView) { @@ -1413,7 +1413,7 @@ export class ShowOpenedFileInNewWindow extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const fileResource = toResource(this.editorService.activeEditor, { supportSideBySide: true, filter: Schemas.file /* todo@remote */ }); if (fileResource) { this.windowService.openWindow([fileResource], { forceNewWindow: true, forceOpenWorkspaceAsFile: true }); @@ -1510,7 +1510,7 @@ export class CompareWithClipboardAction extends Action { this.enabled = true; } - public run(): Thenable { + public run(): Promise { const resource: URI = toResource(this.editorService.activeEditor, { supportSideBySide: true }); if (resource && (this.fileService.canHandleResource(resource) || resource.scheme === Schemas.untitled)) { if (!this.registrationDisposal) { @@ -1545,7 +1545,7 @@ class ClipboardContentProvider implements ITextModelContentProvider { @IModelService private modelService: IModelService ) { } - provideTextContent(resource: URI): Thenable { + provideTextContent(resource: URI): Promise { const model = this.modelService.createModel(this.clipboardService.readText(), this.modeService.create('text/plain'), resource); return Promise.resolve(model); @@ -1570,12 +1570,12 @@ function getContext(listWidget: ListWidget, viewletService: IViewletService): IE // TODO@isidor these commands are calling into actions due to the complex inheritance action structure. // It should be the other way around, that actions call into commands. -function openExplorerAndRunAction(accessor: ServicesAccessor, constructor: IConstructorSignature2): Thenable { +function openExplorerAndRunAction(accessor: ServicesAccessor, constructor: IConstructorSignature2): Promise { const instantationService = accessor.get(IInstantiationService); const listService = accessor.get(IListService); const viewletService = accessor.get(IViewletService); const activeViewlet = viewletService.getActiveViewlet(); - let explorerPromise: Thenable = Promise.resolve(activeViewlet); + let explorerPromise: Promise = Promise.resolve(activeViewlet); if (!activeViewlet || activeViewlet.getId() !== VIEWLET_ID) { explorerPromise = viewletService.openViewlet(VIEWLET_ID, true); } diff --git a/src/vs/workbench/parts/files/electron-browser/fileCommands.ts b/src/vs/workbench/parts/files/electron-browser/fileCommands.ts index 2ade215a719..ce04514a299 100644 --- a/src/vs/workbench/parts/files/electron-browser/fileCommands.ts +++ b/src/vs/workbench/parts/files/electron-browser/fileCommands.ts @@ -90,7 +90,7 @@ function save( untitledEditorService: IUntitledEditorService, textFileService: ITextFileService, editorGroupService: IEditorGroupsService -): Thenable { +): Promise { function ensureForcedSave(options?: ISaveOptions): ISaveOptions { if (!options) { @@ -124,7 +124,7 @@ function save( } // Special case: an untitled file with associated path gets saved directly unless "saveAs" is true - let savePromise: Thenable; + let savePromise: Promise; if (!isSaveAs && resource.scheme === Schemas.untitled && untitledEditorService.hasAssociatedFilePath(resource)) { savePromise = textFileService.save(resource, options).then((result) => { if (result) { @@ -184,7 +184,7 @@ function save( } function saveAll(saveAllArguments: any, editorService: IEditorService, untitledEditorService: IUntitledEditorService, - textFileService: ITextFileService, editorGroupService: IEditorGroupsService): Thenable { + textFileService: ITextFileService, editorGroupService: IEditorGroupsService): Promise { // Store some properties per untitled file to restore later after save is completed const groupIdToUntitledResourceInput = new Map(); diff --git a/src/vs/workbench/parts/files/electron-browser/saveErrorHandler.ts b/src/vs/workbench/parts/files/electron-browser/saveErrorHandler.ts index c532e9a9f54..4593b4babae 100644 --- a/src/vs/workbench/parts/files/electron-browser/saveErrorHandler.ts +++ b/src/vs/workbench/parts/files/electron-browser/saveErrorHandler.ts @@ -234,7 +234,7 @@ class ResolveSaveConflictAction extends Action { super('workbench.files.action.resolveConflict', nls.localize('compareChanges', "Compare")); } - run(): Thenable { + run(): Promise { if (!this.model.isDisposed()) { const resource = this.model.getResource(); const name = paths.basename(resource.fsPath); diff --git a/src/vs/workbench/parts/files/electron-browser/views/emptyView.ts b/src/vs/workbench/parts/files/electron-browser/views/emptyView.ts index 3e748e0774f..5c116da9d30 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/emptyView.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/emptyView.ts @@ -123,7 +123,7 @@ export class EmptyView extends ViewletPanel { // no-op } - public setVisible(visible: boolean): Thenable { + public setVisible(visible: boolean): Promise { return Promise.resolve(null); } @@ -133,7 +133,7 @@ export class EmptyView extends ViewletPanel { } } - protected reveal(element: any, relativeTop?: number): Thenable { + protected reveal(element: any, relativeTop?: number): Promise { return Promise.resolve(null); } diff --git a/src/vs/workbench/parts/files/electron-browser/views/explorerView.ts b/src/vs/workbench/parts/files/electron-browser/views/explorerView.ts index 5a1a8d9a1a9..ce2a419ec3d 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/explorerView.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/explorerView.ts @@ -330,7 +330,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView if (visible) { // If a refresh was requested and we are now visible, run it - let refreshPromise: Thenable = Promise.resolve(null); + let refreshPromise: Promise = Promise.resolve(null); if (this.shouldRefresh) { refreshPromise = this.doRefresh(); this.shouldRefresh = false; // Reset flag @@ -492,7 +492,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView // Add the new file to its parent (Model) parents.forEach(p => { // We have to check if the parent is resolved #29177 - const thenable: Thenable = p.isDirectoryResolved ? Promise.resolve(null) : this.fileService.resolveFile(p.resource); + const thenable: Promise = p.isDirectoryResolved ? Promise.resolve(null) : this.fileService.resolveFile(p.resource); thenable.then(stat => { if (stat) { const modelStat = ExplorerItem.create(stat, p.root); @@ -732,7 +732,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView /** * Refresh the contents of the explorer to get up to date data from the disk about the file structure. */ - public refresh(): Thenable { + public refresh(): Promise { if (!this.explorerViewer || this.explorerViewer.getHighlight()) { return Promise.resolve(null); } @@ -761,7 +761,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView }); } - private doRefresh(targetsToExpand: URI[] = []): Thenable { + private doRefresh(targetsToExpand: URI[] = []): Promise { const targetsToResolve = this.model.roots.map(root => ({ root, resource: root.resource, options: { resolveTo: [] } })); // First time refresh: Receive target through active editor input or selection and also include settings from previous session @@ -800,7 +800,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView return promise; } - private resolveRoots(targetsToResolve: { root: ExplorerItem, resource: URI, options: { resolveTo: any[] } }[], targetsToExpand: URI[]): Thenable { + private resolveRoots(targetsToResolve: { root: ExplorerItem, resource: URI, options: { resolveTo: any[] } }[], targetsToExpand: URI[]): Promise { // Display roots only when multi folder workspace let input = this.contextService.getWorkbenchState() === WorkbenchState.FOLDER ? this.model.roots[0] : this.model; @@ -863,7 +863,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView // There is a remote root, resolve the roots sequantally let statsToExpand: ExplorerItem[] = []; let delayer = new Delayer(100); - let delayerPromise: Thenable; + let delayerPromise: Promise; return Promise.all(targetsToResolve.map((target, index) => this.fileService.resolveFile(target.resource, target.options) .then(result => result.isDirectory ? ExplorerItem.create(result, target.root, target.options.resolveTo) : errorRoot(target.resource, target.root), () => errorRoot(target.resource, target.root)) .then(modelStat => { @@ -919,7 +919,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView * Selects and reveal the file element provided by the given resource if its found in the explorer. Will try to * resolve the path from the disk in case the explorer is not yet expanded to the file yet. */ - public select(resource: URI, reveal: boolean = this.autoReveal): Thenable { + public select(resource: URI, reveal: boolean = this.autoReveal): Promise { // Require valid path if (!resource) { @@ -967,7 +967,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView : undefined; } - private doSelect(fileStat: ExplorerItem, reveal: boolean): Thenable { + private doSelect(fileStat: ExplorerItem, reveal: boolean): Promise { if (!fileStat) { return Promise.resolve(null); } @@ -982,7 +982,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView } // Reveal depending on flag - let revealPromise: Thenable; + let revealPromise: Promise; if (reveal) { revealPromise = this.reveal(fileStat, 0.5); } else { @@ -998,7 +998,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView }); } - private reveal(element: any, relativeTop?: number): Thenable { + private reveal(element: any, relativeTop?: number): Promise { if (!this.tree) { return Promise.resolve(null); // return early if viewlet has not yet been created } diff --git a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts index d610251a59c..d7b23a0b15a 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts @@ -75,7 +75,7 @@ export class FileDataSource implements IDataSource { return stat instanceof Model || (stat instanceof ExplorerItem && (stat.isDirectory || stat.isRoot)); } - public getChildren(tree: ITree, stat: ExplorerItem | Model): Thenable { + public getChildren(tree: ITree, stat: ExplorerItem | Model): Promise { if (stat instanceof Model) { return Promise.resolve(stat.roots); } @@ -120,7 +120,7 @@ export class FileDataSource implements IDataSource { } } - public getParent(tree: ITree, stat: ExplorerItem | Model): Thenable { + public getParent(tree: ITree, stat: ExplorerItem | Model): Promise { if (!stat) { return Promise.resolve(null); // can be null if nothing selected in the tree } @@ -173,7 +173,7 @@ export class ActionRunner extends BaseActionRunner implements IActionRunner { this.viewletState = state; } - public run(action: IAction, context?: any): Thenable { + public run(action: IAction, context?: any): Promise { return super.run(action, { viewletState: this.viewletState }); } } @@ -930,7 +930,7 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { } } - private handleExternalDrop(tree: ITree, data: DesktopDragAndDropData, target: ExplorerItem | Model, originalEvent: DragMouseEvent): Thenable { + private handleExternalDrop(tree: ITree, data: DesktopDragAndDropData, target: ExplorerItem | Model, originalEvent: DragMouseEvent): Promise { const droppedResources = extractResources(originalEvent.browserEvent as DragEvent, true); // Check for dropped external files to be folders @@ -944,7 +944,7 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { if (folders.length > 0) { // If we are in no-workspace context, ask for confirmation to create a workspace - let confirmedPromise: Thenable = Promise.resolve({ confirmed: true }); + let confirmedPromise: Promise = Promise.resolve({ confirmed: true }); if (this.contextService.getWorkbenchState() !== WorkbenchState.WORKSPACE) { confirmedPromise = this.dialogService.confirm({ message: folders.length > 1 ? nls.localize('dropFolders', "Do you want to add the folders to the workspace?") : nls.localize('dropFolder', "Do you want to add the folder to the workspace?"), @@ -973,11 +973,11 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { }); } - private handleExplorerDrop(tree: ITree, data: IDragAndDropData, target: ExplorerItem | Model, originalEvent: DragMouseEvent): Thenable { + private handleExplorerDrop(tree: ITree, data: IDragAndDropData, target: ExplorerItem | Model, originalEvent: DragMouseEvent): Promise { const sources: ExplorerItem[] = resources.distinctParents(data.getData(), s => s.resource); const isCopy = (originalEvent.ctrlKey && !isMacintosh) || (originalEvent.altKey && isMacintosh); - let confirmPromise: Thenable; + let confirmPromise: Promise; // Handle confirm setting const confirmDragAndDrop = !isCopy && this.configurationService.getValue(FileDragAndDrop.CONFIRM_DND_SETTING_KEY); @@ -1000,7 +1000,7 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { return confirmPromise.then(res => { // Check for confirmation checkbox - let updateConfirmSettingsPromise: Thenable = Promise.resolve(void 0); + let updateConfirmSettingsPromise: Promise = Promise.resolve(void 0); if (res.confirmed && res.checkboxChecked === true) { updateConfirmSettingsPromise = this.configurationService.updateValue(FileDragAndDrop.CONFIRM_DND_SETTING_KEY, false, ConfigurationTarget.USER); } @@ -1016,7 +1016,7 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { }); } - private doHandleRootDrop(roots: ExplorerItem[], target: ExplorerItem | Model): Thenable { + private doHandleRootDrop(roots: ExplorerItem[], target: ExplorerItem | Model): Promise { if (roots.length === 0) { return Promise.resolve(undefined); } @@ -1048,7 +1048,7 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { return this.workspaceEditingService.updateFolders(0, workspaceCreationData.length, workspaceCreationData); } - private doHandleExplorerDrop(tree: ITree, source: ExplorerItem, target: ExplorerItem | Model, isCopy: boolean): Thenable { + private doHandleExplorerDrop(tree: ITree, source: ExplorerItem, target: ExplorerItem | Model, isCopy: boolean): Promise { if (!(target instanceof ExplorerItem)) { return Promise.resolve(void 0); } diff --git a/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts b/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts index 560aeecc1bf..be1ace4d227 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts @@ -496,7 +496,7 @@ interface IEditorGroupTemplateData { class OpenEditorActionRunner extends ActionRunner { public editor: OpenEditor; - run(action: IAction, context?: any): Thenable { + run(action: IAction, context?: any): Promise { return super.run(action, { groupId: this.editor.groupId, editorIndex: this.editor.editorIndex }); } } diff --git a/src/vs/workbench/parts/html/electron-browser/htmlPreviewPart.ts b/src/vs/workbench/parts/html/electron-browser/htmlPreviewPart.ts index beb5093cc3e..1c33d07ae78 100644 --- a/src/vs/workbench/parts/html/electron-browser/htmlPreviewPart.ts +++ b/src/vs/workbench/parts/html/electron-browser/htmlPreviewPart.ts @@ -181,7 +181,7 @@ export class HtmlPreviewPart extends BaseWebviewEditor { this.webview.sendMessage(data); } - public setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + public setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { if (this.input && this.input.matches(input) && this._hasValidModel() && this.input instanceof HtmlInput && input instanceof HtmlInput && areHtmlInputOptionsEqual(this.input.options, input.options)) { return Promise.resolve(undefined); diff --git a/src/vs/workbench/parts/localizations/electron-browser/localizations.contribution.ts b/src/vs/workbench/parts/localizations/electron-browser/localizations.contribution.ts index b2aa7b366dc..ee89a7d8f50 100644 --- a/src/vs/workbench/parts/localizations/electron-browser/localizations.contribution.ts +++ b/src/vs/workbench/parts/localizations/electron-browser/localizations.contribution.ts @@ -215,7 +215,7 @@ export class LocalizationWorkbenchContribution extends Disposable implements IWo .then(installed => installed.some(i => i.manifest && i.manifest.contributes && i.manifest.contributes.localizations && i.manifest.contributes.localizations.length && i.manifest.contributes.localizations.some(l => l.languageId.toLowerCase() === language))); } - private installExtension(extension: IGalleryExtension): Thenable { + private installExtension(extension: IGalleryExtension): Promise { return this.viewletService.openViewlet(EXTENSIONS_VIEWLET_ID) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => viewlet.search(`@id:${extension.identifier.id}`)) diff --git a/src/vs/workbench/parts/localizations/electron-browser/localizationsActions.ts b/src/vs/workbench/parts/localizations/electron-browser/localizationsActions.ts index 2f3bad9d854..314887009ba 100644 --- a/src/vs/workbench/parts/localizations/electron-browser/localizationsActions.ts +++ b/src/vs/workbench/parts/localizations/electron-browser/localizationsActions.ts @@ -36,11 +36,11 @@ export class ConfigureLocaleAction extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { const file = URI.file(join(this.environmentService.appSettingsHome, 'locale.json')); return this.fileService.resolveFile(file).then(void 0, (error) => { return this.fileService.createFile(file, ConfigureLocaleAction.DEFAULT_CONTENT); - }).then((stat): Thenable | undefined => { + }).then((stat): Promise | undefined => { if (!stat) { return undefined; } diff --git a/src/vs/workbench/parts/logs/electron-browser/logsActions.ts b/src/vs/workbench/parts/logs/electron-browser/logsActions.ts index df65f541076..9b44b0f3fe3 100644 --- a/src/vs/workbench/parts/logs/electron-browser/logsActions.ts +++ b/src/vs/workbench/parts/logs/electron-browser/logsActions.ts @@ -23,7 +23,7 @@ export class OpenLogsFolderAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.windowsService.showItemInFolder(paths.join(this.environmentService.logsPath, 'main.log')); } } @@ -40,7 +40,7 @@ export class SetLogLevelAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const current = this.logService.getLevel(); const entries = [ { label: nls.localize('trace', "Trace"), level: LogLevel.Trace, description: this.getDescription(LogLevel.Trace, current) }, diff --git a/src/vs/workbench/parts/markers/electron-browser/markersPanelActions.ts b/src/vs/workbench/parts/markers/electron-browser/markersPanelActions.ts index 6e563394db2..e3346332b22 100644 --- a/src/vs/workbench/parts/markers/electron-browser/markersPanelActions.ts +++ b/src/vs/workbench/parts/markers/electron-browser/markersPanelActions.ts @@ -68,7 +68,7 @@ export class ShowProblemsPanelAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { this.panelService.openPanel(Constants.MARKERS_PANEL_ID, true); return Promise.resolve(null); } @@ -346,7 +346,7 @@ export class QuickFixAction extends Action { })); } - public openFileAtMarker(element: Marker): Thenable { + public openFileAtMarker(element: Marker): Promise { const { resource, selection } = { resource: element.resource, selection: element.range }; return this.editorService.openEditor({ resource, diff --git a/src/vs/workbench/parts/output/browser/outputActions.ts b/src/vs/workbench/parts/output/browser/outputActions.ts index d631ab4ad7a..944d07638a2 100644 --- a/src/vs/workbench/parts/output/browser/outputActions.ts +++ b/src/vs/workbench/parts/output/browser/outputActions.ts @@ -104,7 +104,7 @@ export class SwitchOutputAction extends Action { this.class = 'output-action switch-to-output'; } - public run(channelId?: string): Thenable { + public run(channelId?: string): Promise { return this.outputService.showChannel(channelId); } } @@ -187,7 +187,7 @@ export class OpenLogOutputFile extends Action { this.enabled = outputChannelDescriptor && outputChannelDescriptor.file && outputChannelDescriptor.log; } - public run(): Thenable { + public run(): Promise { return this.enabled ? this.editorService.openEditor(this.instantiationService.createInstance(LogViewerInput, this.getOutputChannelDescriptor())).then(() => null) : Promise.resolve(null); } @@ -209,7 +209,7 @@ export class ShowLogsOutputChannelAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const entries: IQuickPickItem[] = this.outputService.getChannelDescriptors().filter(c => c.file && c.log) .map(({ id, label }) => ({ id, label })); @@ -241,7 +241,7 @@ export class OpenOutputLogFileAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const entries: IOutputChannelQuickPickItem[] = this.outputService.getChannelDescriptors().filter(c => c.file && c.log) .map(channel => ({ id: channel.id, label: channel.label, channel })); diff --git a/src/vs/workbench/parts/output/browser/outputPanel.ts b/src/vs/workbench/parts/output/browser/outputPanel.ts index d6eabdfeb84..d72b6a8e4f9 100644 --- a/src/vs/workbench/parts/output/browser/outputPanel.ts +++ b/src/vs/workbench/parts/output/browser/outputPanel.ts @@ -112,7 +112,7 @@ export class OutputPanel extends AbstractTextResourceEditor { return channel ? nls.localize('outputPanelWithInputAriaLabel', "{0}, Output panel", channel.label) : nls.localize('outputPanelAriaLabel', "Output panel"); } - public setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + public setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { this._focus = !options.preserveFocus; if (input.matches(this.input)) { return Promise.resolve(null); diff --git a/src/vs/workbench/parts/output/common/output.ts b/src/vs/workbench/parts/output/common/output.ts index 61c29285bb9..61aaa78e5ff 100644 --- a/src/vs/workbench/parts/output/common/output.ts +++ b/src/vs/workbench/parts/output/common/output.ts @@ -84,7 +84,7 @@ export interface IOutputService { /** * Show the channel with the passed id. */ - showChannel(id: string, preserveFocus?: boolean): Thenable; + showChannel(id: string, preserveFocus?: boolean): Promise; /** * Allows to register on active output channel change. diff --git a/src/vs/workbench/parts/output/common/outputLinkProvider.ts b/src/vs/workbench/parts/output/common/outputLinkProvider.ts index 63437034c96..d739924dda7 100644 --- a/src/vs/workbench/parts/output/common/outputLinkProvider.ts +++ b/src/vs/workbench/parts/output/common/outputLinkProvider.ts @@ -42,7 +42,7 @@ export class OutputLinkProvider { if (folders.length > 0) { if (!this.linkProviderRegistration) { this.linkProviderRegistration = LinkProviderRegistry.register([{ language: OUTPUT_MODE_ID, scheme: '*' }, { language: LOG_MODE_ID, scheme: '*' }], { - provideLinks: (model, token): Thenable => { + provideLinks: (model, token): Promise => { return this.provideLinks(model.uri); } }); diff --git a/src/vs/workbench/parts/output/electron-browser/outputServices.ts b/src/vs/workbench/parts/output/electron-browser/outputServices.ts index e6ef18b8fa7..58ebefeac15 100644 --- a/src/vs/workbench/parts/output/electron-browser/outputServices.ts +++ b/src/vs/workbench/parts/output/electron-browser/outputServices.ts @@ -69,7 +69,7 @@ interface OutputChannel extends IOutputChannel { readonly file: URI; readonly onDidAppendedContent: Event; readonly onDispose: Event; - loadModel(): Thenable; + loadModel(): Promise; } abstract class AbstractFileOutputChannel extends Disposable implements OutputChannel { @@ -151,7 +151,7 @@ abstract class AbstractFileOutputChannel extends Disposable implements OutputCha } } - abstract loadModel(): Thenable; + abstract loadModel(): Promise; abstract append(message: string); protected onModelCreated(model: ITextModel) { } @@ -216,7 +216,7 @@ class OutputChannelBackedByFile extends AbstractFileOutputChannel implements Out this.appendedMessage = ''; } - loadModel(): Thenable { + loadModel(): Promise { this.loadingFromFileInProgress = true; if (this.modelUpdater.isScheduled()) { this.modelUpdater.cancel(); @@ -242,7 +242,7 @@ class OutputChannelBackedByFile extends AbstractFileOutputChannel implements Out }); } - private resetModel(): Thenable { + private resetModel(): Promise { this.startOffset = 0; this.endOffset = 0; if (this.model) { @@ -251,7 +251,7 @@ class OutputChannelBackedByFile extends AbstractFileOutputChannel implements Out return Promise.resolve(null); } - private loadFile(): Thenable { + private loadFile(): Promise { return this.fileService.resolveContent(this.file, { position: this.startOffset, encoding: 'utf8' }) .then(content => this.appendedMessage ? content.value + this.appendedMessage : content.value); } @@ -309,7 +309,7 @@ class OutputFileListener extends Disposable { this.syncDelayer.trigger(loop); } - private doWatch(): Thenable { + private doWatch(): Promise { return this.fileService.resolveFile(this.file) .then(stat => { if (stat.etag !== this.etag) { @@ -341,7 +341,7 @@ class FileOutputChannel extends AbstractFileOutputChannel implements OutputChann private updateInProgress: boolean = false; private etag: string = ''; - private loadModelPromise: Thenable = Promise.resolve(); + private loadModelPromise: Promise = Promise.resolve(); constructor( outputChannelDescriptor: IOutputChannelDescriptor, @@ -357,7 +357,7 @@ class FileOutputChannel extends AbstractFileOutputChannel implements OutputChann this._register(toDisposable(() => this.fileHandler.unwatch())); } - loadModel(): Thenable { + loadModel(): Promise { this.loadModelPromise = this.fileService.resolveContent(this.file, { position: this.startOffset, encoding: 'utf8' }) .then(content => { this.endOffset = this.startOffset + Buffer.from(content.value).byteLength; @@ -473,7 +473,7 @@ export class OutputService extends Disposable implements IOutputService, ITextMo this._register(this.storageService.onWillSaveState(() => this.saveState())); } - provideTextContent(resource: URI): Thenable { + provideTextContent(resource: URI): Promise { const channel = this.getChannel(resource.path); if (channel) { return channel.loadModel(); @@ -481,7 +481,7 @@ export class OutputService extends Disposable implements IOutputService, ITextMo return null; } - showChannel(id: string, preserveFocus?: boolean): Thenable { + showChannel(id: string, preserveFocus?: boolean): Promise { const channel = this.getChannel(id); if (!channel || this.isChannelShown(channel)) { if (this._outputPanel && !preserveFocus) { @@ -491,7 +491,7 @@ export class OutputService extends Disposable implements IOutputService, ITextMo } this.activeChannel = channel; - let promise: Thenable; + let promise: Promise; if (this.isPanelShown()) { promise = this.doShowChannel(channel, preserveFocus); } else { @@ -523,7 +523,7 @@ export class OutputService extends Disposable implements IOutputService, ITextMo } } - private onDidPanelOpen(panel: IPanel, preserveFocus: boolean): Thenable { + private onDidPanelOpen(panel: IPanel, preserveFocus: boolean): Promise { if (panel && panel.getId() === OUTPUT_PANEL_ID) { this._outputPanel = this.panelService.getActivePanel(); if (this.activeChannel) { @@ -604,7 +604,7 @@ export class OutputService extends Disposable implements IOutputService, ITextMo } } - private doShowChannel(channel: IOutputChannel, preserveFocus: boolean): Thenable { + private doShowChannel(channel: IOutputChannel, preserveFocus: boolean): Promise { if (this._outputPanel) { CONTEXT_ACTIVE_LOG_OUTPUT.bindTo(this.contextKeyService).set(channel instanceof FileOutputChannel && channel.outputChannelDescriptor.log); return this._outputPanel.setInput(this.createInput(channel), EditorOptions.create({ preserveFocus }), CancellationToken.None) @@ -650,7 +650,7 @@ export class LogContentProvider { ) { } - provideTextContent(resource: URI): Thenable { + provideTextContent(resource: URI): Promise { if (resource.scheme === LOG_SCHEME) { let channel = this.getChannel(resource); if (channel) { @@ -731,7 +731,7 @@ class BufferredOutputChannel extends Disposable implements OutputChannel { this.lastReadId = void 0; } - loadModel(): Thenable { + loadModel(): Promise { const { value, id } = this.bufferredContent.getDelta(this.lastReadId); if (this.model) { this.model.setValue(value); diff --git a/src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts b/src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts index 3f4870b68d0..3d0355e0e9f 100644 --- a/src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts +++ b/src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts @@ -117,7 +117,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor this._register(focusTracker.onDidBlur(() => this.keybindingsEditorContextKey.reset())); } - setInput(input: KeybindingsEditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: KeybindingsEditorInput, options: EditorOptions, token: CancellationToken): Promise { return super.setInput(input, options, token) .then(() => this.render(options && options.preserveFocus, token)); } @@ -153,7 +153,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor return focusedElement && focusedElement.templateId === KEYBINDING_ENTRY_TEMPLATE_ID ? focusedElement : null; } - defineKeybinding(keybindingEntry: IKeybindingItemEntry): Thenable { + defineKeybinding(keybindingEntry: IKeybindingItemEntry): Promise { this.selectEntry(keybindingEntry); this.showOverlayContainer(); return this.defineKeybindingWidget.define().then(key => { @@ -181,7 +181,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor }); } - removeKeybinding(keybindingEntry: IKeybindingItemEntry): Thenable { + removeKeybinding(keybindingEntry: IKeybindingItemEntry): Promise { this.selectEntry(keybindingEntry); if (keybindingEntry.keybindingItem.keybinding) { // This should be a pre-condition this.reportKeybindingAction(KEYBINDINGS_EDITOR_COMMAND_REMOVE, keybindingEntry.keybindingItem.command, keybindingEntry.keybindingItem.keybinding); @@ -195,7 +195,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor return Promise.resolve(null); } - resetKeybinding(keybindingEntry: IKeybindingItemEntry): Thenable { + resetKeybinding(keybindingEntry: IKeybindingItemEntry): Promise { this.selectEntry(keybindingEntry); this.reportKeybindingAction(KEYBINDINGS_EDITOR_COMMAND_RESET, keybindingEntry.keybindingItem.command, keybindingEntry.keybindingItem.keybinding); return this.keybindingEditingService.resetKeybinding(keybindingEntry.keybindingItem.keybindingItem) @@ -421,7 +421,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor })); } - private render(preserveFocus: boolean, token: CancellationToken): Thenable { + private render(preserveFocus: boolean, token: CancellationToken): Promise { if (this.input) { return this.input.resolve() .then((keybindingsModel: KeybindingsEditorModel) => { diff --git a/src/vs/workbench/parts/preferences/browser/preferencesActions.ts b/src/vs/workbench/parts/preferences/browser/preferencesActions.ts index 2ecd5904b80..8a701cbd15e 100644 --- a/src/vs/workbench/parts/preferences/browser/preferencesActions.ts +++ b/src/vs/workbench/parts/preferences/browser/preferencesActions.ts @@ -29,7 +29,7 @@ export class OpenRawDefaultSettingsAction extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openRawDefaultSettings(); } } @@ -47,7 +47,7 @@ export class OpenSettings2Action extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openSettings(false); } } @@ -65,7 +65,7 @@ export class OpenSettingsAction extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openSettings(); } } @@ -83,7 +83,7 @@ export class OpenSettingsJsonAction extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openSettings(true); } } @@ -101,7 +101,7 @@ export class OpenGlobalSettingsAction extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openGlobalSettings(); } } @@ -119,7 +119,7 @@ export class OpenGlobalKeybindingsAction extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openGlobalKeybindingSettings(false); } } @@ -137,7 +137,7 @@ export class OpenGlobalKeybindingsFileAction extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openGlobalKeybindingSettings(true); } } @@ -155,7 +155,7 @@ export class OpenDefaultKeybindingsFileAction extends Action { super(id, label); } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openDefaultKeybindingsFile(); } } @@ -182,7 +182,7 @@ export class OpenWorkspaceSettingsAction extends Action { this.enabled = this.workspaceContextService.getWorkbenchState() !== WorkbenchState.EMPTY; } - public run(event?: any): Thenable { + public run(event?: any): Promise { return this.preferencesService.openWorkspaceSettings(); } @@ -219,7 +219,7 @@ export class OpenFolderSettingsAction extends Action { this.enabled = this.workspaceContextService.getWorkbenchState() === WorkbenchState.WORKSPACE && this.workspaceContextService.getWorkspace().folders.length > 0; } - public run(): Thenable { + public run(): Promise { return this.commandService.executeCommand(PICK_WORKSPACE_FOLDER_COMMAND_ID) .then(workspaceFolder => { if (workspaceFolder) { @@ -252,7 +252,7 @@ export class ConfigureLanguageBasedSettingsAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const languages = this.modeService.getRegisteredLanguageNames(); const picks: IQuickPickItem[] = languages.sort().map((lang, index) => { let description: string = nls.localize('languageDescriptionConfigured', "({0})", this.modeService.getModeIdForLanguageName(lang.toLowerCase())); diff --git a/src/vs/workbench/parts/preferences/browser/preferencesEditor.ts b/src/vs/workbench/parts/preferences/browser/preferencesEditor.ts index c5db416d90c..f6bdf64b687 100644 --- a/src/vs/workbench/parts/preferences/browser/preferencesEditor.ts +++ b/src/vs/workbench/parts/preferences/browser/preferencesEditor.ts @@ -154,7 +154,7 @@ export class PreferencesEditor extends BaseEditor { this.preferencesRenderers.editFocusedPreference(); } - public setInput(newInput: PreferencesEditorInput, options: SettingsEditorOptions, token: CancellationToken): Thenable { + public setInput(newInput: PreferencesEditorInput, options: SettingsEditorOptions, token: CancellationToken): Promise { this.defaultSettingsEditorContextKey.set(true); this.defaultSettingsJSONEditorContextKey.set(true); if (options && options.query) { @@ -254,7 +254,7 @@ export class PreferencesEditor extends BaseEditor { if (this.editorService.activeControl !== this) { this.focus(); } - const promise: Thenable = this.input && this.input.isDirty() ? this.input.save() : Promise.resolve(true); + const promise: Promise = this.input && this.input.isDirty() ? this.input.save() : Promise.resolve(true); promise.then(() => { if (target === ConfigurationTarget.USER) { this.preferencesService.switchSettings(ConfigurationTarget.USER, this.preferencesService.userSettingsResource, true); @@ -933,7 +933,7 @@ class SideBySidePreferencesWidget extends Widget { return editor; } - private updateInput(editor: BaseEditor, input: EditorInput, editorContributionId: string, associatedPreferencesModelUri: URI, options: EditorOptions, token: CancellationToken): Thenable> { + private updateInput(editor: BaseEditor, input: EditorInput, editorContributionId: string, associatedPreferencesModelUri: URI, options: EditorOptions, token: CancellationToken): Promise> { return editor.setInput(input, options, token) .then(() => { if (token.isCancellationRequested) { @@ -1041,7 +1041,7 @@ export class DefaultPreferencesEditor extends BaseTextEditor { return options; } - setInput(input: DefaultPreferencesEditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: DefaultPreferencesEditorInput, options: EditorOptions, token: CancellationToken): Promise { return super.setInput(input, options, token) .then(() => this.input.resolve() .then(editorModel => { @@ -1079,13 +1079,13 @@ export class DefaultPreferencesEditor extends BaseTextEditor { interface ISettingsEditorContribution extends editorCommon.IEditorContribution { - updatePreferencesRenderer(associatedPreferencesModelUri: URI): Thenable>; + updatePreferencesRenderer(associatedPreferencesModelUri: URI): Promise>; } abstract class AbstractSettingsEditorContribution extends Disposable implements ISettingsEditorContribution { - private preferencesRendererCreationPromise: Thenable>; + private preferencesRendererCreationPromise: Promise>; constructor(protected editor: ICodeEditor, @IInstantiationService protected instantiationService: IInstantiationService, @@ -1096,7 +1096,7 @@ abstract class AbstractSettingsEditorContribution extends Disposable implements this._register(this.editor.onDidChangeModel(() => this._onModelChanged())); } - updatePreferencesRenderer(associatedPreferencesModelUri: URI): Thenable> { + updatePreferencesRenderer(associatedPreferencesModelUri: URI): Promise> { if (!this.preferencesRendererCreationPromise) { this.preferencesRendererCreationPromise = this._createPreferencesRenderer(); } @@ -1117,13 +1117,13 @@ abstract class AbstractSettingsEditorContribution extends Disposable implements } } - private _hasAssociatedPreferencesModelChanged(associatedPreferencesModelUri: URI): Thenable { + private _hasAssociatedPreferencesModelChanged(associatedPreferencesModelUri: URI): Promise { return this.preferencesRendererCreationPromise.then(preferencesRenderer => { return !(preferencesRenderer && preferencesRenderer.getAssociatedPreferencesModel() && preferencesRenderer.getAssociatedPreferencesModel().uri.toString() === associatedPreferencesModelUri.toString()); }); } - private _updatePreferencesRenderer(associatedPreferencesModelUri: URI): Thenable> { + private _updatePreferencesRenderer(associatedPreferencesModelUri: URI): Promise> { return this.preferencesService.createPreferencesEditorModel(associatedPreferencesModelUri) .then(associatedPreferencesEditorModel => { return this.preferencesRendererCreationPromise.then(preferencesRenderer => { @@ -1160,7 +1160,7 @@ abstract class AbstractSettingsEditorContribution extends Disposable implements super.dispose(); } - protected abstract _createPreferencesRenderer(): Thenable>; + protected abstract _createPreferencesRenderer(): Promise>; abstract getId(): string; } @@ -1172,7 +1172,7 @@ class DefaultSettingsEditorContribution extends AbstractSettingsEditorContributi return DefaultSettingsEditorContribution.ID; } - protected _createPreferencesRenderer(): Thenable> { + protected _createPreferencesRenderer(): Promise> { return this.preferencesService.createPreferencesEditorModel(this.editor.getModel().uri) .then(editorModel => { if (editorModel instanceof DefaultSettingsEditorModel && this.editor.getModel()) { @@ -1202,7 +1202,7 @@ class SettingsEditorContribution extends AbstractSettingsEditorContribution impl return SettingsEditorContribution.ID; } - protected _createPreferencesRenderer(): Thenable> { + protected _createPreferencesRenderer(): Promise> { if (this.isSettingsModel()) { return this.preferencesService.createPreferencesEditorModel(this.editor.getModel().uri) .then(settingsModel => { diff --git a/src/vs/workbench/parts/preferences/browser/settingsTree.ts b/src/vs/workbench/parts/preferences/browser/settingsTree.ts index 81521566da0..332430e794b 100644 --- a/src/vs/workbench/parts/preferences/browser/settingsTree.ts +++ b/src/vs/workbench/parts/preferences/browser/settingsTree.ts @@ -240,7 +240,7 @@ export class SimplePagedDataSource implements IDataSource { return this.realDataSource.hasChildren(tree, element); } - getChildren(tree: ITree, element: SettingsTreeGroupElement): Thenable { + getChildren(tree: ITree, element: SettingsTreeGroupElement): Promise { return this.realDataSource.getChildren(tree, element).then(realChildren => { return this._getChildren(realChildren); }); @@ -257,7 +257,7 @@ export class SimplePagedDataSource implements IDataSource { } } - getParent(tree: ITree, element: any): Thenable { + getParent(tree: ITree, element: any): Promise { return this.realDataSource.getParent(tree, element); } diff --git a/src/vs/workbench/parts/preferences/common/preferences.ts b/src/vs/workbench/parts/preferences/common/preferences.ts index ac13278f91d..62679978745 100644 --- a/src/vs/workbench/parts/preferences/common/preferences.ts +++ b/src/vs/workbench/parts/preferences/common/preferences.ts @@ -53,9 +53,9 @@ export interface IKeybindingsEditor extends IEditor { focusKeybindings(): void; recordSearchKeys(): void; toggleSortByPrecedence(): void; - defineKeybinding(keybindingEntry: IKeybindingItemEntry): Thenable; - removeKeybinding(keybindingEntry: IKeybindingItemEntry): Thenable; - resetKeybinding(keybindingEntry: IKeybindingItemEntry): Thenable; + defineKeybinding(keybindingEntry: IKeybindingItemEntry): Promise; + removeKeybinding(keybindingEntry: IKeybindingItemEntry): Promise; + resetKeybinding(keybindingEntry: IKeybindingItemEntry): Promise; copyKeybinding(keybindingEntry: IKeybindingItemEntry): void; copyKeybindingCommand(keybindingEntry: IKeybindingItemEntry): void; showSimilarKeybindings(keybindingEntry: IKeybindingItemEntry): void; diff --git a/src/vs/workbench/parts/preferences/common/preferencesContribution.ts b/src/vs/workbench/parts/preferences/common/preferencesContribution.ts index db60615b96d..a12076a5e20 100644 --- a/src/vs/workbench/parts/preferences/common/preferencesContribution.ts +++ b/src/vs/workbench/parts/preferences/common/preferencesContribution.ts @@ -32,7 +32,7 @@ export class PreferencesContribution implements IWorkbenchContribution { private start(): void { this.textModelResolverService.registerTextModelContentProvider('vscode', { - provideTextContent: (uri: URI): Thenable => { + provideTextContent: (uri: URI): Promise => { if (uri.scheme !== 'vscode') { return null; } diff --git a/src/vs/workbench/parts/preferences/electron-browser/settingsEditor2.ts b/src/vs/workbench/parts/preferences/electron-browser/settingsEditor2.ts index 4d0b96c462c..b7386555b75 100644 --- a/src/vs/workbench/parts/preferences/electron-browser/settingsEditor2.ts +++ b/src/vs/workbench/parts/preferences/electron-browser/settingsEditor2.ts @@ -190,7 +190,7 @@ export class SettingsEditor2 extends BaseEditor { this.updateStyles(); } - setInput(input: SettingsEditor2Input, options: SettingsEditorOptions, token: CancellationToken): Thenable { + setInput(input: SettingsEditor2Input, options: SettingsEditorOptions, token: CancellationToken): Promise { this.inSettingsEditorContextKey.set(true); return super.setInput(input, options, token) .then(() => new Promise(process.nextTick)) // Force setInput to be async @@ -444,12 +444,12 @@ export class SettingsEditor2 extends BaseEditor { } } - public switchToSettingsFile(): Thenable { + public switchToSettingsFile(): Promise { const query = parseQuery(this.searchWidget.getValue()); return this.openSettingsFile(query.query); } - private openSettingsFile(query?: string): Thenable { + private openSettingsFile(query?: string): Promise { const currentSettingsTarget = this.settingsTargetsWidget.settingsTarget; const options: ISettingsEditorOptions = { query }; @@ -570,7 +570,7 @@ export class SettingsEditor2 extends BaseEditor { } if (element && (!e.payload || !e.payload.fromScroll)) { - let refreshP: Thenable = Promise.resolve(null); + let refreshP: Promise = Promise.resolve(null); if (this.settingsTreeDataSource.pageTo(element.index, true)) { refreshP = this.renderTree(); } @@ -702,7 +702,7 @@ export class SettingsEditor2 extends BaseEditor { } } - private updateChangedSetting(key: string, value: any): Thenable { + private updateChangedSetting(key: string, value: any): Promise { // ConfigurationService displays the error if this fails. // Force a render afterwards because onDidConfigurationUpdate doesn't fire if the update doesn't result in an effective setting value change const settingsTarget = this.settingsTargetsWidget.settingsTarget; @@ -793,7 +793,7 @@ export class SettingsEditor2 extends BaseEditor { this.telemetryService.publicLog('settingsEditor.settingModified', data); } - private render(token: CancellationToken): Thenable { + private render(token: CancellationToken): Promise { if (this.input) { return this.input.resolve() .then((model: Settings2EditorModel) => { @@ -841,7 +841,7 @@ export class SettingsEditor2 extends BaseEditor { }); } - private onConfigUpdate(keys?: string[], forceRefresh = false): Thenable { + private onConfigUpdate(keys?: string[], forceRefresh = false): Promise { if (keys && this.settingsTreeModel) { return this.updateElementsByKey(keys); } @@ -897,7 +897,7 @@ export class SettingsEditor2 extends BaseEditor { return Promise.resolve(null); } - private updateElementsByKey(keys: string[]): Thenable { + private updateElementsByKey(keys: string[]): Promise { if (keys.length) { if (this.searchResultModel) { keys.forEach(key => this.searchResultModel.updateElementsByName(key)); @@ -921,7 +921,7 @@ export class SettingsEditor2 extends BaseEditor { null; } - private renderTree(key?: string, force = false): Thenable { + private renderTree(key?: string, force = false): Promise { if (!force && key && this.scheduledRefreshes.has(key)) { this.updateModifiedLabelForKey(key); return Promise.resolve(null); @@ -946,7 +946,7 @@ export class SettingsEditor2 extends BaseEditor { } } - let refreshP: Thenable; + let refreshP: Promise; if (key) { const elements = this.currentSettingsModel.getElementsByName(key); if (elements && elements.length) { @@ -991,7 +991,7 @@ export class SettingsEditor2 extends BaseEditor { return match && match[1]; } - private triggerSearch(query: string): Thenable { + private triggerSearch(query: string): Promise { this.viewState.tagFilters = new Set(); if (query) { const parsedQuery = parseQuery(query); @@ -1098,7 +1098,7 @@ export class SettingsEditor2 extends BaseEditor { this.telemetryService.publicLog('settingsEditor.filter', data); } - private triggerFilterPreferences(query: string): Thenable { + private triggerFilterPreferences(query: string): Promise { if (this.searchInProgress) { this.searchInProgress.cancel(); this.searchInProgress = null; @@ -1123,12 +1123,12 @@ export class SettingsEditor2 extends BaseEditor { }); } - private localFilterPreferences(query: string, token?: CancellationToken): Thenable { + private localFilterPreferences(query: string, token?: CancellationToken): Promise { const localSearchProvider = this.preferencesSearchService.getLocalSearchProvider(query); return this.filterOrSearchPreferences(query, SearchResultIdx.Local, localSearchProvider, token); } - private remoteSearchPreferences(query: string, token?: CancellationToken): Thenable { + private remoteSearchPreferences(query: string, token?: CancellationToken): Promise { const remoteSearchProvider = this.preferencesSearchService.getRemoteSearchProvider(query); const newExtSearchProvider = this.preferencesSearchService.getRemoteSearchProvider(query, true); @@ -1140,7 +1140,7 @@ export class SettingsEditor2 extends BaseEditor { }); } - private filterOrSearchPreferences(query: string, type: SearchResultIdx, searchProvider: ISearchProvider, token?: CancellationToken): Thenable { + private filterOrSearchPreferences(query: string, type: SearchResultIdx, searchProvider: ISearchProvider, token?: CancellationToken): Promise { return this._filterOrSearchPreferencesModel(query, this.defaultSettingsEditorModel, searchProvider, token).then(result => { if (token && token.isCancellationRequested) { // Handle cancellation like this because cancellation is lost inside the search provider due to async/await @@ -1187,7 +1187,7 @@ export class SettingsEditor2 extends BaseEditor { } } - private _filterOrSearchPreferencesModel(filter: string, model: ISettingsEditorModel, provider: ISearchProvider, token?: CancellationToken): Thenable { + private _filterOrSearchPreferencesModel(filter: string, model: ISettingsEditorModel, provider: ISearchProvider, token?: CancellationToken): Promise { const searchP = provider ? provider.searchModel(model, token) : Promise.resolve(null); return searchP .then(null, err => { diff --git a/src/vs/workbench/parts/quickopen/browser/commandsHandler.ts b/src/vs/workbench/parts/quickopen/browser/commandsHandler.ts index cc61c82c537..934df855438 100644 --- a/src/vs/workbench/parts/quickopen/browser/commandsHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/commandsHandler.ts @@ -144,7 +144,7 @@ export class ShowAllCommandsAction extends Action { super(id, label); } - run(context?: any): Thenable { + run(context?: any): Promise { const config = this.configurationService.getValue(); const restoreInput = config.workbench && config.workbench.commandPalette && config.workbench.commandPalette.preserveInput === true; @@ -173,7 +173,7 @@ export class ClearCommandHistoryAction extends Action { super(id, label); } - run(context?: any): Thenable { + run(context?: any): Promise { const commandHistoryLength = resolveCommandHistory(this.configurationService); if (commandHistoryLength > 0) { commandHistory = new LRUCache(commandHistoryLength); @@ -199,7 +199,7 @@ class CommandPaletteEditorAction extends EditorAction { }); } - run(accessor: ServicesAccessor, editor: ICodeEditor): Thenable { + run(accessor: ServicesAccessor, editor: ICodeEditor): Promise { const quickOpenService = accessor.get(IQuickOpenService); // Show with prefix @@ -397,7 +397,7 @@ export class CommandsHandler extends QuickOpenHandler { this.commandHistoryEnabled = resolveCommandHistory(this.configurationService) > 0; } - getResults(searchValue: string, token: CancellationToken): Thenable { + getResults(searchValue: string, token: CancellationToken): Promise { // wait for extensions being registered to cover all commands // also from extensions diff --git a/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts b/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts index 2fc292ebe31..8a863e05d1c 100644 --- a/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts @@ -216,7 +216,7 @@ export class GotoLineHandler extends QuickOpenHandler { return nls.localize('gotoLineHandlerAriaLabel', "Type a line number to navigate to."); } - getResults(searchValue: string, token: CancellationToken): Thenable { + getResults(searchValue: string, token: CancellationToken): Promise { searchValue = searchValue.trim(); // Remember view state to be able to restore on cancel diff --git a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts index 3304a74737c..1f6017b0945 100644 --- a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts @@ -390,7 +390,7 @@ export class GotoSymbolHandler extends QuickOpenHandler { this.rangeHighlightDecorationId = void 0; } - getResults(searchValue: string, token: CancellationToken): Thenable { + getResults(searchValue: string, token: CancellationToken): Promise { searchValue = searchValue.trim(); // Support to cancel pending outline requests diff --git a/src/vs/workbench/parts/quickopen/browser/helpHandler.ts b/src/vs/workbench/parts/quickopen/browser/helpHandler.ts index 8a2b41b0008..19971c6284f 100644 --- a/src/vs/workbench/parts/quickopen/browser/helpHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/helpHandler.ts @@ -65,7 +65,7 @@ export class HelpHandler extends QuickOpenHandler { super(); } - getResults(searchValue: string, token: CancellationToken): Thenable { + getResults(searchValue: string, token: CancellationToken): Promise { searchValue = searchValue.trim(); const registry = (Registry.as(Extensions.Quickopen)); diff --git a/src/vs/workbench/parts/quickopen/browser/viewPickerHandler.ts b/src/vs/workbench/parts/quickopen/browser/viewPickerHandler.ts index 7891e785176..a6b47c94130 100644 --- a/src/vs/workbench/parts/quickopen/browser/viewPickerHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/viewPickerHandler.ts @@ -78,7 +78,7 @@ export class ViewPickerHandler extends QuickOpenHandler { super(); } - getResults(searchValue: string, token: CancellationToken): Thenable { + getResults(searchValue: string, token: CancellationToken): Promise { searchValue = searchValue.trim(); const normalizedSearchValueLowercase = stripWildcards(searchValue).toLowerCase(); @@ -224,7 +224,7 @@ export class QuickOpenViewPickerAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { const keys = this.keybindingService.lookupKeybindings(this.id); this.quickOpenService.show(VIEW_PICKER_PREFIX, { quickNavigateConfiguration: { keybindings: keys } }); diff --git a/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts b/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts index fb49fce43a2..3997f637ead 100644 --- a/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts +++ b/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts @@ -67,7 +67,7 @@ class DiffMenuItemActionItem extends MenuItemActionItem { class DiffActionRunner extends ActionRunner { - runAction(action: IAction, context: any): Thenable { + runAction(action: IAction, context: any): Promise { if (action instanceof MenuItemAction) { return action.run(...context); } @@ -135,7 +135,7 @@ class UIEditorAction extends Action { this.editor = editor; } - run(): Thenable { + run(): Promise { return Promise.resolve(this.instantiationService.invokeFunction(accessor => this.action.run(accessor, this.editor, null))); } } @@ -937,7 +937,7 @@ export class DirtyDiffModel { get modified(): ITextModel { return this._editorModel; } private diffDelayer: ThrottledDelayer; - private _originalURIPromise: Thenable; + private _originalURIPromise: Promise; private repositoryDisposables = new Set(); private originalModelDisposables: IDisposable[] = []; private disposables: IDisposable[] = []; @@ -980,7 +980,7 @@ export class DirtyDiffModel { this.triggerDiff(); } - private triggerDiff(): Thenable { + private triggerDiff(): Promise { if (!this.diffDelayer) { return Promise.resolve(null); } @@ -1005,7 +1005,7 @@ export class DirtyDiffModel { }); } - private diff(): Thenable { + private diff(): Promise { return this.getOriginalURIPromise().then(originalURI => { if (!this._editorModel || this._editorModel.isDisposed() || !originalURI) { return Promise.resolve([]); // disposed @@ -1019,7 +1019,7 @@ export class DirtyDiffModel { }); } - private getOriginalURIPromise(): Thenable { + private getOriginalURIPromise(): Promise { if (this._originalURIPromise) { return this._originalURIPromise; } @@ -1061,7 +1061,7 @@ export class DirtyDiffModel { }); } - private getOriginalResource(): Thenable { + private getOriginalResource(): Promise { if (!this._editorModel) { return Promise.resolve(null); } diff --git a/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts b/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts index 2f5f3823567..aec1f2d6430 100644 --- a/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts +++ b/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts @@ -88,7 +88,7 @@ class StatusBarAction extends Action { this.tooltip = command.tooltip; } - run(): Thenable { + run(): Promise { return this.commandService.executeCommand(this.command.id, ...this.command.arguments); } } @@ -457,7 +457,7 @@ class MultipleSelectionActionRunner extends ActionRunner { super(); } - runAction(action: IAction, context: ISCMResource): Thenable { + runAction(action: IAction, context: ISCMResource): Promise { if (action instanceof MenuItemAction) { const selection = this.getSelectedResources(); const filteredSelection = selection.filter(s => s !== context); diff --git a/src/vs/workbench/parts/search/browser/openAnythingHandler.ts b/src/vs/workbench/parts/search/browser/openAnythingHandler.ts index 75e9483bbbb..8fd9995bcfd 100644 --- a/src/vs/workbench/parts/search/browser/openAnythingHandler.ts +++ b/src/vs/workbench/parts/search/browser/openAnythingHandler.ts @@ -83,7 +83,7 @@ export class OpenAnythingHandler extends QuickOpenHandler { }); } - getResults(searchValue: string, token: CancellationToken): Thenable { + getResults(searchValue: string, token: CancellationToken): Promise { this.isClosed = false; // Treat this call as the handler being in use // Find a suitable range from the pattern looking for ":" and "#" @@ -100,7 +100,7 @@ export class OpenAnythingHandler extends QuickOpenHandler { // The throttler needs a factory for its promises const resultsPromise = () => { - const resultPromises: Thenable[] = []; + const resultPromises: Promise[] = []; // File Results const filePromise = this.openFileHandler.getResults(query.original, token, OpenAnythingHandler.MAX_DISPLAYED_RESULTS); diff --git a/src/vs/workbench/parts/search/browser/openFileHandler.ts b/src/vs/workbench/parts/search/browser/openFileHandler.ts index bbc1d1055c5..6af8b5b2a05 100644 --- a/src/vs/workbench/parts/search/browser/openFileHandler.ts +++ b/src/vs/workbench/parts/search/browser/openFileHandler.ts @@ -137,7 +137,7 @@ export class OpenFileHandler extends QuickOpenHandler { this.options = options; } - getResults(searchValue: string, token: CancellationToken, maxSortedResults?: number): Thenable { + getResults(searchValue: string, token: CancellationToken, maxSortedResults?: number): Promise { const query = prepareQuery(searchValue); // Respond directly to empty search @@ -152,7 +152,7 @@ export class OpenFileHandler extends QuickOpenHandler { return this.doFindResults(query, token, this.cacheState.cacheKey, maxSortedResults); } - private doFindResults(query: IPreparedQuery, token: CancellationToken, cacheKey?: string, maxSortedResults?: number): Thenable { + private doFindResults(query: IPreparedQuery, token: CancellationToken, cacheKey?: string, maxSortedResults?: number): Promise { const queryOptions = this.doResolveQueryOptions(query, cacheKey, maxSortedResults); let iconClass: string; @@ -189,7 +189,7 @@ export class OpenFileHandler extends QuickOpenHandler { }); } - private getAbsolutePathResult(query: IPreparedQuery): Thenable { + private getAbsolutePathResult(query: IPreparedQuery): Promise { if (paths.isAbsolute(query.original)) { const resource = URI.file(query.original); @@ -272,9 +272,9 @@ export class CacheState { private query: IFileQuery; private loadingPhase = LoadingPhase.Created; - private promise: Thenable; + private promise: Promise; - constructor(cacheQuery: (cacheKey: string) => IFileQuery, private doLoad: (query: IFileQuery) => Thenable, private doDispose: (cacheKey: string) => Thenable, private previous: CacheState) { + constructor(cacheQuery: (cacheKey: string) => IFileQuery, private doLoad: (query: IFileQuery) => Promise, private doDispose: (cacheKey: string) => Promise, private previous: CacheState) { this.query = cacheQuery(this._cacheKey); if (this.previous) { const current = objects.assign({}, this.query, { cacheKey: null }); diff --git a/src/vs/workbench/parts/search/browser/openSymbolHandler.ts b/src/vs/workbench/parts/search/browser/openSymbolHandler.ts index 7bf3fe452f9..0dc2fba92fe 100644 --- a/src/vs/workbench/parts/search/browser/openSymbolHandler.ts +++ b/src/vs/workbench/parts/search/browser/openSymbolHandler.ts @@ -27,7 +27,7 @@ import { Schemas } from 'vs/base/common/network'; import { IOpenerService } from 'vs/platform/opener/common/opener'; class SymbolEntry extends EditorQuickOpenEntry { - private bearingResolve: Thenable; + private bearingResolve: Promise; constructor( private bearing: IWorkspaceSymbol, @@ -156,10 +156,10 @@ export class OpenSymbolHandler extends QuickOpenHandler { return true; } - getResults(searchValue: string, token: CancellationToken): Thenable { + getResults(searchValue: string, token: CancellationToken): Promise { searchValue = searchValue.trim(); - let promise: Thenable; + let promise: Promise; if (!this.options.skipDelay) { promise = this.delayer.trigger(() => { if (token.isCancellationRequested) { @@ -175,7 +175,7 @@ export class OpenSymbolHandler extends QuickOpenHandler { return promise.then(e => new QuickOpenModel(e)); } - private doGetResults(searchValue: string, token: CancellationToken): Thenable { + private doGetResults(searchValue: string, token: CancellationToken): Promise { return getWorkspaceSymbols(searchValue, token).then(tuples => { if (token.isCancellationRequested) { return []; diff --git a/src/vs/workbench/parts/search/browser/replaceService.ts b/src/vs/workbench/parts/search/browser/replaceService.ts index 3831a4835a3..c0d60564ef2 100644 --- a/src/vs/workbench/parts/search/browser/replaceService.ts +++ b/src/vs/workbench/parts/search/browser/replaceService.ts @@ -46,7 +46,7 @@ export class ReplacePreviewContentProvider implements ITextModelContentProvider, this.textModelResolverService.registerTextModelContentProvider(network.Schemas.internal, this); } - public provideTextContent(uri: URI): Thenable { + public provideTextContent(uri: URI): Promise { if (uri.fragment === REPLACE_PREVIEW) { return this.instantiationService.createInstance(ReplacePreviewModel).resolve(uri); } @@ -65,7 +65,7 @@ class ReplacePreviewModel extends Disposable { super(); } - resolve(replacePreviewUri: URI): Thenable { + resolve(replacePreviewUri: URI): Promise { const fileResource = toFileResource(replacePreviewUri); const fileMatch = this.searchWorkbenchService.searchModel.searchResult.matches().filter(match => match.resource().toString() === fileResource.toString())[0]; return this.textModelResolverService.createModelReference(fileResource).then(ref => { @@ -110,7 +110,7 @@ export class ReplaceService implements IReplaceService { } - public openReplacePreview(element: FileMatchOrMatch, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Thenable { + public openReplacePreview(element: FileMatchOrMatch, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Promise { const fileMatch = element instanceof Match ? element.parent() : element; return this.editorService.openEditor({ diff --git a/src/vs/workbench/parts/search/browser/searchActions.ts b/src/vs/workbench/parts/search/browser/searchActions.ts index de0911d7db6..388147f4ddc 100644 --- a/src/vs/workbench/parts/search/browser/searchActions.ts +++ b/src/vs/workbench/parts/search/browser/searchActions.ts @@ -44,7 +44,7 @@ export function appendKeyBindingLabel(label: string, keyBinding: number | Resolv } } -export function openSearchView(viewletService: IViewletService, panelService: IPanelService, focus?: boolean): Thenable { +export function openSearchView(viewletService: IViewletService, panelService: IPanelService, focus?: boolean): Promise { if (viewletService.getViewlets().filter(v => v.id === VIEW_ID).length) { return viewletService.openViewlet(VIEW_ID, focus).then(viewlet => viewlet); } @@ -96,7 +96,7 @@ export class FocusNextInputAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const searchView = getSearchView(this.viewletService, this.panelService); searchView.focusNextInputBox(); return Promise.resolve(null); @@ -114,7 +114,7 @@ export class FocusPreviousInputAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const searchView = getSearchView(this.viewletService, this.panelService); searchView.focusPreviousInputBox(); return Promise.resolve(null); @@ -129,7 +129,7 @@ export abstract class FindOrReplaceInFilesAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { return openSearchView(this.viewletService, this.panelService, false).then(openedView => { const searchAndReplaceWidget = openedView.searchAndReplaceWidget; searchAndReplaceWidget.toggleReplace(this.expandSearchReplaceWidget); @@ -164,7 +164,7 @@ export class OpenSearchViewletAction extends FindOrReplaceInFilesAction { super(id, label, viewletService, panelService, /*expandSearchReplaceWidget=*/false); } - public run(): Thenable { + public run(): Promise { // Pass focus to viewlet if not open or focused if (this.otherViewletShowing() || !isSearchViewFocused(this.viewletService, this.panelService)) { @@ -204,7 +204,7 @@ export class CloseReplaceAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const searchView = getSearchView(this.viewletService, this.panelService); searchView.searchAndReplaceWidget.toggleReplace(false); searchView.searchAndReplaceWidget.focus(); @@ -230,7 +230,7 @@ export class RefreshAction extends Action { this.enabled = searchView && searchView.isSearchSubmitted(); } - public run(): Thenable { + public run(): Promise { const searchView = getSearchView(this.viewletService, this.panelService); if (searchView) { searchView.onQueryChanged(); @@ -257,7 +257,7 @@ export class CollapseDeepestExpandedLevelAction extends Action { this.enabled = searchView && searchView.hasSearchResults(); } - public run(): Thenable { + public run(): Promise { const searchView = getSearchView(this.viewletService, this.panelService); if (searchView) { const viewer = searchView.getControl(); @@ -320,7 +320,7 @@ export class ClearSearchResultsAction extends Action { this.enabled = searchView && (!searchView.allSearchFieldsClear() || searchView.hasSearchResults()); } - public run(): Thenable { + public run(): Promise { const searchView = getSearchView(this.viewletService, this.panelService); if (searchView) { searchView.clearSearchResults(); @@ -347,7 +347,7 @@ export class CancelSearchAction extends Action { this.enabled = searchView && searchView.isSearching(); } - public run(): Thenable { + public run(): Promise { const searchView = getSearchView(this.viewletService, this.panelService); if (searchView) { searchView.cancelSearch(); @@ -368,7 +368,7 @@ export class FocusNextSearchResultAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { return openSearchView(this.viewletService, this.panelService).then(searchView => { searchView.selectNextMatch(); }); @@ -386,7 +386,7 @@ export class FocusPreviousSearchResultAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { return openSearchView(this.viewletService, this.panelService).then(searchView => { searchView.selectPreviousMatch(); }); @@ -467,7 +467,7 @@ export class RemoveAction extends AbstractSearchAndReplaceAction { super('remove', RemoveAction.LABEL, 'action-remove'); } - public run(): Thenable { + public run(): Promise { const currentFocusElement = this.viewer.getFocus(); const nextFocusElementP = !currentFocusElement || currentFocusElement instanceof SearchResult || elementIsEqualOrParent(currentFocusElement, this.element) ? this.getElementToFocusAfterRemoved(this.viewer, this.element) : @@ -520,7 +520,7 @@ export class ReplaceAllAction extends AbstractSearchAndReplaceAction { super(Constants.ReplaceAllInFileActionId, appendKeyBindingLabel(ReplaceAllAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceAllInFileActionId), keyBindingService), 'action-replace-all'); } - public run(): Thenable { + public run(): Promise { return this.getElementToFocusAfterRemoved(this.viewer, this.fileMatch).then(nextFocusElement => { return this.fileMatch.parent().replace(this.fileMatch).then(() => { if (nextFocusElement) { @@ -543,7 +543,7 @@ export class ReplaceAllInFolderAction extends AbstractSearchAndReplaceAction { super(Constants.ReplaceAllInFolderActionId, appendKeyBindingLabel(ReplaceAllInFolderAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceAllInFolderActionId), keyBindingService), 'action-replace-all'); } - public run(): Thenable { + public run(): Promise { return this.getElementToFocusAfterRemoved(this.viewer, this.folderMatch).then(nextFocusElement => { return this.folderMatch.replaceAll().then(() => { if (nextFocusElement) { @@ -567,7 +567,7 @@ export class ReplaceAction extends AbstractSearchAndReplaceAction { super(Constants.ReplaceActionId, appendKeyBindingLabel(ReplaceAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceActionId), keyBindingService), 'action-replace'); } - public run(): Thenable { + public run(): Promise { this.enabled = false; return this.element.parent().replace(this.element).then(() => { diff --git a/src/vs/workbench/parts/search/browser/searchResultsView.ts b/src/vs/workbench/parts/search/browser/searchResultsView.ts index 9137e3386e5..e08545a517b 100644 --- a/src/vs/workbench/parts/search/browser/searchResultsView.ts +++ b/src/vs/workbench/parts/search/browser/searchResultsView.ts @@ -79,7 +79,7 @@ export class SearchDataSource implements IDataSource { return []; } - public getChildren(tree: ITree, element: any): Thenable { + public getChildren(tree: ITree, element: any): Promise { return Promise.resolve(this._getChildren(element)); } @@ -87,7 +87,7 @@ export class SearchDataSource implements IDataSource { return element instanceof FileMatch || element instanceof FolderMatch || element instanceof SearchResult; } - public getParent(tree: ITree, element: any): Thenable { + public getParent(tree: ITree, element: any): Promise { let value: any = null; if (element instanceof Match) { diff --git a/src/vs/workbench/parts/search/browser/searchView.ts b/src/vs/workbench/parts/search/browser/searchView.ts index 8a8ad795453..675be9822e4 100644 --- a/src/vs/workbench/parts/search/browser/searchView.ts +++ b/src/vs/workbench/parts/search/browser/searchView.ts @@ -377,7 +377,7 @@ export class SearchView extends Viewlet implements IViewlet, IPanel { })); } - private onSearchResultsChanged(event?: IChangeEvent): Thenable { + private onSearchResultsChanged(event?: IChangeEvent): Promise { if (this.isVisible()) { return this.refreshAndUpdateCount(event); } else { @@ -386,13 +386,13 @@ export class SearchView extends Viewlet implements IViewlet, IPanel { } } - private refreshAndUpdateCount(event?: IChangeEvent): Thenable { + private refreshAndUpdateCount(event?: IChangeEvent): Promise { this.searchWidget.setReplaceAllActionState(!this.viewModel.searchResult.isEmpty()); this.updateSearchResultCount(this.viewModel.searchResult.query.userDisabledExcludesAndIgnoreFiles); return this.refreshTree(event); } - private refreshTree(event?: IChangeEvent): Thenable { + private refreshTree(event?: IChangeEvent): Promise { if (!event || event.added || event.removed) { return this.tree.refresh(this.viewModel.searchResult); } else { @@ -1119,7 +1119,7 @@ export class SearchView extends Viewlet implements IViewlet, IPanel { }, onQueryValidationError); } - private validateQuery(query: ITextQuery): Thenable { + private validateQuery(query: ITextQuery): Promise { // Validate folderQueries const folderQueriesExistP = query.folderQueries.map(fq => { @@ -1394,7 +1394,7 @@ export class SearchView extends Viewlet implements IViewlet, IPanel { this.openSettings('.exclude'); } - private openSettings(query: string): Thenable { + private openSettings(query: string): Promise { const options: ISettingsEditorOptions = { query }; return this.contextService.getWorkbenchState() !== WorkbenchState.EMPTY ? this.preferencesService.openWorkspaceSettings(undefined, options) : @@ -1475,7 +1475,7 @@ export class SearchView extends Viewlet implements IViewlet, IPanel { this.currentSelectedFileMatch = null; } - private onFocus(lineMatch: any, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Thenable { + private onFocus(lineMatch: any, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Promise { if (!(lineMatch instanceof Match)) { this.viewModel.searchResult.rangeHighlightDecorations.removeHighlightRange(); return Promise.resolve(true); @@ -1487,7 +1487,7 @@ export class SearchView extends Viewlet implements IViewlet, IPanel { this.open(lineMatch, preserveFocus, sideBySide, pinned); } - public open(element: FileMatchOrMatch, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Thenable { + public open(element: FileMatchOrMatch, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Promise { const selection = this.getSelectionFrom(element); const resource = element instanceof Match ? element.parent().resource() : (element).resource(); return this.editorService.openEditor({ diff --git a/src/vs/workbench/parts/search/common/replace.ts b/src/vs/workbench/parts/search/common/replace.ts index 8f2d2e9026d..2f42429068b 100644 --- a/src/vs/workbench/parts/search/common/replace.ts +++ b/src/vs/workbench/parts/search/common/replace.ts @@ -16,22 +16,22 @@ export interface IReplaceService { /** * Replaces the given match in the file that match belongs to */ - replace(match: Match): Thenable; + replace(match: Match): Promise; /** * Replace all the matches from the given file matches in the files * You can also pass the progress runner to update the progress of replacing. */ - replace(files: FileMatch[], progress?: IProgressRunner): Thenable; + replace(files: FileMatch[], progress?: IProgressRunner): Promise; /** * Opens the replace preview for given file match or match */ - openReplacePreview(element: FileMatchOrMatch, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Thenable; + openReplacePreview(element: FileMatchOrMatch, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean): Promise; /** * Update the replace preview for the given file. * If `override` is `true`, then replace preview is constructed from source model */ - updateReplacePreview(file: FileMatch, override?: boolean): Thenable; + updateReplacePreview(file: FileMatch, override?: boolean): Promise; } diff --git a/src/vs/workbench/parts/search/common/searchModel.ts b/src/vs/workbench/parts/search/common/searchModel.ts index 196b9e50263..7b3e080e05b 100644 --- a/src/vs/workbench/parts/search/common/searchModel.ts +++ b/src/vs/workbench/parts/search/common/searchModel.ts @@ -305,7 +305,7 @@ export class FileMatch extends Disposable { this._onChange.fire(false); } - public replace(toReplace: Match): Thenable { + public replace(toReplace: Match): Promise { return this.replaceService.replace(toReplace) .then(() => this.updatesMatchesForLineAfterReplace(toReplace.range().startLineNumber, false)); } @@ -476,13 +476,13 @@ export class FolderMatch extends Disposable { this.doRemove(match); } - public replace(match: FileMatch): Thenable { + public replace(match: FileMatch): Promise { return this.replaceService.replace([match]).then(() => { this.doRemove(match, false, true); }); } - public replaceAll(): Thenable { + public replaceAll(): Promise { const matches = this.matches(); return this.replaceService.replace(matches).then(() => { matches.forEach(match => this.doRemove(match, false, true)); @@ -682,11 +682,11 @@ export class SearchResult extends Disposable { } } - public replace(match: FileMatch): Thenable { + public replace(match: FileMatch): Promise { return this.getFolderMatch(match.resource()).replace(match); } - public replaceAll(progressRunner: IProgressRunner): Thenable { + public replaceAll(progressRunner: IProgressRunner): Promise { this.replacingAll = true; const promise = this.replaceService.replace(this.matches(), progressRunner); @@ -838,7 +838,7 @@ export class SearchModel extends Disposable { return this._searchResult; } - public search(query: ITextQuery, onProgress?: (result: ISearchProgressItem) => void): Thenable { + public search(query: ITextQuery, onProgress?: (result: ISearchProgressItem) => void): Promise { this.cancelSearch(); this._searchQuery = query; diff --git a/src/vs/workbench/parts/search/test/common/searchModel.test.ts b/src/vs/workbench/parts/search/test/common/searchModel.test.ts index 43d9115a41c..5918e0b1f8f 100644 --- a/src/vs/workbench/parts/search/test/common/searchModel.test.ts +++ b/src/vs/workbench/parts/search/test/common/searchModel.test.ts @@ -81,7 +81,7 @@ suite('SearchModel', () => { function searchServiceWithResults(results: IFileMatch[], complete: ISearchComplete | null = null): ISearchService { return { - textSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (result: ISearchProgressItem) => void): Thenable { + textSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (result: ISearchProgressItem) => void): Promise { return new Promise(resolve => { process.nextTick(() => { results.forEach(onProgress); @@ -94,7 +94,7 @@ suite('SearchModel', () => { function searchServiceWithError(error: Error): ISearchService { return { - textSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (result: ISearchProgressItem) => void): Thenable { + textSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (result: ISearchProgressItem) => void): Promise { return new Promise((resolve, reject) => { reject(error); }); @@ -104,7 +104,7 @@ suite('SearchModel', () => { function canceleableSearchService(tokenSource: CancellationTokenSource): ISearchService { return { - textSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (result: ISearchProgressItem) => void): Thenable { + textSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (result: ISearchProgressItem) => void): Promise { if (token) { token.onCancellationRequested(() => tokenSource.cancel()); } diff --git a/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts b/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts index 4234b13765c..0ad757d0df9 100644 --- a/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts +++ b/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts @@ -131,7 +131,7 @@ class SnippetsService implements ISnippetsService { readonly _serviceBrand: any; private readonly _disposables: IDisposable[] = []; - private readonly _pendingWork: Thenable[] = []; + private readonly _pendingWork: Promise[] = []; private readonly _files = new Map(); constructor( @@ -263,7 +263,7 @@ class SnippetsService implements ISnippetsService { updateWorkspaceSnippets(); } - private _initWorkspaceFolderSnippets(workspace: IWorkspace, bucket: IDisposable[]): Thenable { + private _initWorkspaceFolderSnippets(workspace: IWorkspace, bucket: IDisposable[]): Promise { let promises = workspace.folders.map(folder => { const snippetFolder = folder.toResource('.vscode'); return this._fileService.existsFile(snippetFolder).then(value => { @@ -282,12 +282,12 @@ class SnippetsService implements ISnippetsService { return Promise.all(promises); } - private _initUserSnippets(): Thenable { + private _initUserSnippets(): Promise { const userSnippetsFolder = URI.file(join(this._environmentService.appSettingsHome, 'snippets')); return this._fileService.createFolder(userSnippetsFolder).then(() => this._initFolderSnippets(SnippetSource.User, userSnippetsFolder, this._disposables)); } - private _initFolderSnippets(source: SnippetSource, folder: URI, bucket: IDisposable[]): Thenable { + private _initFolderSnippets(source: SnippetSource, folder: URI, bucket: IDisposable[]): Promise { let disposables: IDisposable[] = []; let addFolderSnippets = () => { disposables = dispose(disposables); diff --git a/src/vs/workbench/parts/stats/node/workspaceStats.ts b/src/vs/workbench/parts/stats/node/workspaceStats.ts index 430b4bd4d9d..031b7a802e1 100644 --- a/src/vs/workbench/parts/stats/node/workspaceStats.ts +++ b/src/vs/workbench/parts/stats/node/workspaceStats.ts @@ -189,7 +189,7 @@ export function getHashedRemotesFromConfig(text: string, stripEndingDotGit: bool }); } -export function getHashedRemotesFromUri(workspaceUri: URI, fileService: IFileService, stripEndingDotGit: boolean = false): Thenable { +export function getHashedRemotesFromUri(workspaceUri: URI, fileService: IFileService, stripEndingDotGit: boolean = false): Promise { const path = workspaceUri.path; const uri = workspaceUri.with({ path: `${path !== '/' ? path : ''}/.git/config` }); return fileService.resolveFile(uri).then(() => { @@ -310,7 +310,7 @@ export class WorkspaceStats implements IWorkbenchContribution { "workspace.py.azure-cognitiveservices" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true } } */ - private resolveWorkspaceTags(configuration: IWindowConfiguration, participant?: (rootFiles: string[]) => void): Thenable { + private resolveWorkspaceTags(configuration: IWindowConfiguration, participant?: (rootFiles: string[]) => void): Promise { const tags: Tags = Object.create(null); const state = this.contextService.getWorkbenchState(); @@ -414,7 +414,7 @@ export class WorkspaceStats implements IWorkbenchContribution { tags['workspace.android.cpp'] = true; } - function getFilePromises(filename, fileService, contentHandler): Thenable[] { + function getFilePromises(filename, fileService, contentHandler): Promise[] { return !nameSet.has(filename) ? [] : folders.map(workspaceUri => { const uri = workspaceUri.with({ path: `${workspaceUri.path !== '/' ? workspaceUri.path : ''}/${filename}` }); return fileService.resolveFile(uri).then(() => { @@ -624,7 +624,7 @@ export class WorkspaceStats implements IWorkbenchContribution { "node" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true } } */ - private reportAzureNode(workspaceUris: URI[], tags: Tags): Thenable { + private reportAzureNode(workspaceUris: URI[], tags: Tags): Promise { // TODO: should also work for `node_modules` folders several levels down const uris = workspaceUris.map(workspaceUri => { const path = workspaceUri.path; @@ -649,7 +649,7 @@ export class WorkspaceStats implements IWorkbenchContribution { "java" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true } } */ - private reportAzureJava(workspaceUris: URI[], tags: Tags): Thenable { + private reportAzureJava(workspaceUris: URI[], tags: Tags): Promise { return Promise.all(workspaceUris.map(workspaceUri => { const path = workspaceUri.path; const uri = workspaceUri.with({ path: `${path !== '/' ? path : ''}/pom.xml` }); diff --git a/src/vs/workbench/parts/tasks/browser/quickOpen.ts b/src/vs/workbench/parts/tasks/browser/quickOpen.ts index b048d933ecd..9625914bec0 100644 --- a/src/vs/workbench/parts/tasks/browser/quickOpen.ts +++ b/src/vs/workbench/parts/tasks/browser/quickOpen.ts @@ -67,7 +67,7 @@ export class TaskGroupEntry extends Model.QuickOpenEntryGroup { export abstract class QuickOpenHandler extends Quickopen.QuickOpenHandler { - private tasks: Thenable<(CustomTask | ContributedTask)[]>; + private tasks: Promise<(CustomTask | ContributedTask)[]>; constructor( protected quickOpenService: IQuickOpenService, @@ -87,7 +87,7 @@ export abstract class QuickOpenHandler extends Quickopen.QuickOpenHandler { this.tasks = undefined; } - public getResults(input: string, token: CancellationToken): Thenable { + public getResults(input: string, token: CancellationToken): Promise { return this.tasks.then((tasks) => { let entries: Model.QuickOpenEntry[] = []; if (tasks.length === 0 || token.isCancellationRequested) { @@ -148,7 +148,7 @@ export abstract class QuickOpenHandler extends Quickopen.QuickOpenHandler { } } - protected abstract getTasks(): Thenable<(CustomTask | ContributedTask)[]>; + protected abstract getTasks(): Promise<(CustomTask | ContributedTask)[]>; protected abstract createEntry(task: CustomTask | ContributedTask, highlights: Model.IHighlight[]): TaskEntry; @@ -173,7 +173,7 @@ class CustomizeTaskAction extends Action { this.class = 'quick-open-task-configure'; } - public run(element: any): Thenable { + public run(element: any): Promise { let task = this.getTask(element); if (ContributedTask.is(task)) { return this.taskService.customize(task, undefined, true).then(() => { diff --git a/src/vs/workbench/parts/tasks/browser/taskQuickOpen.ts b/src/vs/workbench/parts/tasks/browser/taskQuickOpen.ts index d00939691db..fd92a576452 100644 --- a/src/vs/workbench/parts/tasks/browser/taskQuickOpen.ts +++ b/src/vs/workbench/parts/tasks/browser/taskQuickOpen.ts @@ -32,7 +32,7 @@ export class QuickOpenHandler extends base.QuickOpenHandler { public static readonly ID = 'workbench.picker.tasks'; - private activationPromise: Thenable; + private activationPromise: Promise; constructor( @IQuickOpenService quickOpenService: IQuickOpenService, @@ -47,7 +47,7 @@ export class QuickOpenHandler extends base.QuickOpenHandler { return nls.localize('tasksAriaLabel', "Type the name of a task to run"); } - protected getTasks(): Thenable<(CustomTask | ContributedTask)[]> { + protected getTasks(): Promise<(CustomTask | ContributedTask)[]> { return this.activationPromise.then(() => { return this.taskService.tasks().then(tasks => tasks.filter((task): task is CustomTask | ContributedTask => ContributedTask.is(task) || CustomTask.is(task))); }); diff --git a/src/vs/workbench/parts/tasks/common/taskService.ts b/src/vs/workbench/parts/tasks/common/taskService.ts index fc9f1743174..827cb4c1cfa 100644 --- a/src/vs/workbench/parts/tasks/common/taskService.ts +++ b/src/vs/workbench/parts/tasks/common/taskService.ts @@ -19,7 +19,7 @@ export { ITaskSummary, Task, TaskTerminateResponse }; export const ITaskService = createDecorator('taskService'); export interface ITaskProvider { - provideTasks(validTypes: IStringDictionary): Thenable; + provideTasks(validTypes: IStringDictionary): Promise; } export interface ProblemMatcherRunOptions { @@ -55,29 +55,29 @@ export interface ITaskService { supportsMultipleTaskExecutions: boolean; configureAction(): Action; - build(): Thenable; - runTest(): Thenable; - run(task: Task, options?: ProblemMatcherRunOptions): Thenable; + build(): Promise; + runTest(): Promise; + run(task: Task, options?: ProblemMatcherRunOptions): Promise; inTerminal(): boolean; - isActive(): Thenable; - getActiveTasks(): Thenable; + isActive(): Promise; + getActiveTasks(): Promise; restart(task: Task): void; - terminate(task: Task): Thenable; - terminateAll(): Thenable; - tasks(filter?: TaskFilter): Thenable; - getWorkspaceTasks(runSource?: TaskRunSource): Thenable>; + terminate(task: Task): Promise; + terminateAll(): Promise; + tasks(filter?: TaskFilter): Promise; + getWorkspaceTasks(runSource?: TaskRunSource): Promise>; /** * @param alias The task's name, label or defined identifier. */ - getTask(workspaceFolder: IWorkspaceFolder | string, alias: string | TaskIdentifier, compareId?: boolean): Thenable; - getTasksForGroup(group: string): Thenable; + getTask(workspaceFolder: IWorkspaceFolder | string, alias: string | TaskIdentifier, compareId?: boolean): Promise; + getTasksForGroup(group: string): Promise; getRecentlyUsedTasks(): LinkedMap; createSorter(): TaskSorter; needsFolderQualification(); canCustomize(task: ContributedTask | CustomTask): boolean; - customize(task: ContributedTask | CustomTask, properties?: {}, openConfig?: boolean): Thenable; - openConfig(task: CustomTask | undefined): Thenable; + customize(task: ContributedTask | CustomTask, properties?: {}, openConfig?: boolean): Promise; + openConfig(task: CustomTask | undefined): Promise; registerTaskProvider(taskProvider: ITaskProvider): IDisposable; diff --git a/src/vs/workbench/parts/tasks/common/taskSystem.ts b/src/vs/workbench/parts/tasks/common/taskSystem.ts index 02e97de4540..722fcffdc93 100644 --- a/src/vs/workbench/parts/tasks/common/taskSystem.ts +++ b/src/vs/workbench/parts/tasks/common/taskSystem.ts @@ -81,7 +81,7 @@ export const enum TaskExecuteKind { export interface ITaskExecuteResult { kind: TaskExecuteKind; - promise: Thenable; + promise: Promise; task: Task; started?: { restartOnFileChanges?: string; @@ -129,11 +129,11 @@ export interface ITaskSystem { onDidStateChange: Event; run(task: Task, resolver: ITaskResolver): ITaskExecuteResult; rerun(): ITaskExecuteResult | undefined; - isActive(): Thenable; + isActive(): Promise; isActiveSync(): boolean; getActiveTasks(): Task[]; canAutoTerminate(): boolean; - terminate(task: Task): Thenable; - terminateAll(): Thenable; + terminate(task: Task): Promise; + terminateAll(): Promise; revealTask(task: Task): boolean; } \ No newline at end of file diff --git a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts index 8e1b885f769..86134698d7d 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts @@ -453,7 +453,7 @@ class TaskService extends Disposable implements ITaskService { private _providers: Map; private _taskSystemInfos: Map; - private _workspaceTasksPromise: Thenable>; + private _workspaceTasksPromise: Promise>; private _taskSystem: ITaskSystem; private _taskSystemListener: IDisposable; @@ -700,7 +700,7 @@ class TaskService extends Disposable implements ITaskService { this._taskSystemInfos.set(key, info); } - public getTask(folder: IWorkspaceFolder | string, identifier: string | TaskIdentifier, compareId: boolean = false): Thenable { + public getTask(folder: IWorkspaceFolder | string, identifier: string | TaskIdentifier, compareId: boolean = false): Promise { let name = Types.isString(folder) ? folder : folder.name; if (this.ignoredWorkspaceFolders.some(ignored => ignored.name === name)) { return Promise.reject(new Error(nls.localize('TaskServer.folderIgnored', 'The folder {0} is ignored since it uses task version 0.1.0', name))); @@ -728,7 +728,7 @@ class TaskService extends Disposable implements ITaskService { }); } - public tasks(filter?: TaskFilter): Thenable { + public tasks(filter?: TaskFilter): Promise { let range = filter && filter.version ? filter.version : undefined; let engine = this.executionEngine; @@ -764,14 +764,14 @@ class TaskService extends Disposable implements ITaskService { return new TaskSorter(this.contextService.getWorkspace() ? this.contextService.getWorkspace().folders : []); } - public isActive(): Thenable { + public isActive(): Promise { if (!this._taskSystem) { return Promise.resolve(false); } return this._taskSystem.isActive(); } - public getActiveTasks(): Thenable { + public getActiveTasks(): Promise { if (!this._taskSystem) { return Promise.resolve([]); } @@ -814,7 +814,7 @@ class TaskService extends Disposable implements ITaskService { this.openerService.open(URI.parse('https://go.microsoft.com/fwlink/?LinkId=733558')); } - public build(): Thenable { + public build(): Promise { return this.getGroupedTasks().then((tasks) => { let runnable = this.createRunnableTask(tasks, TaskGroup.Build); if (!runnable || !runnable.task) { @@ -831,7 +831,7 @@ class TaskService extends Disposable implements ITaskService { }); } - public runTest(): Thenable { + public runTest(): Promise { return this.getGroupedTasks().then((tasks) => { let runnable = this.createRunnableTask(tasks, TaskGroup.Test); if (!runnable || !runnable.task) { @@ -848,7 +848,7 @@ class TaskService extends Disposable implements ITaskService { }); } - public run(task: Task, options?: ProblemMatcherRunOptions): Thenable { + public run(task: Task, options?: ProblemMatcherRunOptions): Promise { return this.getGroupedTasks().then((grouped) => { if (!task) { throw new TaskError(Severity.Info, nls.localize('TaskServer.noTask', 'Requested task {0} to execute not found.', task.name), TaskErrors.TaskNotFound); @@ -891,7 +891,7 @@ class TaskService extends Disposable implements ITaskService { return false; } - private attachProblemMatcher(task: ContributedTask | CustomTask): Thenable { + private attachProblemMatcher(task: ContributedTask | CustomTask): Promise { interface ProblemMatcherPickEntry extends IQuickPickItem { matcher: NamedProblemMatcher; never?: boolean; @@ -954,7 +954,7 @@ class TaskService extends Disposable implements ITaskService { return Promise.resolve(task); } - public getTasksForGroup(group: string): Thenable { + public getTasksForGroup(group: string): Promise { return this.getGroupedTasks().then((groups) => { let result: Task[] = []; groups.forEach((tasks) => { @@ -985,7 +985,7 @@ class TaskService extends Disposable implements ITaskService { return false; } - public customize(task: ContributedTask | CustomTask, properties?: CustomizationProperties, openConfig?: boolean): Thenable { + public customize(task: ContributedTask | CustomTask, properties?: CustomizationProperties, openConfig?: boolean): Promise { let workspaceFolder = Task.getWorkspaceFolder(task); if (!workspaceFolder) { return Promise.resolve(undefined); @@ -1029,7 +1029,7 @@ class TaskService extends Disposable implements ITaskService { } } - let promise: Thenable; + let promise: Promise; if (!fileConfig) { let value = { version: '2.0.0', @@ -1093,7 +1093,7 @@ class TaskService extends Disposable implements ITaskService { }); } - private writeConfiguration(workspaceFolder: IWorkspaceFolder, key: string, value: any): Thenable { + private writeConfiguration(workspaceFolder: IWorkspaceFolder, key: string, value: any): Promise { if (this.contextService.getWorkbenchState() === WorkbenchState.FOLDER) { return this.configurationService.updateValue(key, value, { resource: workspaceFolder.uri }, ConfigurationTarget.WORKSPACE); } else if (this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE) { @@ -1103,7 +1103,7 @@ class TaskService extends Disposable implements ITaskService { } } - public openConfig(task: CustomTask | undefined): Thenable { + public openConfig(task: CustomTask | undefined): Promise { let resource: URI; if (task) { resource = Task.getWorkspaceFolder(task).toResource(task._source.config.file); @@ -1229,7 +1229,7 @@ class TaskService extends Disposable implements ITaskService { }; } - private executeTask(task: Task, resolver: ITaskResolver): Thenable { + private executeTask(task: Task, resolver: ITaskResolver): Promise { return ProblemMatcherRegistry.onReady().then(() => { return this.textFileService.saveAll().then((value) => { // make sure all dirty files are saved let executeResult = this.getTaskSystem().run(task, resolver); @@ -1238,7 +1238,7 @@ class TaskService extends Disposable implements ITaskService { }); } - private handleExecuteResult(executeResult: ITaskExecuteResult): Thenable { + private handleExecuteResult(executeResult: ITaskExecuteResult): Promise { let key = Task.getRecentlyUsedKey(executeResult.task); if (key) { this.getRecentlyUsedTasks().set(key, key, Touch.AsOld); @@ -1286,14 +1286,14 @@ class TaskService extends Disposable implements ITaskService { }); } - public terminate(task: Task): Thenable { + public terminate(task: Task): Promise { if (!this._taskSystem) { return Promise.resolve({ success: true, task: undefined }); } return this._taskSystem.terminate(task); } - public terminateAll(): Thenable { + public terminateAll(): Promise { if (!this._taskSystem) { return Promise.resolve([]); } @@ -1333,7 +1333,7 @@ class TaskService extends Disposable implements ITaskService { return this._taskSystem; } - private getGroupedTasks(): Thenable { + private getGroupedTasks(): Promise { return Promise.all([this.extensionService.activateByEvent('onCommand:workbench.action.tasks.runTask'), TaskDefinitionRegistry.onReady()]).then(() => { let validTypes: IStringDictionary = Object.create(null); TaskDefinitionRegistry.all().forEach(definition => validTypes[definition.taskType] = true); @@ -1500,7 +1500,7 @@ class TaskService extends Disposable implements ITaskService { return result; } - public getWorkspaceTasks(runSource: TaskRunSource = TaskRunSource.User): Thenable> { + public getWorkspaceTasks(runSource: TaskRunSource = TaskRunSource.User): Promise> { if (this._workspaceTasksPromise) { return this._workspaceTasksPromise; } @@ -1521,11 +1521,11 @@ class TaskService extends Disposable implements ITaskService { }); } - private computeWorkspaceTasks(runSource: TaskRunSource = TaskRunSource.User): Thenable> { + private computeWorkspaceTasks(runSource: TaskRunSource = TaskRunSource.User): Promise> { if (this.workspaceFolders.length === 0) { return Promise.resolve(new Map()); } else { - let promises: Thenable[] = []; + let promises: Promise[] = []; for (let folder of this.workspaceFolders) { promises.push(this.computeWorkspaceFolderTasks(folder, runSource).then((value) => value, () => undefined)); } @@ -1724,7 +1724,7 @@ class TaskService extends Disposable implements ITaskService { }; } - public beforeShutdown(): boolean | Thenable { + public beforeShutdown(): boolean | Promise { if (!this._taskSystem) { return false; } @@ -1737,7 +1737,7 @@ class TaskService extends Disposable implements ITaskService { return false; } - let terminatePromise: Thenable; + let terminatePromise: Promise; if (this._taskSystem.canAutoTerminate()) { terminatePromise = Promise.resolve({ confirmed: true }); } else { @@ -1901,8 +1901,8 @@ class TaskService extends Disposable implements ITaskService { return entries; } - private showQuickPick(tasks: Thenable | Task[], placeHolder: string, defaultEntry?: TaskQuickPickEntry, group: boolean = false, sort: boolean = false, selectedEntry?: TaskQuickPickEntry): Thenable { - let _createEntries = (): Thenable => { + private showQuickPick(tasks: Promise | Task[], placeHolder: string, defaultEntry?: TaskQuickPickEntry, group: boolean = false, sort: boolean = false, selectedEntry?: TaskQuickPickEntry): Promise { + let _createEntries = (): Promise => { if (Array.isArray(tasks)) { return Promise.resolve(this.createTaskQuickPickEntries(tasks, group, sort, selectedEntry)); } else { @@ -1929,7 +1929,7 @@ class TaskService extends Disposable implements ITaskService { }).then(entry => entry ? entry.task : undefined); } - private showIgnoredFoldersMessage(): Thenable { + private showIgnoredFoldersMessage(): Promise { if (this.ignoredWorkspaceFolders.length === 0 || !this.showIgnoreMessage) { return Promise.resolve(undefined); } @@ -2135,7 +2135,7 @@ class TaskService extends Disposable implements ITaskService { if (!this.canRunCommand()) { return; } - let runQuickPick = (promise?: Thenable) => { + let runQuickPick = (promise?: Promise) => { this.showQuickPick(promise || this.getActiveTasks(), nls.localize('TaskService.tastToTerminate', 'Select task to terminate'), { @@ -2152,7 +2152,7 @@ class TaskService extends Disposable implements ITaskService { }; if (this.inTerminal()) { let identifier = this.getTaskIdentifier(arg); - let promise: Thenable; + let promise: Promise; if (identifier !== void 0) { promise = this.getActiveTasks(); promise.then((tasks) => { @@ -2191,7 +2191,7 @@ class TaskService extends Disposable implements ITaskService { if (!this.canRunCommand()) { return; } - let runQuickPick = (promise?: Thenable) => { + let runQuickPick = (promise?: Promise) => { this.showQuickPick(promise || this.getActiveTasks(), nls.localize('TaskService.tastToRestart', 'Select the task to restart'), { @@ -2208,7 +2208,7 @@ class TaskService extends Disposable implements ITaskService { }; if (this.inTerminal()) { let identifier = this.getTaskIdentifier(arg); - let promise: Thenable; + let promise: Promise; if (identifier !== void 0) { promise = this.getActiveTasks(); promise.then((tasks) => { @@ -2248,7 +2248,7 @@ class TaskService extends Disposable implements ITaskService { if (!this.canRunCommand()) { return undefined; } - let taskPromise: Thenable; + let taskPromise: Promise; if (this.schemaVersion === JsonSchemaVersion.V2_0_0) { taskPromise = this.getGroupedTasks(); } else { @@ -2314,7 +2314,7 @@ class TaskService extends Disposable implements ITaskService { return candidate && !!candidate.task; } - let stats = this.contextService.getWorkspace().folders.map>((folder) => { + let stats = this.contextService.getWorkspace().folders.map>((folder) => { return this.fileService.resolveFile(folder.toResource('.vscode/tasks.json')).then(stat => stat, () => undefined); }); diff --git a/src/vs/workbench/parts/tasks/node/processRunnerDetector.ts b/src/vs/workbench/parts/tasks/node/processRunnerDetector.ts index ca2ecfda0f6..b3703e99369 100644 --- a/src/vs/workbench/parts/tasks/node/processRunnerDetector.ts +++ b/src/vs/workbench/parts/tasks/node/processRunnerDetector.ts @@ -264,7 +264,7 @@ export class ProcessRunnerDetector { }); } - private runDetection(process: LineProcess, command: string, isShellCommand: boolean, matcher: TaskDetectorMatcher, problemMatchers: string[], list: boolean): Thenable { + private runDetection(process: LineProcess, command: string, isShellCommand: boolean, matcher: TaskDetectorMatcher, problemMatchers: string[], list: boolean): Promise { let tasks: string[] = []; matcher.init(); diff --git a/src/vs/workbench/parts/terminal/browser/terminalQuickOpen.ts b/src/vs/workbench/parts/terminal/browser/terminalQuickOpen.ts index dab5351d183..e0b33f622fb 100644 --- a/src/vs/workbench/parts/terminal/browser/terminalQuickOpen.ts +++ b/src/vs/workbench/parts/terminal/browser/terminalQuickOpen.ts @@ -83,7 +83,7 @@ export class TerminalPickerHandler extends QuickOpenHandler { super(); } - public getResults(searchValue: string, token: CancellationToken): Thenable { + public getResults(searchValue: string, token: CancellationToken): Promise { searchValue = searchValue.trim(); const normalizedSearchValueLowercase = stripWildcards(searchValue).toLowerCase(); diff --git a/src/vs/workbench/parts/terminal/common/terminalService.ts b/src/vs/workbench/parts/terminal/common/terminalService.ts index 729c7d30b56..ec829b5562b 100644 --- a/src/vs/workbench/parts/terminal/common/terminalService.ts +++ b/src/vs/workbench/parts/terminal/common/terminalService.ts @@ -82,7 +82,7 @@ export abstract class TerminalService implements ITerminalService { this.onInstancesChanged(() => updateTerminalContextKeys()); } - protected abstract _showTerminalCloseConfirmation(): PromiseLike; + protected abstract _showTerminalCloseConfirmation(): Promise; protected abstract _showNotEnoughSpaceToast(): void; public abstract createTerminal(shell?: IShellLaunchConfig, wasNewTerminalAction?: boolean): ITerminalInstance; public abstract createTerminalRenderer(name: string): ITerminalInstance; @@ -92,7 +92,7 @@ export abstract class TerminalService implements ITerminalService { public abstract setContainers(panelContainer: HTMLElement, terminalContainer: HTMLElement): void; public abstract requestExtHostProcess(proxy: ITerminalProcessExtHostProxy, shellLaunchConfig: IShellLaunchConfig, activeWorkspaceRootUri: URI, cols: number, rows: number): void; - private _onBeforeShutdown(): boolean | PromiseLike { + private _onBeforeShutdown(): boolean | Promise { if (this.terminalInstances.length === 0) { // No terminal instances, don't veto return false; diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalActions.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalActions.ts index a999ca590b0..58d05bb0c5f 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalActions.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalActions.ts @@ -79,7 +79,7 @@ export class ToggleTerminalAction extends TogglePanelAction { super(id, label, TERMINAL_PANEL_ID, panelService, partService); } - public run(event?: any): PromiseLike { + public run(event?: any): Promise { if (this.terminalService.terminalInstances.length === 0) { // If there is not yet an instance attempt to create it here so that we can suggest a // new shell on Windows (and not do so when the panel is restored on reload). @@ -106,7 +106,7 @@ export class KillTerminalAction extends Action { super(id, label, 'terminal-action kill'); } - public run(event?: any): PromiseLike { + public run(event?: any): Promise { const instance = this.terminalService.getActiveInstance(); if (instance) { instance.dispose(true); @@ -304,7 +304,7 @@ export class CreateNewTerminalAction extends Action { super(id, label, 'terminal-action new'); } - public run(event?: any): PromiseLike { + public run(event?: any): Promise { const folders = this.workspaceContextService.getWorkspace().folders; if (event instanceof MouseEvent && (event.altKey || event.ctrlKey)) { const activeInstance = this.terminalService.getActiveInstance(); @@ -316,7 +316,7 @@ export class CreateNewTerminalAction extends Action { } } - let instancePromise: PromiseLike; + let instancePromise: Promise; if (folders.length <= 1) { // Allow terminal service to handle the path when there is only a // single root @@ -380,7 +380,7 @@ export class SplitTerminalAction extends Action { super(id, label, 'terminal-action split'); } - public run(event?: any): PromiseLike { + public run(event?: any): Promise { const instance = this._terminalService.getActiveInstance(); if (!instance) { return Promise.resolve(void 0); @@ -957,7 +957,7 @@ export class RenameTerminalAction extends Action { super(id, label); } - public run(entry?: TerminalEntry): PromiseLike { + public run(entry?: TerminalEntry): Promise { const terminalInstance = entry ? entry.instance : this.terminalService.getActiveInstance(); if (!terminalInstance) { return Promise.resolve(void 0); @@ -1042,7 +1042,7 @@ export class QuickOpenTermAction extends Action { super(id, label); } - public run(): PromiseLike { + public run(): Promise { return this.quickOpenService.show(TERMINAL_PICKER_PREFIX, null); } } diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts index d2948cd4e4c..254251f7652 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalService.ts @@ -263,7 +263,7 @@ export class TerminalService extends AbstractTerminalService implements ITermina }); } - private _validateShellPaths(label: string, potentialPaths: string[]): PromiseLike<[string, string]> { + private _validateShellPaths(label: string, potentialPaths: string[]): Promise<[string, string]> { const current = potentialPaths.shift(); return pfs.fileExists(current).then(exists => { if (!exists) { @@ -281,7 +281,7 @@ export class TerminalService extends AbstractTerminalService implements ITermina return activeInstance ? activeInstance : this.createTerminal(undefined, wasNewTerminalAction); } - protected _showTerminalCloseConfirmation(): PromiseLike { + protected _showTerminalCloseConfirmation(): Promise { let message; if (this.terminalInstances.length === 1) { message = nls.localize('terminalService.terminalCloseConfirmationSingular', "There is an active terminal session, do you want to kill it?"); diff --git a/src/vs/workbench/parts/themes/electron-browser/themes.contribution.ts b/src/vs/workbench/parts/themes/electron-browser/themes.contribution.ts index c8d414391e7..2c48d75d8a6 100644 --- a/src/vs/workbench/parts/themes/electron-browser/themes.contribution.ts +++ b/src/vs/workbench/parts/themes/electron-browser/themes.contribution.ts @@ -42,7 +42,7 @@ export class SelectColorThemeAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.themeService.getColorThemes().then(themes => { const currentTheme = this.themeService.getColorTheme(); @@ -104,7 +104,7 @@ class SelectIconThemeAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.themeService.getFileIconThemes().then(themes => { const currentTheme = this.themeService.getFileIconTheme(); @@ -193,7 +193,7 @@ class GenerateColorThemeAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { let theme = this.themeService.getColorTheme(); let colors = Registry.as(ColorRegistryExtensions.ColorContribution).getColors(); let colorIds = colors.map(c => c.id).sort(); diff --git a/src/vs/workbench/parts/themes/test/electron-browser/themes.test.contribution.ts b/src/vs/workbench/parts/themes/test/electron-browser/themes.test.contribution.ts index f2696c752d3..19aaed04708 100644 --- a/src/vs/workbench/parts/themes/test/electron-browser/themes.test.contribution.ts +++ b/src/vs/workbench/parts/themes/test/electron-browser/themes.test.contribution.ts @@ -214,7 +214,7 @@ class Snapper { } } - public captureSyntaxTokens(fileName: string, content: string): Thenable { + public captureSyntaxTokens(fileName: string, content: string): Promise { const modeId = this.modeService.getModeIdByFilepathOrFirstLine(fileName); return this.textMateService.createGrammar(modeId).then((grammar) => { let lines = content.split(/\r\n|\r|\n/); diff --git a/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts b/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts index 417f3060132..81e3ab1ff77 100644 --- a/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts +++ b/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts @@ -47,7 +47,7 @@ function renderBody( export class ReleaseNotesManager { - private _releaseNotesCache: { [version: string]: Thenable; } = Object.create(null); + private _releaseNotesCache: { [version: string]: Promise; } = Object.create(null); private _currentReleaseNotes: WebviewEditorInput | undefined = undefined; private _lastText: string; @@ -110,7 +110,7 @@ export class ReleaseNotesManager { return true; } - private loadReleaseNotes(version: string): Thenable { + private loadReleaseNotes(version: string): Promise { const match = /^(\d+\.\d+)\./.exec(version); if (!match) { return Promise.reject(new Error('not found')); @@ -189,7 +189,7 @@ export class ReleaseNotesManager { } private async getRenderer(text: string): Promise { - let result: Thenable[] = []; + let result: Promise[] = []; const renderer = new marked.Renderer(); renderer.code = (_code, lang) => { const modeId = this._modeService.getModeIdForLanguageName(lang); diff --git a/src/vs/workbench/parts/update/electron-browser/update.ts b/src/vs/workbench/parts/update/electron-browser/update.ts index 2ea9c281be0..afd15901fb1 100644 --- a/src/vs/workbench/parts/update/electron-browser/update.ts +++ b/src/vs/workbench/parts/update/electron-browser/update.ts @@ -46,7 +46,7 @@ export class OpenLatestReleaseNotesInBrowserAction extends Action { super('update.openLatestReleaseNotes', nls.localize('releaseNotes', "Release Notes"), null, true); } - run(): Thenable { + run(): Promise { if (product.releaseNotesUrl) { const uri = URI.parse(product.releaseNotesUrl); return this.openerService.open(uri); @@ -66,7 +66,7 @@ export abstract class AbstractShowReleaseNotesAction extends Action { super(id, label, null, true); } - run(): Thenable { + run(): Promise { if (!this.enabled) { return Promise.resolve(false); } diff --git a/src/vs/workbench/parts/url/electron-browser/url.contribution.ts b/src/vs/workbench/parts/url/electron-browser/url.contribution.ts index 1bb42f5e8b9..efde9da784b 100644 --- a/src/vs/workbench/parts/url/electron-browser/url.contribution.ts +++ b/src/vs/workbench/parts/url/electron-browser/url.contribution.ts @@ -26,7 +26,7 @@ export class OpenUrlAction extends Action { super(id, label); } - run(): Thenable { + run(): Promise { return this.quickInputService.input({ prompt: 'URL to open' }).then(input => { const uri = URI.parse(input); this.urlService.open(uri); diff --git a/src/vs/workbench/parts/webview/electron-browser/webviewCommands.ts b/src/vs/workbench/parts/webview/electron-browser/webviewCommands.ts index dd66bdbff8d..4f42f3bf403 100644 --- a/src/vs/workbench/parts/webview/electron-browser/webviewCommands.ts +++ b/src/vs/workbench/parts/webview/electron-browser/webviewCommands.ts @@ -54,7 +54,7 @@ export class OpenWebviewDeveloperToolsAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const elements = document.querySelectorAll('webview.ready'); for (let i = 0; i < elements.length; i++) { try { @@ -79,7 +79,7 @@ export class ReloadWebviewAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { for (const webview of this.getVisibleWebviews()) { webview.reload(); } diff --git a/src/vs/workbench/parts/webview/electron-browser/webviewEditor.ts b/src/vs/workbench/parts/webview/electron-browser/webviewEditor.ts index cb43fb212b3..40896f71e7f 100644 --- a/src/vs/workbench/parts/webview/electron-browser/webviewEditor.ts +++ b/src/vs/workbench/parts/webview/electron-browser/webviewEditor.ts @@ -158,7 +158,7 @@ export class WebviewEditor extends BaseWebviewEditor { super.clearInput(); } - setInput(input: WebviewEditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: WebviewEditorInput, options: EditorOptions, token: CancellationToken): Promise { if (this.input) { (this.input as WebviewEditorInput).releaseWebview(this); this._webview = undefined; diff --git a/src/vs/workbench/parts/webview/electron-browser/webviewEditorInput.ts b/src/vs/workbench/parts/webview/electron-browser/webviewEditorInput.ts index 8535a2c253b..4da45eee721 100644 --- a/src/vs/workbench/parts/webview/electron-browser/webviewEditorInput.ts +++ b/src/vs/workbench/parts/webview/electron-browser/webviewEditorInput.ts @@ -215,7 +215,7 @@ export class WebviewEditorInput extends EditorInput { } } - public resolve(): Thenable { + public resolve(): Promise { if (this.reviver && !this._revived) { this._revived = true; return this.reviver.reviveWebview(this).then(() => new EditorModel()); diff --git a/src/vs/workbench/parts/welcome/overlay/browser/welcomeOverlay.ts b/src/vs/workbench/parts/welcome/overlay/browser/welcomeOverlay.ts index 97b869c2526..ab6f0fbbf0a 100644 --- a/src/vs/workbench/parts/welcome/overlay/browser/welcomeOverlay.ts +++ b/src/vs/workbench/parts/welcome/overlay/browser/welcomeOverlay.ts @@ -121,7 +121,7 @@ export class WelcomeOverlayAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { if (!welcomeOverlay) { welcomeOverlay = this.instantiationService.createInstance(WelcomeOverlay); } @@ -142,7 +142,7 @@ export class HideWelcomeOverlayAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { if (welcomeOverlay) { welcomeOverlay.hide(); } diff --git a/src/vs/workbench/parts/welcome/page/electron-browser/welcomePage.ts b/src/vs/workbench/parts/welcome/page/electron-browser/welcomePage.ts index 09303ad142d..536af2f0491 100644 --- a/src/vs/workbench/parts/welcome/page/electron-browser/welcomePage.ts +++ b/src/vs/workbench/parts/welcome/page/electron-browser/welcomePage.ts @@ -129,7 +129,7 @@ export class WelcomePageAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { return this.instantiationService.createInstance(WelcomePage) .openEditor() .then(() => undefined); @@ -290,7 +290,7 @@ class WelcomePage { return this.editorService.openEditor(this.editorInput, { pinned: false }); } - private onReady(container: HTMLElement, recentlyOpened: Thenable<{ files: URI[]; workspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]; }>, installedExtensions: Promise): void { + private onReady(container: HTMLElement, recentlyOpened: Promise<{ files: URI[]; workspaces: (IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier)[]; }>, installedExtensions: Promise): void { const enabled = isWelcomePageEnabled(this.configurationService, this.contextService); const showOnStartup = container.querySelector('#showOnStartup'); if (enabled) { diff --git a/src/vs/workbench/parts/welcome/walkThrough/electron-browser/editor/editorWalkThrough.ts b/src/vs/workbench/parts/welcome/walkThrough/electron-browser/editor/editorWalkThrough.ts index eda710840e1..fd9080cdabd 100644 --- a/src/vs/workbench/parts/welcome/walkThrough/electron-browser/editor/editorWalkThrough.ts +++ b/src/vs/workbench/parts/welcome/walkThrough/electron-browser/editor/editorWalkThrough.ts @@ -35,7 +35,7 @@ export class EditorWalkThroughAction extends Action { super(id, label); } - public run(): Thenable { + public run(): Promise { const input = this.instantiationService.createInstance(WalkThroughInput, inputOptions); return this.editorService.openEditor(input, { pinned: true }) .then(() => void (0)); diff --git a/src/vs/workbench/parts/welcome/walkThrough/electron-browser/walkThroughPart.ts b/src/vs/workbench/parts/welcome/walkThrough/electron-browser/walkThroughPart.ts index 1bd289fda4d..11de28ddead 100644 --- a/src/vs/workbench/parts/welcome/walkThrough/electron-browser/walkThroughPart.ts +++ b/src/vs/workbench/parts/welcome/walkThrough/electron-browser/walkThroughPart.ts @@ -251,7 +251,7 @@ export class WalkThroughPart extends BaseEditor { this.scrollbar.setScrollPosition({ scrollTop: scrollPosition.scrollTop + scrollDimensions.height }); } - setInput(input: WalkThroughInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: WalkThroughInput, options: EditorOptions, token: CancellationToken): Promise { if (this.input instanceof WalkThroughInput) { this.saveTextEditorViewState(this.input); } diff --git a/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts b/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts index 37d2c37008d..45629ee297d 100644 --- a/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts +++ b/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts @@ -25,9 +25,9 @@ export class WalkThroughContentProvider implements ITextModelContentProvider, IW this.textModelResolverService.registerTextModelContentProvider(Schemas.walkThrough, this); } - public provideTextContent(resource: URI): Thenable { + public provideTextContent(resource: URI): Promise { const query = resource.query ? JSON.parse(resource.query) : {}; - const content: Thenable = (query.moduleId ? new Promise((resolve, reject) => { + const content: Promise = (query.moduleId ? new Promise((resolve, reject) => { require([query.moduleId], content => { try { resolve(content.default()); @@ -60,7 +60,7 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi this.textModelResolverService.registerTextModelContentProvider(Schemas.walkThroughSnippet, this); } - public provideTextContent(resource: URI): Thenable { + public provideTextContent(resource: URI): Promise { return this.textFileService.resolveTextContent(URI.file(resource.fsPath)).then(content => { let codeEditorModel = this.modelService.getModel(resource); if (!codeEditorModel) { diff --git a/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts b/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts index 78b0275ca9b..1b7bb164121 100644 --- a/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts +++ b/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts @@ -50,7 +50,7 @@ export class WalkThroughInput extends EditorInput { private disposables: IDisposable[] = []; - private promise: Thenable | null; + private promise: Promise | null; private maxTopScroll = 0; private maxBottomScroll = 0; @@ -100,7 +100,7 @@ export class WalkThroughInput extends EditorInput { return this.options.onReady; } - resolve(): Thenable { + resolve(): Promise { if (!this.promise) { this.promise = this.textModelResolverService.createModelReference(this.options.resource) .then(ref => { @@ -108,7 +108,7 @@ export class WalkThroughInput extends EditorInput { return new WalkThroughModel(ref, []); } - const snippets: Thenable>[] = []; + const snippets: Promise>[] = []; let i = 0; const renderer = new marked.Renderer(); renderer.code = (code, lang) => { diff --git a/src/vs/workbench/services/backup/common/backup.ts b/src/vs/workbench/services/backup/common/backup.ts index 1d7c2cadbb5..614248c44e4 100644 --- a/src/vs/workbench/services/backup/common/backup.ts +++ b/src/vs/workbench/services/backup/common/backup.ts @@ -22,7 +22,7 @@ export interface IBackupFileService { /** * Finds out if there are any backups stored. */ - hasBackups(): Thenable; + hasBackups(): Promise; /** * Loads the backup resource for a particular resource within the current workspace. @@ -30,7 +30,7 @@ export interface IBackupFileService { * @param resource The resource that is backed up. * @return The backup resource if any. */ - loadBackupResource(resource: Uri): Thenable; + loadBackupResource(resource: Uri): Promise; /** * Given a resource, returns the associated backup resource. @@ -47,14 +47,14 @@ export interface IBackupFileService { * @param content The content of the resource as snapshot. * @param versionId The version id of the resource to backup. */ - backupResource(resource: Uri, content: ITextSnapshot, versionId?: number): Thenable; + backupResource(resource: Uri, content: ITextSnapshot, versionId?: number): Promise; /** * Gets a list of file backups for the current workspace. * * @return The list of backups. */ - getWorkspaceFileBackups(): Thenable; + getWorkspaceFileBackups(): Promise; /** * Resolves the backup for the given resource. @@ -62,18 +62,18 @@ export interface IBackupFileService { * @param value The contents from a backup resource as stream. * @return The backup file's backed up content as text buffer factory. */ - resolveBackupContent(backup: Uri): Thenable; + resolveBackupContent(backup: Uri): Promise; /** * Discards the backup associated with a resource if it exists.. * * @param resource The resource whose backup is being discarded discard to back up. */ - discardResourceBackup(resource: Uri): Thenable; + discardResourceBackup(resource: Uri): Promise; /** * Discards all backups associated with the current workspace and prevents further backups from * being made. */ - discardAllWorkspaceBackups(): Thenable; + discardAllWorkspaceBackups(): Promise; } diff --git a/src/vs/workbench/services/backup/node/backupFileService.ts b/src/vs/workbench/services/backup/node/backupFileService.ts index 1d7b890e388..2a19636ebc0 100644 --- a/src/vs/workbench/services/backup/node/backupFileService.ts +++ b/src/vs/workbench/services/backup/node/backupFileService.ts @@ -16,7 +16,7 @@ import { createTextBufferFactoryFromStream, createTextBufferFactoryFromSnapshot import { keys } from 'vs/base/common/map'; export interface IBackupFilesModel { - resolve(backupRoot: string): Thenable; + resolve(backupRoot: string): Promise; add(resource: Uri, versionId?: number): void; has(resource: Uri, versionId?: number): boolean; @@ -50,7 +50,7 @@ export class BackupSnapshot implements ITextSnapshot { export class BackupFilesModel implements IBackupFilesModel { private cache: { [resource: string]: number /* version ID */ } = Object.create(null); - resolve(backupRoot: string): Thenable { + resolve(backupRoot: string): Promise { return pfs.readDirsInDir(backupRoot).then(backupSchemas => { // For all supported schemas @@ -113,7 +113,7 @@ export class BackupFileService implements IBackupFileService { private backupWorkspacePath: string; private isShuttingDown: boolean; - private ready: Thenable; + private ready: Promise; private ioOperationQueues: ResourceQueue; // queue IO operations to ensure write order constructor( @@ -132,19 +132,19 @@ export class BackupFileService implements IBackupFileService { this.ready = this.init(); } - private init(): Thenable { + private init(): Promise { const model = new BackupFilesModel(); return model.resolve(this.backupWorkspacePath); } - hasBackups(): Thenable { + hasBackups(): Promise { return this.ready.then(model => { return model.count() > 0; }); } - loadBackupResource(resource: Uri): Thenable { + loadBackupResource(resource: Uri): Promise { return this.ready.then(model => { // Return directly if we have a known backup with that resource @@ -157,7 +157,7 @@ export class BackupFileService implements IBackupFileService { }); } - backupResource(resource: Uri, content: ITextSnapshot, versionId?: number): Thenable { + backupResource(resource: Uri, content: ITextSnapshot, versionId?: number): Promise { if (this.isShuttingDown) { return Promise.resolve(); } @@ -177,7 +177,7 @@ export class BackupFileService implements IBackupFileService { }); } - discardResourceBackup(resource: Uri): Thenable { + discardResourceBackup(resource: Uri): Promise { return this.ready.then(model => { const backupResource = this.toBackupResource(resource); @@ -187,7 +187,7 @@ export class BackupFileService implements IBackupFileService { }); } - discardAllWorkspaceBackups(): Thenable { + discardAllWorkspaceBackups(): Promise { this.isShuttingDown = true; return this.ready.then(model => { @@ -195,9 +195,9 @@ export class BackupFileService implements IBackupFileService { }); } - getWorkspaceFileBackups(): Thenable { + getWorkspaceFileBackups(): Promise { return this.ready.then(model => { - const readPromises: Thenable[] = []; + const readPromises: Promise[] = []; model.get().forEach(fileBackup => { readPromises.push( @@ -209,7 +209,7 @@ export class BackupFileService implements IBackupFileService { }); } - resolveBackupContent(backup: Uri): Thenable { + resolveBackupContent(backup: Uri): Promise { return this.fileService.resolveStreamContent(backup, BACKUP_FILE_RESOLVE_OPTIONS).then(content => { // Add a filter method to filter out everything until the meta marker @@ -247,11 +247,11 @@ export class InMemoryBackupFileService implements IBackupFileService { private backups: Map = new Map(); - hasBackups(): Thenable { + hasBackups(): Promise { return Promise.resolve(this.backups.size > 0); } - loadBackupResource(resource: Uri): Thenable { + loadBackupResource(resource: Uri): Promise { const backupResource = this.toBackupResource(resource); if (this.backups.has(backupResource.toString())) { return Promise.resolve(backupResource); @@ -260,14 +260,14 @@ export class InMemoryBackupFileService implements IBackupFileService { return Promise.resolve(); } - backupResource(resource: Uri, content: ITextSnapshot, versionId?: number): Thenable { + backupResource(resource: Uri, content: ITextSnapshot, versionId?: number): Promise { const backupResource = this.toBackupResource(resource); this.backups.set(backupResource.toString(), content); return Promise.resolve(); } - resolveBackupContent(backupResource: Uri): Thenable { + resolveBackupContent(backupResource: Uri): Promise { const snapshot = this.backups.get(backupResource.toString()); if (snapshot) { return Promise.resolve(createTextBufferFactoryFromSnapshot(snapshot)); @@ -276,17 +276,17 @@ export class InMemoryBackupFileService implements IBackupFileService { return Promise.resolve(); } - getWorkspaceFileBackups(): Thenable { + getWorkspaceFileBackups(): Promise { return Promise.resolve(keys(this.backups).map(key => Uri.parse(key))); } - discardResourceBackup(resource: Uri): Thenable { + discardResourceBackup(resource: Uri): Promise { this.backups.delete(this.toBackupResource(resource).toString()); return Promise.resolve(); } - discardAllWorkspaceBackups(): Thenable { + discardAllWorkspaceBackups(): Promise { this.backups.clear(); return Promise.resolve(); diff --git a/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts b/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts index 1774512d1e8..1337b1f1fb6 100644 --- a/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts +++ b/src/vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts @@ -171,7 +171,7 @@ class BulkEditModel implements IDisposable { } this._tasks = []; - const promises: Thenable[] = []; + const promises: Promise[] = []; this._edits.forEach((value, key) => { const promise = this._textModelResolverService.createModelReference(URI.parse(key)).then(ref => { diff --git a/src/vs/workbench/services/codeEditor/browser/codeEditorService.ts b/src/vs/workbench/services/codeEditor/browser/codeEditorService.ts index 87f25ef8129..fec2a83d837 100644 --- a/src/vs/workbench/services/codeEditor/browser/codeEditorService.ts +++ b/src/vs/workbench/services/codeEditor/browser/codeEditorService.ts @@ -33,7 +33,7 @@ export class CodeEditorService extends CodeEditorServiceImpl { return null; } - openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Thenable { + openCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Promise { // Special case: If the active editor is a diff editor and the request to open originates and // targets the modified side of it, we just apply the request there to prevent opening the modified @@ -60,7 +60,7 @@ export class CodeEditorService extends CodeEditorServiceImpl { return this.doOpenCodeEditor(input, source, sideBySide); } - private doOpenCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Thenable { + private doOpenCodeEditor(input: IResourceInput, source: ICodeEditor | null, sideBySide?: boolean): Promise { return this.editorService.openEditor(input, sideBySide ? SIDE_GROUP : ACTIVE_GROUP).then(control => { if (control) { const widget = control.getControl(); diff --git a/src/vs/workbench/services/commands/common/commandService.ts b/src/vs/workbench/services/commands/common/commandService.ts index 4bcf865fc8f..502d4f99f1a 100644 --- a/src/vs/workbench/services/commands/common/commandService.ts +++ b/src/vs/workbench/services/commands/common/commandService.ts @@ -35,7 +35,7 @@ export class CommandService extends Disposable implements ICommandService { // we don't wait for it when the extension // host didn't yet start and the command is already registered - const activation: Thenable = this._extensionService.activateByEvent(`onCommand:${id}`); + const activation: Promise = this._extensionService.activateByEvent(`onCommand:${id}`); const commandIsRegistered = !!CommandsRegistry.getCommand(id); if (!this._extensionHostIsReady && commandIsRegistered) { diff --git a/src/vs/workbench/services/configurationResolver/common/configurationResolver.ts b/src/vs/workbench/services/configurationResolver/common/configurationResolver.ts index f0a9488c435..0a5b6f6d487 100644 --- a/src/vs/workbench/services/configurationResolver/common/configurationResolver.ts +++ b/src/vs/workbench/services/configurationResolver/common/configurationResolver.ts @@ -30,13 +30,13 @@ export interface IConfigurationResolverService { * @param section For example, 'tasks' or 'debug'. Used for resolving inputs. * @param variables Aliases for commands. */ - resolveWithInteractionReplace(folder: IWorkspaceFolder, config: any, section?: string, variables?: IStringDictionary): Thenable; + resolveWithInteractionReplace(folder: IWorkspaceFolder, config: any, section?: string, variables?: IStringDictionary): Promise; /** * Similar to resolveWithInteractionReplace, except without the replace. Returns a map of variables and their resolution. * Keys in the map will be of the format input:variableName or command:variableName. */ - resolveWithInteraction(folder: IWorkspaceFolder, config: any, section?: string, variables?: IStringDictionary): Thenable>; + resolveWithInteraction(folder: IWorkspaceFolder, config: any, section?: string, variables?: IStringDictionary): Promise>; } export const enum ConfiguredInputType { diff --git a/src/vs/workbench/services/configurationResolver/electron-browser/configurationResolverService.ts b/src/vs/workbench/services/configurationResolver/electron-browser/configurationResolverService.ts index 7e34b197669..37f675765aa 100644 --- a/src/vs/workbench/services/configurationResolver/electron-browser/configurationResolverService.ts +++ b/src/vs/workbench/services/configurationResolver/electron-browser/configurationResolverService.ts @@ -82,7 +82,7 @@ export class ConfigurationResolverService extends AbstractVariableResolverServic }, envVariables); } - public resolveWithInteractionReplace(folder: IWorkspaceFolder, config: any, section?: string, variables?: IStringDictionary): Thenable { + public resolveWithInteractionReplace(folder: IWorkspaceFolder, config: any, section?: string, variables?: IStringDictionary): Promise { // resolve any non-interactive variables config = this.resolveAny(folder, config); @@ -99,7 +99,7 @@ export class ConfigurationResolverService extends AbstractVariableResolverServic }); } - public resolveWithInteraction(folder: IWorkspaceFolder, config: any, section?: string, variables?: IStringDictionary): Thenable> { + public resolveWithInteraction(folder: IWorkspaceFolder, config: any, section?: string, variables?: IStringDictionary): Promise> { // resolve any non-interactive variables const resolved = this.resolveAnyMap(folder, config); config = resolved.newConfig; @@ -143,7 +143,7 @@ export class ConfigurationResolverService extends AbstractVariableResolverServic * @param configuration * @param variableToCommandMap Aliases for commands */ - private resolveWithCommands(configuration: any, variableToCommandMap: IStringDictionary): Thenable> { + private resolveWithCommands(configuration: any, variableToCommandMap: IStringDictionary): Promise> { if (!configuration) { return Promise.resolve(undefined); } @@ -155,7 +155,7 @@ export class ConfigurationResolverService extends AbstractVariableResolverServic let cancelled = false; const commandValueMapping: IStringDictionary = Object.create(null); - const factory: { (): Thenable }[] = commands.map(commandVariable => { + const factory: { (): Promise }[] = commands.map(commandVariable => { return () => { let commandId = variableToCommandMap ? variableToCommandMap[commandVariable] : undefined; if (!commandId) { diff --git a/src/vs/workbench/services/configurationResolver/node/variableResolver.ts b/src/vs/workbench/services/configurationResolver/node/variableResolver.ts index 6f47dc5b3ea..af4d991f3d3 100644 --- a/src/vs/workbench/services/configurationResolver/node/variableResolver.ts +++ b/src/vs/workbench/services/configurationResolver/node/variableResolver.ts @@ -82,11 +82,11 @@ export class AbstractVariableResolverService implements IConfigurationResolverSe return { newConfig, resolvedVariables }; } - public resolveWithInteractionReplace(folder: IWorkspaceFolder, config: any): Thenable { + public resolveWithInteractionReplace(folder: IWorkspaceFolder, config: any): Promise { throw new Error('resolveWithInteractionReplace not implemented.'); } - public resolveWithInteraction(folder: IWorkspaceFolder, config: any): Thenable { + public resolveWithInteraction(folder: IWorkspaceFolder, config: any): Promise { throw new Error('resolveWithInteraction not implemented.'); } diff --git a/src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts b/src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts index 860f6bb85fc..28d3f526e7a 100644 --- a/src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts +++ b/src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts @@ -495,9 +495,9 @@ class MockCommandService implements ICommandService { class MockQuickInputService implements IQuickInputService { _serviceBrand: any; - public pick(picks: Thenable[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: true }, token?: CancellationToken): Promise; - public pick(picks: Thenable[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: false }, token?: CancellationToken): Promise; - public pick(picks: Thenable[]> | QuickPickInput[], options?: Omit, 'canPickMany'>, token?: CancellationToken): Promise { + public pick(picks: Promise[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: true }, token?: CancellationToken): Promise; + public pick(picks: Promise[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: false }, token?: CancellationToken): Promise; + public pick(picks: Promise[]> | QuickPickInput[], options?: Omit, 'canPickMany'>, token?: CancellationToken): Promise { if (Types.isArray(picks)) { return Promise.resolve({ label: 'selectedPick', description: 'pick description' }); } else { diff --git a/src/vs/workbench/services/decorations/browser/decorations.ts b/src/vs/workbench/services/decorations/browser/decorations.ts index e8098f9484b..73cfd4cce86 100644 --- a/src/vs/workbench/services/decorations/browser/decorations.ts +++ b/src/vs/workbench/services/decorations/browser/decorations.ts @@ -31,7 +31,7 @@ export interface IDecoration { export interface IDecorationsProvider { readonly label: string; readonly onDidChange: Event; - provideDecorations(uri: URI, token: CancellationToken): IDecorationData | Thenable | undefined; + provideDecorations(uri: URI, token: CancellationToken): IDecorationData | Promise | undefined; } export interface IResourceDecorationChangeEvent { diff --git a/src/vs/workbench/services/decorations/browser/decorationsService.ts b/src/vs/workbench/services/decorations/browser/decorationsService.ts index abf01097120..fbe224d33d3 100644 --- a/src/vs/workbench/services/decorations/browser/decorationsService.ts +++ b/src/vs/workbench/services/decorations/browser/decorationsService.ts @@ -222,7 +222,7 @@ class FileDecorationChangeEvent implements IResourceDecorationChangeEvent { class DecorationDataRequest { constructor( readonly source: CancellationTokenSource, - readonly thenable: Thenable, + readonly thenable: Promise, ) { } } diff --git a/src/vs/workbench/services/dialogs/electron-browser/dialogService.ts b/src/vs/workbench/services/dialogs/electron-browser/dialogService.ts index f6ab8c3654e..4d43f2bb30b 100644 --- a/src/vs/workbench/services/dialogs/electron-browser/dialogService.ts +++ b/src/vs/workbench/services/dialogs/electron-browser/dialogService.ts @@ -43,7 +43,7 @@ export class DialogService implements IDialogService { @ILogService private logService: ILogService ) { } - confirm(confirmation: IConfirmation): Thenable { + confirm(confirmation: IConfirmation): Promise { this.logService.trace('DialogService#confirm', confirmation.message); const { options, buttonIndexMap } = this.massageMessageBoxOptions(this.getConfirmOptions(confirmation)); @@ -93,7 +93,7 @@ export class DialogService implements IDialogService { return opts; } - show(severity: Severity, message: string, buttons: string[], dialogOptions?: IDialogOptions): Thenable { + show(severity: Severity, message: string, buttons: string[], dialogOptions?: IDialogOptions): Promise { this.logService.trace('DialogService#show', message); const { options, buttonIndexMap } = this.massageMessageBoxOptions({ @@ -212,7 +212,7 @@ export class FileDialogService implements IFileDialogService { }; } - public pickFileFolderAndOpen(options: IPickAndOpenOptions): Thenable { + public pickFileFolderAndOpen(options: IPickAndOpenOptions): Promise { let defaultUri = options.defaultUri; if (!defaultUri) { options.defaultUri = this.defaultFilePath(Schemas.file); @@ -221,7 +221,7 @@ export class FileDialogService implements IFileDialogService { } - public pickFileAndOpen(options: IPickAndOpenOptions): Thenable { + public pickFileAndOpen(options: IPickAndOpenOptions): Promise { let defaultUri = options.defaultUri; if (!defaultUri) { options.defaultUri = this.defaultFilePath(Schemas.file); @@ -229,7 +229,7 @@ export class FileDialogService implements IFileDialogService { return this.windowService.pickFileAndOpen(this.toNativeOpenDialogOptions(options)); } - public pickFolderAndOpen(options: IPickAndOpenOptions): Thenable { + public pickFolderAndOpen(options: IPickAndOpenOptions): Promise { let defaultUri = options.defaultUri; if (!defaultUri) { options.defaultUri = this.defaultFolderPath(Schemas.file); @@ -237,7 +237,7 @@ export class FileDialogService implements IFileDialogService { return this.windowService.pickFolderAndOpen(this.toNativeOpenDialogOptions(options)); } - public pickWorkspaceAndOpen(options: IPickAndOpenOptions): Thenable { + public pickWorkspaceAndOpen(options: IPickAndOpenOptions): Promise { let defaultUri = options.defaultUri; if (!defaultUri) { options.defaultUri = this.defaultWorkspacePath(Schemas.file); @@ -254,7 +254,7 @@ export class FileDialogService implements IFileDialogService { }; } - public showSaveDialog(options: ISaveDialogOptions): Thenable { + public showSaveDialog(options: ISaveDialogOptions): Promise { const defaultUri = options.defaultUri; if (defaultUri && defaultUri.scheme !== Schemas.file) { return Promise.reject(new Error('Not supported - Save-dialogs can only be opened on `file`-uris.')); @@ -267,7 +267,7 @@ export class FileDialogService implements IFileDialogService { }); } - public showOpenDialog(options: IOpenDialogOptions): Thenable { + public showOpenDialog(options: IOpenDialogOptions): Promise { const defaultUri = options.defaultUri; if (defaultUri && defaultUri.scheme !== Schemas.file) { return Promise.reject(new Error('Not supported - Open-dialogs can only be opened on `file`-uris.')); diff --git a/src/vs/workbench/services/editor/browser/editorService.ts b/src/vs/workbench/services/editor/browser/editorService.ts index 710eae571f9..bf52d2fe1b3 100644 --- a/src/vs/workbench/services/editor/browser/editorService.ts +++ b/src/vs/workbench/services/editor/browser/editorService.ts @@ -215,11 +215,11 @@ export class EditorService extends Disposable implements EditorServiceImpl { //#region openEditor() - openEditor(editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditor(editor: IResourceInput | IUntitledResourceInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditor(editor: IResourceDiffInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditor(editor: IResourceSideBySideInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditor(editor: IEditorInput | IResourceEditor, optionsOrGroup?: IEditorOptions | ITextEditorOptions | IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE, group?: GroupIdentifier): Thenable { + openEditor(editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditor(editor: IResourceInput | IUntitledResourceInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditor(editor: IResourceDiffInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditor(editor: IResourceSideBySideInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditor(editor: IEditorInput | IResourceEditor, optionsOrGroup?: IEditorOptions | ITextEditorOptions | IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE, group?: GroupIdentifier): Promise { // Typed Editor Support if (editor instanceof EditorInput) { @@ -242,7 +242,7 @@ export class EditorService extends Disposable implements EditorServiceImpl { return Promise.resolve(null); } - protected doOpenEditor(group: IEditorGroup, editor: IEditorInput, options?: IEditorOptions): Thenable { + protected doOpenEditor(group: IEditorGroup, editor: IEditorInput, options?: IEditorOptions): Promise { return group.openEditor(editor, options); } @@ -327,9 +327,9 @@ export class EditorService extends Disposable implements EditorServiceImpl { //#region openEditors() - openEditors(editors: IEditorInputWithOptions[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditors(editors: IResourceEditor[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditors(editors: (IEditorInputWithOptions | IResourceEditor)[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable { + openEditors(editors: IEditorInputWithOptions[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditors(editors: IResourceEditor[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditors(editors: (IEditorInputWithOptions | IResourceEditor)[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise { // Convert to typed editors and options const typedEditors: IEditorInputWithOptions[] = []; @@ -360,7 +360,7 @@ export class EditorService extends Disposable implements EditorServiceImpl { } // Open in targets - const result: Thenable[] = []; + const result: Promise[] = []; mapGroupToEditors.forEach((editorsWithOptions, group) => { result.push(group.openEditors(editorsWithOptions)); }); @@ -436,9 +436,9 @@ export class EditorService extends Disposable implements EditorServiceImpl { //#region replaceEditors() - replaceEditors(editors: IResourceEditorReplacement[], group: IEditorGroup | GroupIdentifier): Thenable; - replaceEditors(editors: IEditorReplacement[], group: IEditorGroup | GroupIdentifier): Thenable; - replaceEditors(editors: (IEditorReplacement | IResourceEditorReplacement)[], group: IEditorGroup | GroupIdentifier): Thenable { + replaceEditors(editors: IResourceEditorReplacement[], group: IEditorGroup | GroupIdentifier): Promise; + replaceEditors(editors: IEditorReplacement[], group: IEditorGroup | GroupIdentifier): Promise; + replaceEditors(editors: (IEditorReplacement | IResourceEditorReplacement)[], group: IEditorGroup | GroupIdentifier): Promise { const typedEditors: IEditorReplacement[] = []; editors.forEach(replaceEditorArg => { @@ -599,7 +599,7 @@ export class EditorService extends Disposable implements EditorServiceImpl { } export interface IEditorOpenHandler { - (group: IEditorGroup, editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions): Thenable; + (group: IEditorGroup, editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions): Promise; } /** @@ -631,7 +631,7 @@ export class DelegatingEditorService extends EditorService { this.editorOpenHandler = handler; } - protected doOpenEditor(group: IEditorGroup, editor: IEditorInput, options?: IEditorOptions): Thenable { + protected doOpenEditor(group: IEditorGroup, editor: IEditorInput, options?: IEditorOptions): Promise { if (!this.editorOpenHandler) { return super.doOpenEditor(group, editor, options); } diff --git a/src/vs/workbench/services/editor/common/editorService.ts b/src/vs/workbench/services/editor/common/editorService.ts index ad2df382382..cccd6dd730e 100644 --- a/src/vs/workbench/services/editor/common/editorService.ts +++ b/src/vs/workbench/services/editor/common/editorService.ts @@ -36,7 +36,7 @@ export interface IOpenEditorOverride { * If defined, will prevent the opening of an editor and replace the resulting * promise with the provided promise for the openEditor() call. */ - override?: Thenable; + override?: Promise; } export interface IEditorService { @@ -114,10 +114,10 @@ export interface IEditorService { * @returns the editor that opened or NULL if the operation failed or the editor was not * opened to be active. */ - openEditor(editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditor(editor: IResourceInput | IUntitledResourceInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditor(editor: IResourceDiffInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; - openEditor(editor: IResourceSideBySideInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable; + openEditor(editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditor(editor: IResourceInput | IUntitledResourceInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditor(editor: IResourceDiffInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; + openEditor(editor: IResourceSideBySideInput, group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise; /** * Open editors in an editor group. @@ -130,8 +130,8 @@ export interface IEditorService { * @returns the editors that opened. The array can be empty or have less elements for editors * that failed to open or were instructed to open as inactive. */ - openEditors(editors: IEditorInputWithOptions[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable>; - openEditors(editors: IResourceEditor[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Thenable>; + openEditors(editors: IEditorInputWithOptions[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise>; + openEditors(editors: IResourceEditor[], group?: IEditorGroup | GroupIdentifier | SIDE_GROUP_TYPE | ACTIVE_GROUP_TYPE): Promise>; /** * Replaces editors in an editor group with the provided replacement. @@ -141,8 +141,8 @@ export interface IEditorService { * @returns a promise that is resolved when the replaced active * editor (if any) has finished loading. */ - replaceEditors(editors: IResourceEditorReplacement[], group: IEditorGroup | GroupIdentifier): Thenable; - replaceEditors(editors: IEditorReplacement[], group: IEditorGroup | GroupIdentifier): Thenable; + replaceEditors(editors: IResourceEditorReplacement[], group: IEditorGroup | GroupIdentifier): Promise; + replaceEditors(editors: IEditorReplacement[], group: IEditorGroup | GroupIdentifier): Promise; /** * Find out if the provided editor (or resource of an editor) is opened in any or diff --git a/src/vs/workbench/services/editor/test/browser/editorService.test.ts b/src/vs/workbench/services/editor/test/browser/editorService.test.ts index 6a58ba3ebfa..c391d7e4abf 100644 --- a/src/vs/workbench/services/editor/test/browser/editorService.test.ts +++ b/src/vs/workbench/services/editor/test/browser/editorService.test.ts @@ -33,7 +33,7 @@ export class TestEditorControl extends BaseEditor { constructor(@ITelemetryService telemetryService: ITelemetryService) { super('MyTestEditorForEditorService', NullTelemetryService, new TestThemeService(), new TestStorageService()); } - setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { super.setInput(input, options, token); return input.resolve().then(() => void 0); @@ -50,7 +50,7 @@ export class TestEditorInput extends EditorInput implements IFileEditorInput { constructor(private resource: URI) { super(); } getTypeId() { return 'testEditorInputForEditorService'; } - resolve(): Thenable { return !this.fails ? Promise.resolve(null) : Promise.reject(new Error('fails')); } + resolve(): Promise { return !this.fails ? Promise.resolve(null) : Promise.reject(new Error('fails')); } matches(other: TestEditorInput): boolean { return other && other.resource && this.resource.toString() === other.resource.toString() && other instanceof TestEditorInput; } setEncoding(encoding: string) { } getEncoding(): string { return null; } diff --git a/src/vs/workbench/services/extensions/common/extensions.ts b/src/vs/workbench/services/extensions/common/extensions.ts index aa72b1b6ca1..ab067f5c283 100644 --- a/src/vs/workbench/services/extensions/common/extensions.ts +++ b/src/vs/workbench/services/extensions/common/extensions.ts @@ -129,7 +129,7 @@ export const ExtensionHostLogFileName = 'exthost'; export interface IWillActivateEvent { readonly event: string; - readonly activation: Thenable; + readonly activation: Promise; } export interface IResponsiveStateChangeEvent { @@ -170,7 +170,7 @@ export interface IExtensionService extends ICpuProfilerTarget { /** * Send an activation event and activate interested extensions. */ - activateByEvent(activationEvent: string): Thenable; + activateByEvent(activationEvent: string): Promise; /** * An promise that resolves when the installed extensions are registered after diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts index ebf5d91b83e..11ddcb6af1f 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts @@ -42,7 +42,7 @@ import { IExtensionDescription } from 'vs/workbench/services/extensions/common/e export interface IExtensionHostStarter { readonly onCrashed: Event<[number, string]>; - start(): Thenable; + start(): Promise; getInspectPort(): number; dispose(): void; } diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHostProcessManager.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHostProcessManager.ts index 188a2894f35..55354a43674 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHostProcessManager.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHostProcessManager.ts @@ -42,7 +42,7 @@ export class ExtensionHostProcessManager extends Disposable { /** * winjs believes a proxy is a promise because it has a `then` method, so wrap the result in an object. */ - private _extensionHostProcessProxy: Thenable<{ value: ExtHostExtensionServiceShape; }>; + private _extensionHostProcessProxy: Promise<{ value: ExtHostExtensionServiceShape; }>; constructor( extensionHostProcessWorker: IExtensionHostStarter, @@ -137,7 +137,7 @@ export class ExtensionHostProcessManager extends Disposable { return this._extensionHostProcessRPCProtocol.getProxy(ExtHostContext.ExtHostExtensionService); } - public activateByEvent(activationEvent: string): Thenable { + public activateByEvent(activationEvent: string): Promise { if (this._extensionHostProcessFinishedActivateEvents[activationEvent] || !this._extensionHostProcessProxy) { return NO_OP_VOID_PROMISE; } @@ -173,11 +173,11 @@ export class ExtensionHostProcessManager extends Disposable { return 0; } - public resolveAuthority(remoteAuthority: string): Thenable { + public resolveAuthority(remoteAuthority: string): Promise { return this._extensionHostProcessProxy.then(proxy => proxy.value.$resolveAuthority(remoteAuthority)); } - public start(enabledExtensionIds: string[]): Thenable { + public start(enabledExtensionIds: string[]): Promise { return this._extensionHostProcessProxy.then(proxy => proxy.value.$startExtensionHost(enabledExtensionIds)); } } diff --git a/src/vs/workbench/services/extensions/electron-browser/runtimeExtensionsInput.ts b/src/vs/workbench/services/extensions/electron-browser/runtimeExtensionsInput.ts index 7300441bd25..61c9190fb65 100644 --- a/src/vs/workbench/services/extensions/electron-browser/runtimeExtensionsInput.ts +++ b/src/vs/workbench/services/extensions/electron-browser/runtimeExtensionsInput.ts @@ -30,7 +30,7 @@ export class RuntimeExtensionsInput extends EditorInput { return true; } - resolve(): Thenable { + resolve(): Promise { return Promise.resolve(null); } diff --git a/src/vs/workbench/services/extensions/node/lazyPromise.ts b/src/vs/workbench/services/extensions/node/lazyPromise.ts index e6b59dc3a38..df9e72be45c 100644 --- a/src/vs/workbench/services/extensions/node/lazyPromise.ts +++ b/src/vs/workbench/services/extensions/node/lazyPromise.ts @@ -5,7 +5,7 @@ import { onUnexpectedError } from 'vs/base/common/errors'; -export class LazyPromise implements Thenable { +export class LazyPromise implements Promise { private _actual: Promise | null; private _actualOk: ((value?: any) => any) | null; @@ -78,4 +78,8 @@ export class LazyPromise implements Thenable { public then(success: any, error: any): any { return this._ensureActual().then(success, error); } + + public catch(error: any): any { + return this._ensureActual().then(undefined, error); + } } diff --git a/src/vs/workbench/services/extensions/node/rpcProtocol.ts b/src/vs/workbench/services/extensions/node/rpcProtocol.ts index dba47b26571..4830e74ea6b 100644 --- a/src/vs/workbench/services/extensions/node/rpcProtocol.ts +++ b/src/vs/workbench/services/extensions/node/rpcProtocol.ts @@ -354,7 +354,7 @@ export class RPCProtocol extends Disposable implements IRPCProtocol { } const callId = String(req); - let promise: Thenable; + let promise: Promise; let cancel: () => void; if (usesCancellationToken) { const cancellationTokenSource = new CancellationTokenSource(); @@ -441,7 +441,7 @@ export class RPCProtocol extends Disposable implements IRPCProtocol { pendingReply.resolveErr(err); } - private _invokeHandler(rpcId: number, methodName: string, args: any[]): Thenable { + private _invokeHandler(rpcId: number, methodName: string, args: any[]): Promise { try { return Promise.resolve(this._doInvokeHandler(rpcId, methodName, args)); } catch (err) { @@ -461,7 +461,7 @@ export class RPCProtocol extends Disposable implements IRPCProtocol { return method.apply(actor, args); } - private _remoteCall(rpcId: number, methodName: string, args: any[]): Thenable { + private _remoteCall(rpcId: number, methodName: string, args: any[]): Promise { if (this._isDisposed) { return Promise.reject(errors.canceled()); } diff --git a/src/vs/workbench/services/extensions/test/node/rpcProtocol.test.ts b/src/vs/workbench/services/extensions/test/node/rpcProtocol.test.ts index ff8bf3918f6..73716a48619 100644 --- a/src/vs/workbench/services/extensions/test/node/rpcProtocol.test.ts +++ b/src/vs/workbench/services/extensions/test/node/rpcProtocol.test.ts @@ -32,7 +32,7 @@ suite('RPCProtocol', () => { let delegate: (a1: any, a2: any) => any; let bProxy: BClass; class BClass { - $m(a1: any, a2: any): Thenable { + $m(a1: any, a2: any): Promise { return Promise.resolve(delegate.call(null, a1, a2)); } } diff --git a/src/vs/workbench/services/files/electron-browser/fileService.ts b/src/vs/workbench/services/files/electron-browser/fileService.ts index 0515e869268..1e4bd774d75 100644 --- a/src/vs/workbench/services/files/electron-browser/fileService.ts +++ b/src/vs/workbench/services/files/electron-browser/fileService.ts @@ -207,7 +207,7 @@ export class FileService extends Disposable implements IFileService { throw new Error('not implemented'); } - activateProvider(scheme: string): Thenable { + activateProvider(scheme: string): Promise { return Promise.reject(new Error('not implemented')); } @@ -215,20 +215,20 @@ export class FileService extends Disposable implements IFileService { return resource.scheme === Schemas.file; } - resolveFile(resource: uri, options?: IResolveFileOptions): Thenable { + resolveFile(resource: uri, options?: IResolveFileOptions): Promise { return this.resolve(resource, options); } - resolveFiles(toResolve: { resource: uri, options?: IResolveFileOptions }[]): Thenable { + resolveFiles(toResolve: { resource: uri, options?: IResolveFileOptions }[]): Promise { return Promise.all(toResolve.map(resourceAndOptions => this.resolve(resourceAndOptions.resource, resourceAndOptions.options) .then(stat => ({ stat, success: true }), error => ({ stat: void 0, success: false })))); } - existsFile(resource: uri): Thenable { + existsFile(resource: uri): Promise { return this.resolveFile(resource).then(() => true, () => false); } - resolveContent(resource: uri, options?: IResolveContentOptions): Thenable { + resolveContent(resource: uri, options?: IResolveContentOptions): Promise { return this.resolveStreamContent(resource, options).then(streamContent => { return new Promise((resolve, reject) => { @@ -251,7 +251,7 @@ export class FileService extends Disposable implements IFileService { }); } - resolveStreamContent(resource: uri, options?: IResolveContentOptions): Thenable { + resolveStreamContent(resource: uri, options?: IResolveContentOptions): Promise { // Guard early against attempts to resolve an invalid file path if (resource.scheme !== Schemas.file || !resource.fsPath) { @@ -341,7 +341,7 @@ export class FileService extends Disposable implements IFileService { return onStatError(err); }); - let completePromise: Thenable; + let completePromise: Promise; // await the stat iff we already have an etag so that we compare the // etag from the stat before we actually read the file again. @@ -391,14 +391,14 @@ export class FileService extends Disposable implements IFileService { }); } - private fillInContents(content: IStreamContent, resource: uri, options: IResolveContentOptions, token: CancellationToken): Thenable { + private fillInContents(content: IStreamContent, resource: uri, options: IResolveContentOptions, token: CancellationToken): Promise { return this.resolveFileData(resource, options, token).then(data => { content.encoding = data.encoding; content.value = data.stream; }); } - private resolveFileData(resource: uri, options: IResolveContentOptions, token: CancellationToken): Thenable { + private resolveFileData(resource: uri, options: IResolveContentOptions, token: CancellationToken): Promise { const chunkBuffer = Buffer.allocUnsafe(64 * 1024); const result: IContentData = { @@ -542,7 +542,7 @@ export class FileService extends Disposable implements IFileService { }); } - updateContent(resource: uri, value: string | ITextSnapshot, options: IUpdateContentOptions = Object.create(null)): Thenable { + updateContent(resource: uri, value: string | ITextSnapshot, options: IUpdateContentOptions = Object.create(null)): Promise { if (options.writeElevated) { return this.doUpdateContentElevated(resource, value, options); } @@ -550,12 +550,12 @@ export class FileService extends Disposable implements IFileService { return this.doUpdateContent(resource, value, options); } - private doUpdateContent(resource: uri, value: string | ITextSnapshot, options: IUpdateContentOptions = Object.create(null)): Thenable { + private doUpdateContent(resource: uri, value: string | ITextSnapshot, options: IUpdateContentOptions = Object.create(null)): Promise { const absolutePath = this.toAbsolutePath(resource); // 1.) check file for writing return this.checkFileBeforeWriting(absolutePath, options).then(exists => { - let createParentsPromise: Thenable; + let createParentsPromise: Promise; if (exists) { createParentsPromise = Promise.resolve(); } else { @@ -565,7 +565,7 @@ export class FileService extends Disposable implements IFileService { // 2.) create parents as needed return createParentsPromise.then(() => { const encodingToWrite = this._encoding.getWriteEncoding(resource, options.encoding); - let addBomPromise: Thenable = Promise.resolve(false); + let addBomPromise: Promise = Promise.resolve(false); // UTF_16 BE and LE as well as UTF_8 with BOM always have a BOM if (encodingToWrite === encoding.UTF16be || encodingToWrite === encoding.UTF16le || encodingToWrite === encoding.UTF8_with_bom) { @@ -635,7 +635,7 @@ export class FileService extends Disposable implements IFileService { }); } - private doSetContentsAndResolve(resource: uri, absolutePath: string, value: string | ITextSnapshot, addBOM: boolean, encodingToWrite: string, options?: { mode?: number; flag?: string; }): Thenable { + private doSetContentsAndResolve(resource: uri, absolutePath: string, value: string | ITextSnapshot, addBOM: boolean, encodingToWrite: string, options?: { mode?: number; flag?: string; }): Promise { // Configure encoding related options as needed const writeFileOptions: extfs.IWriteFileOptions = options ? options : Object.create(null); if (addBOM || encodingToWrite !== encoding.UTF8) { @@ -645,7 +645,7 @@ export class FileService extends Disposable implements IFileService { }; } - let writeFilePromise: Thenable; + let writeFilePromise: Promise; if (typeof value === 'string') { writeFilePromise = pfs.writeFile(absolutePath, value, writeFileOptions); } else { @@ -660,7 +660,7 @@ export class FileService extends Disposable implements IFileService { }); } - private doUpdateContentElevated(resource: uri, value: string | ITextSnapshot, options: IUpdateContentOptions = Object.create(null)): Thenable { + private doUpdateContentElevated(resource: uri, value: string | ITextSnapshot, options: IUpdateContentOptions = Object.create(null)): Promise { const absolutePath = this.toAbsolutePath(resource); // 1.) check file for writing @@ -722,10 +722,10 @@ export class FileService extends Disposable implements IFileService { }); } - createFile(resource: uri, content: string = '', options: ICreateFileOptions = Object.create(null)): Thenable { + createFile(resource: uri, content: string = '', options: ICreateFileOptions = Object.create(null)): Promise { const absolutePath = this.toAbsolutePath(resource); - let checkFilePromise: Thenable; + let checkFilePromise: Promise; if (options.overwrite) { checkFilePromise = Promise.resolve(false); } else { @@ -753,13 +753,13 @@ export class FileService extends Disposable implements IFileService { }); } - readFolder(resource: uri): Thenable { + readFolder(resource: uri): Promise { const absolutePath = this.toAbsolutePath(resource); return pfs.readdir(absolutePath); } - createFolder(resource: uri): Thenable { + createFolder(resource: uri): Promise { // 1.) Create folder const absolutePath = this.toAbsolutePath(resource); @@ -776,7 +776,7 @@ export class FileService extends Disposable implements IFileService { }); } - private checkFileBeforeWriting(absolutePath: string, options: IUpdateContentOptions = Object.create(null), ignoreReadonly?: boolean): Thenable { + private checkFileBeforeWriting(absolutePath: string, options: IUpdateContentOptions = Object.create(null), ignoreReadonly?: boolean): Promise { return pfs.exists(absolutePath).then(exists => { if (exists) { return pfs.stat(absolutePath).then(stat => { @@ -830,7 +830,7 @@ export class FileService extends Disposable implements IFileService { }); } - private readOnlyError(options: IUpdateContentOptions): Thenable { + private readOnlyError(options: IUpdateContentOptions): Promise { return Promise.reject(new FileOperationError( nls.localize('fileReadOnlyError', "File is Read Only"), FileOperationResult.FILE_READ_ONLY, @@ -838,15 +838,15 @@ export class FileService extends Disposable implements IFileService { )); } - moveFile(source: uri, target: uri, overwrite?: boolean): Thenable { + moveFile(source: uri, target: uri, overwrite?: boolean): Promise { return this.moveOrCopyFile(source, target, false, overwrite); } - copyFile(source: uri, target: uri, overwrite?: boolean): Thenable { + copyFile(source: uri, target: uri, overwrite?: boolean): Promise { return this.moveOrCopyFile(source, target, true, overwrite); } - private moveOrCopyFile(source: uri, target: uri, keepCopy: boolean, overwrite: boolean): Thenable { + private moveOrCopyFile(source: uri, target: uri, keepCopy: boolean, overwrite: boolean): Promise { const sourcePath = this.toAbsolutePath(source); const targetPath = this.toAbsolutePath(target); @@ -864,7 +864,7 @@ export class FileService extends Disposable implements IFileService { }); } - private doMoveOrCopyFile(sourcePath: string, targetPath: string, keepCopy: boolean, overwrite: boolean): Thenable { + private doMoveOrCopyFile(sourcePath: string, targetPath: string, keepCopy: boolean, overwrite: boolean): Promise { // 1.) validate operation if (isParent(targetPath, sourcePath, !isLinux)) { @@ -882,7 +882,7 @@ export class FileService extends Disposable implements IFileService { } // 3.) make sure target is deleted before we move/copy unless this is a case rename of the same file - let deleteTargetPromise: Thenable = Promise.resolve(); + let deleteTargetPromise: Promise = Promise.resolve(); if (exists && !isCaseRename) { if (isEqualOrParent(sourcePath, targetPath, !isLinux /* ignorecase */)) { return Promise.reject(new Error(nls.localize('unableToMoveCopyError', "Unable to move/copy. File would replace folder it is contained in."))); // catch this corner case! @@ -909,7 +909,7 @@ export class FileService extends Disposable implements IFileService { }); } - del(resource: uri, options?: { useTrash?: boolean, recursive?: boolean }): Thenable { + del(resource: uri, options?: { useTrash?: boolean, recursive?: boolean }): Promise { if (options && options.useTrash) { return this.doMoveItemToTrash(resource); } @@ -917,7 +917,7 @@ export class FileService extends Disposable implements IFileService { return this.doDelete(resource, options && options.recursive); } - private doMoveItemToTrash(resource: uri): Thenable { + private doMoveItemToTrash(resource: uri): Promise { const absolutePath = resource.fsPath; const shell = (require('electron') as any as Electron.RendererInterface).shell; // workaround for being able to run tests out of VSCode debugger @@ -931,10 +931,10 @@ export class FileService extends Disposable implements IFileService { return Promise.resolve(); } - private doDelete(resource: uri, recursive: boolean): Thenable { + private doDelete(resource: uri, recursive: boolean): Promise { const absolutePath = this.toAbsolutePath(resource); - let assertNonRecursiveDelete: Thenable; + let assertNonRecursiveDelete: Promise; if (!recursive) { assertNonRecursiveDelete = pfs.stat(absolutePath).then(stat => { if (!stat.isDirectory()) { @@ -977,11 +977,11 @@ export class FileService extends Disposable implements IFileService { return paths.normalize(resource.fsPath); } - private resolve(resource: uri, options: IResolveFileOptions = Object.create(null)): Thenable { + private resolve(resource: uri, options: IResolveFileOptions = Object.create(null)): Promise { return this.toStatResolver(resource).then(model => model.resolve(options)); } - private toStatResolver(resource: uri): Thenable { + private toStatResolver(resource: uri): Promise { const absolutePath = this.toAbsolutePath(resource); return pfs.statLink(absolutePath).then(({ isSymbolicLink, stat }) => { @@ -1141,7 +1141,7 @@ export class StatResolver { this.etag = etag(size, mtime); } - resolve(options: IResolveFileOptions): Thenable { + resolve(options: IResolveFileOptions): Promise { // General Data const fileStat: IFileStat = { diff --git a/src/vs/workbench/services/files/electron-browser/remoteFileService.ts b/src/vs/workbench/services/files/electron-browser/remoteFileService.ts index 49b7bcbf074..50e9196ad2d 100644 --- a/src/vs/workbench/services/files/electron-browser/remoteFileService.ts +++ b/src/vs/workbench/services/files/electron-browser/remoteFileService.ts @@ -36,7 +36,7 @@ class TypeOnlyStat implements IStat { size: number = 0; } -function toIFileStat(provider: IFileSystemProvider, tuple: [URI, IStat], recurse?: (tuple: [URI, IStat]) => boolean): Thenable { +function toIFileStat(provider: IFileSystemProvider, tuple: [URI, IStat], recurse?: (tuple: [URI, IStat]) => boolean): Promise { const [resource, stat] = tuple; const fileStat: IFileStat = { resource, @@ -70,7 +70,7 @@ function toIFileStat(provider: IFileSystemProvider, tuple: [URI, IStat], recurse return Promise.resolve(fileStat); } -export function toDeepIFileStat(provider: IFileSystemProvider, tuple: [URI, IStat], to: URI[]): Thenable { +export function toDeepIFileStat(provider: IFileSystemProvider, tuple: [URI, IStat], to: URI[]): Promise { const trie = TernarySearchTree.forPaths(); trie.set(tuple[0].toString(), true); @@ -205,7 +205,7 @@ export class RemoteFileService extends FileService { }; } - activateProvider(scheme: string): Thenable { + activateProvider(scheme: string): Promise { return this._extensionService.activateByEvent('onFileSystem:' + scheme); } @@ -269,7 +269,7 @@ export class RemoteFileService extends FileService { }); } - existsFile(resource: URI): Thenable { + existsFile(resource: URI): Promise { if (resource.scheme === Schemas.file) { return super.existsFile(resource); } else { @@ -277,7 +277,7 @@ export class RemoteFileService extends FileService { } } - resolveFile(resource: URI, options?: IResolveFileOptions): Thenable { + resolveFile(resource: URI, options?: IResolveFileOptions): Promise { if (resource.scheme === Schemas.file) { return super.resolveFile(resource, options); } else { @@ -294,7 +294,7 @@ export class RemoteFileService extends FileService { } } - resolveFiles(toResolve: { resource: URI; options?: IResolveFileOptions; }[]): Thenable { + resolveFiles(toResolve: { resource: URI; options?: IResolveFileOptions; }[]): Promise { // soft-groupBy, keep order, don't rearrange/merge groups let groups: (typeof toResolve)[] = []; @@ -307,7 +307,7 @@ export class RemoteFileService extends FileService { group.push(request); } - const promises: Thenable[] = []; + const promises: Promise[] = []; for (const group of groups) { if (group[0].resource.scheme === Schemas.file) { promises.push(super.resolveFiles(group)); @@ -336,7 +336,7 @@ export class RemoteFileService extends FileService { // --- resolve - resolveContent(resource: URI, options?: IResolveContentOptions): Thenable { + resolveContent(resource: URI, options?: IResolveContentOptions): Promise { if (resource.scheme === Schemas.file) { return super.resolveContent(resource, options); } else { @@ -344,7 +344,7 @@ export class RemoteFileService extends FileService { } } - resolveStreamContent(resource: URI, options?: IResolveContentOptions): Thenable { + resolveStreamContent(resource: URI, options?: IResolveContentOptions): Promise { if (resource.scheme === Schemas.file) { return super.resolveStreamContent(resource, options); } else { @@ -438,7 +438,7 @@ export class RemoteFileService extends FileService { return provider; } - createFile(resource: URI, content?: string, options?: ICreateFileOptions): Thenable { + createFile(resource: URI, content?: string, options?: ICreateFileOptions): Promise { if (resource.scheme === Schemas.file) { return super.createFile(resource, content, options); } else { @@ -461,7 +461,7 @@ export class RemoteFileService extends FileService { } } - updateContent(resource: URI, value: string | ITextSnapshot, options?: IUpdateContentOptions): Thenable { + updateContent(resource: URI, value: string | ITextSnapshot, options?: IUpdateContentOptions): Promise { if (resource.scheme === Schemas.file) { return super.updateContent(resource, value, options); } else { @@ -507,7 +507,7 @@ export class RemoteFileService extends FileService { // --- delete - del(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Thenable { + del(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Promise { if (resource.scheme === Schemas.file) { return super.del(resource, options); } else { @@ -519,7 +519,7 @@ export class RemoteFileService extends FileService { } } - readFolder(resource: URI): Thenable { + readFolder(resource: URI): Promise { if (resource.scheme === Schemas.file) { return super.readFolder(resource); } else { @@ -529,7 +529,7 @@ export class RemoteFileService extends FileService { } } - createFolder(resource: URI): Thenable { + createFolder(resource: URI): Promise { if (resource.scheme === Schemas.file) { return super.createFolder(resource); } else { @@ -546,7 +546,7 @@ export class RemoteFileService extends FileService { } } - moveFile(source: URI, target: URI, overwrite?: boolean): Thenable { + moveFile(source: URI, target: URI, overwrite?: boolean): Promise { if (source.scheme !== target.scheme) { return this._doMoveAcrossScheme(source, target); } else if (source.scheme === Schemas.file) { @@ -578,7 +578,7 @@ export class RemoteFileService extends FileService { }); } - private _doMoveAcrossScheme(source: URI, target: URI, overwrite?: boolean): Thenable { + private _doMoveAcrossScheme(source: URI, target: URI, overwrite?: boolean): Promise { return this.copyFile(source, target, overwrite).then(() => { return this.del(source, { recursive: true }); }).then(() => { @@ -589,7 +589,7 @@ export class RemoteFileService extends FileService { }); } - copyFile(source: URI, target: URI, overwrite?: boolean): Thenable { + copyFile(source: URI, target: URI, overwrite?: boolean): Promise { if (source.scheme === target.scheme && source.scheme === Schemas.file) { return super.copyFile(source, target, overwrite); } @@ -646,7 +646,7 @@ export class RemoteFileService extends FileService { }); } - private _activeWatches = new Map, count: number }>(); + private _activeWatches = new Map, count: number }>(); watchFileChanges(resource: URI, opts?: IWatchOptions): void { if (resource.scheme === Schemas.file) { diff --git a/src/vs/workbench/services/files/electron-browser/streams.ts b/src/vs/workbench/services/files/electron-browser/streams.ts index da7005c7faf..eabf557773a 100644 --- a/src/vs/workbench/services/files/electron-browser/streams.ts +++ b/src/vs/workbench/services/files/electron-browser/streams.ts @@ -125,7 +125,7 @@ function createReadable(provider: IFileSystemProvider, resource: URI, position: function createSimpleReadable(provider: IFileSystemProvider, resource: URI, position: number): Readable { return new class extends Readable { - _readOperation: Thenable; + _readOperation: Promise; _read(size?: number): void { if (this._readOperation) { return; diff --git a/src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts b/src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts index f2d0ae09869..ffd35ca59df 100644 --- a/src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts +++ b/src/vs/workbench/services/files/node/watcher/nsfw/nsfwWatcherService.ts @@ -27,7 +27,7 @@ interface IWatcherObjet { } interface IPathWatcher { - ready: Thenable; + ready: Promise; watcher?: IWatcherObjet; ignored: glob.ParsedPattern[]; } @@ -176,8 +176,8 @@ export class NsfwWatcherService implements IWatcherService { }); } - public setRoots(roots: IWatcherRequest[]): Thenable { - const promises: Thenable[] = []; + public setRoots(roots: IWatcherRequest[]): Promise { + const promises: Promise[] = []; const normalizedRoots = this._normalizeRoots(roots); // Gather roots that are not currently being watched @@ -214,12 +214,12 @@ export class NsfwWatcherService implements IWatcherService { return Promise.all(promises).then(() => void 0); } - public setVerboseLogging(enabled: boolean): Thenable { + public setVerboseLogging(enabled: boolean): Promise { this._verboseLogging = enabled; return Promise.resolve(void 0); } - public stop(): Thenable { + public stop(): Promise { for (let path in this._pathWatchers) { let watcher = this._pathWatchers[path]; watcher.ready.then(watcher => watcher.stop()); diff --git a/src/vs/workbench/services/files/node/watcher/nsfw/watcher.ts b/src/vs/workbench/services/files/node/watcher/nsfw/watcher.ts index b921d2bb7b4..366d39fc184 100644 --- a/src/vs/workbench/services/files/node/watcher/nsfw/watcher.ts +++ b/src/vs/workbench/services/files/node/watcher/nsfw/watcher.ts @@ -21,7 +21,7 @@ export interface IWatchError { export interface IWatcherService { watch(options: IWatcherOptions): Event; - setRoots(roots: IWatcherRequest[]): Thenable; - setVerboseLogging(enabled: boolean): Thenable; - stop(): Thenable; + setRoots(roots: IWatcherRequest[]): Promise; + setVerboseLogging(enabled: boolean): Promise; + stop(): Promise; } \ No newline at end of file diff --git a/src/vs/workbench/services/files/node/watcher/nsfw/watcherIpc.ts b/src/vs/workbench/services/files/node/watcher/nsfw/watcherIpc.ts index 501ba00fc5e..691db8f251f 100644 --- a/src/vs/workbench/services/files/node/watcher/nsfw/watcherIpc.ts +++ b/src/vs/workbench/services/files/node/watcher/nsfw/watcherIpc.ts @@ -20,7 +20,7 @@ export class WatcherChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'setRoots': return this.service.setRoots(arg); case 'setVerboseLogging': return this.service.setVerboseLogging(arg); @@ -39,15 +39,15 @@ export class WatcherChannelClient implements IWatcherService { return this.channel.listen('watch', options); } - setVerboseLogging(enable: boolean): Thenable { + setVerboseLogging(enable: boolean): Promise { return this.channel.call('setVerboseLogging', enable); } - setRoots(roots: IWatcherRequest[]): Thenable { + setRoots(roots: IWatcherRequest[]): Promise { return this.channel.call('setRoots', roots); } - stop(): Thenable { + stop(): Promise { return this.channel.call('stop'); } } \ No newline at end of file diff --git a/src/vs/workbench/services/files/node/watcher/unix/chokidarWatcherService.ts b/src/vs/workbench/services/files/node/watcher/unix/chokidarWatcherService.ts index bd1205d67c4..ba4ada4cd68 100644 --- a/src/vs/workbench/services/files/node/watcher/unix/chokidarWatcherService.ts +++ b/src/vs/workbench/services/files/node/watcher/unix/chokidarWatcherService.ts @@ -57,13 +57,13 @@ export class ChokidarWatcherService implements IWatcherService { return this.onWatchEvent; } - public setVerboseLogging(enabled: boolean): Thenable { + public setVerboseLogging(enabled: boolean): Promise { this._verboseLogging = enabled; return Promise.resolve(); } - public setRoots(requests: IWatcherRequest[]): Thenable { + public setRoots(requests: IWatcherRequest[]): Promise { const watchers = Object.create(null); const newRequests: string[] = []; @@ -269,7 +269,7 @@ export class ChokidarWatcherService implements IWatcherService { return watcher; } - public stop(): Thenable { + public stop(): Promise { for (let path in this._watchers) { let watcher = this._watchers[path]; watcher.stop(); diff --git a/src/vs/workbench/services/files/node/watcher/unix/watcher.ts b/src/vs/workbench/services/files/node/watcher/unix/watcher.ts index b921d2bb7b4..366d39fc184 100644 --- a/src/vs/workbench/services/files/node/watcher/unix/watcher.ts +++ b/src/vs/workbench/services/files/node/watcher/unix/watcher.ts @@ -21,7 +21,7 @@ export interface IWatchError { export interface IWatcherService { watch(options: IWatcherOptions): Event; - setRoots(roots: IWatcherRequest[]): Thenable; - setVerboseLogging(enabled: boolean): Thenable; - stop(): Thenable; + setRoots(roots: IWatcherRequest[]): Promise; + setVerboseLogging(enabled: boolean): Promise; + stop(): Promise; } \ No newline at end of file diff --git a/src/vs/workbench/services/files/node/watcher/unix/watcherIpc.ts b/src/vs/workbench/services/files/node/watcher/unix/watcherIpc.ts index 501ba00fc5e..691db8f251f 100644 --- a/src/vs/workbench/services/files/node/watcher/unix/watcherIpc.ts +++ b/src/vs/workbench/services/files/node/watcher/unix/watcherIpc.ts @@ -20,7 +20,7 @@ export class WatcherChannel implements IServerChannel { throw new Error(`Event not found: ${event}`); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'setRoots': return this.service.setRoots(arg); case 'setVerboseLogging': return this.service.setVerboseLogging(arg); @@ -39,15 +39,15 @@ export class WatcherChannelClient implements IWatcherService { return this.channel.listen('watch', options); } - setVerboseLogging(enable: boolean): Thenable { + setVerboseLogging(enable: boolean): Promise { return this.channel.call('setVerboseLogging', enable); } - setRoots(roots: IWatcherRequest[]): Thenable { + setRoots(roots: IWatcherRequest[]): Promise { return this.channel.call('setRoots', roots); } - stop(): Thenable { + stop(): Promise { return this.channel.call('stop'); } } \ No newline at end of file diff --git a/src/vs/workbench/services/group/common/editorGroupsService.ts b/src/vs/workbench/services/group/common/editorGroupsService.ts index 091977929c5..77759b057c8 100644 --- a/src/vs/workbench/services/group/common/editorGroupsService.ts +++ b/src/vs/workbench/services/group/common/editorGroupsService.ts @@ -379,7 +379,7 @@ export interface IEditorGroup { * @returns a promise that resolves around an IEditor instance unless * the call failed, or the editor was not opened as active editor. */ - openEditor(editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions): Thenable; + openEditor(editor: IEditorInput, options?: IEditorOptions | ITextEditorOptions): Promise; /** * Opens editors in this group. @@ -389,7 +389,7 @@ export interface IEditorGroup { * a group can only ever have one active editor, even if many editors are * opened, the result will only be one editor. */ - openEditors(editors: IEditorInputWithOptions[]): Thenable; + openEditors(editors: IEditorInputWithOptions[]): Promise; /** * Find out if the provided editor is opened in the group. @@ -429,7 +429,7 @@ export interface IEditorGroup { * * @returns a promise when the editor is closed. */ - closeEditor(editor?: IEditorInput): Thenable; + closeEditor(editor?: IEditorInput): Promise; /** * Closes specific editors in this group. This may trigger a confirmation dialog if @@ -437,7 +437,7 @@ export interface IEditorGroup { * * @returns a promise when all editors are closed. */ - closeEditors(editors: IEditorInput[] | ICloseEditorsFilter): Thenable; + closeEditors(editors: IEditorInput[] | ICloseEditorsFilter): Promise; /** * Closes all editors from the group. This may trigger a confirmation dialog if @@ -445,7 +445,7 @@ export interface IEditorGroup { * * @returns a promise when all editors are closed. */ - closeAllEditors(): Thenable; + closeAllEditors(): Promise; /** * Replaces editors in this group with the provided replacement. @@ -455,7 +455,7 @@ export interface IEditorGroup { * @returns a promise that is resolved when the replaced active * editor (if any) has finished loading. */ - replaceEditors(editors: IEditorReplacement[]): Thenable; + replaceEditors(editors: IEditorReplacement[]): Promise; /** * Set an editor to be pinned. A pinned editor is not replaced diff --git a/src/vs/workbench/services/group/test/browser/editorGroupsService.test.ts b/src/vs/workbench/services/group/test/browser/editorGroupsService.test.ts index 15dc2897979..173e001cdec 100644 --- a/src/vs/workbench/services/group/test/browser/editorGroupsService.test.ts +++ b/src/vs/workbench/services/group/test/browser/editorGroupsService.test.ts @@ -26,7 +26,7 @@ export class TestEditorControl extends BaseEditor { constructor(@ITelemetryService telemetryService: ITelemetryService) { super('MyFileEditorForEditorGroupService', NullTelemetryService, new TestThemeService(), new TestStorageService()); } - setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Thenable { + setInput(input: EditorInput, options: EditorOptions, token: CancellationToken): Promise { super.setInput(input, options, token); return input.resolve().then(() => void 0); @@ -42,7 +42,7 @@ export class TestEditorInput extends EditorInput implements IFileEditorInput { constructor(private resource: URI) { super(); } getTypeId() { return 'testEditorInputForEditorGroupService'; } - resolve(): Thenable { return Promise.resolve(); } + resolve(): Promise { return Promise.resolve(); } matches(other: TestEditorInput): boolean { return other && this.resource.toString() === other.resource.toString() && other instanceof TestEditorInput; } setEncoding(encoding: string) { } getEncoding(): string { return null; } diff --git a/src/vs/workbench/services/history/electron-browser/history.ts b/src/vs/workbench/services/history/electron-browser/history.ts index 6299cccc5e7..8593497d206 100644 --- a/src/vs/workbench/services/history/electron-browser/history.ts +++ b/src/vs/workbench/services/history/electron-browser/history.ts @@ -406,7 +406,7 @@ export class HistoryService extends Disposable implements IHistoryService { always(this.doNavigate(this.stack[this.index], !acrossEditors), () => this.navigatingInStack = false); } - private doNavigate(location: IStackEntry, withSelection: boolean): Thenable { + private doNavigate(location: IStackEntry, withSelection: boolean): Promise { const options: ITextEditorOptions = { revealIfOpened: true // support to navigate across editor groups }; diff --git a/src/vs/workbench/services/issue/common/issue.ts b/src/vs/workbench/services/issue/common/issue.ts index 6d34b184bf9..2cc057f6bcc 100644 --- a/src/vs/workbench/services/issue/common/issue.ts +++ b/src/vs/workbench/services/issue/common/issue.ts @@ -10,6 +10,6 @@ export const IWorkbenchIssueService = createDecorator('w export interface IWorkbenchIssueService { _serviceBrand: any; - openReporter(dataOverrides?: Partial): Thenable; - openProcessExplorer(): Thenable; + openReporter(dataOverrides?: Partial): Promise; + openProcessExplorer(): Promise; } diff --git a/src/vs/workbench/services/issue/electron-browser/workbenchIssueService.ts b/src/vs/workbench/services/issue/electron-browser/workbenchIssueService.ts index 681a73dbfda..6193a6c7136 100644 --- a/src/vs/workbench/services/issue/electron-browser/workbenchIssueService.ts +++ b/src/vs/workbench/services/issue/electron-browser/workbenchIssueService.ts @@ -56,7 +56,7 @@ export class WorkbenchIssueService implements IWorkbenchIssueService { }); } - openProcessExplorer(): Thenable { + openProcessExplorer(): Promise { const theme = this.themeService.getTheme(); const data: ProcessExplorerData = { pid: this.windowService.getConfiguration().mainPid, diff --git a/src/vs/workbench/services/keybinding/common/keybindingEditing.ts b/src/vs/workbench/services/keybinding/common/keybindingEditing.ts index b7e3ec19337..3e7f51d3990 100644 --- a/src/vs/workbench/services/keybinding/common/keybindingEditing.ts +++ b/src/vs/workbench/services/keybinding/common/keybindingEditing.ts @@ -32,11 +32,11 @@ export interface IKeybindingEditingService { _serviceBrand: ServiceIdentifier; - editKeybinding(key: string, keybindingItem: ResolvedKeybindingItem): Thenable; + editKeybinding(key: string, keybindingItem: ResolvedKeybindingItem): Promise; - removeKeybinding(keybindingItem: ResolvedKeybindingItem): Thenable; + removeKeybinding(keybindingItem: ResolvedKeybindingItem): Promise; - resetKeybinding(keybindingItem: ResolvedKeybindingItem): Thenable; + resetKeybinding(keybindingItem: ResolvedKeybindingItem): Promise; } export class KeybindingsEditingService extends Disposable implements IKeybindingEditingService { @@ -57,19 +57,19 @@ export class KeybindingsEditingService extends Disposable implements IKeybinding this.queue = new Queue(); } - editKeybinding(key: string, keybindingItem: ResolvedKeybindingItem): Thenable { + editKeybinding(key: string, keybindingItem: ResolvedKeybindingItem): Promise { return this.queue.queue(() => this.doEditKeybinding(key, keybindingItem)); // queue up writes to prevent race conditions } - resetKeybinding(keybindingItem: ResolvedKeybindingItem): Thenable { + resetKeybinding(keybindingItem: ResolvedKeybindingItem): Promise { return this.queue.queue(() => this.doResetKeybinding(keybindingItem)); // queue up writes to prevent race conditions } - removeKeybinding(keybindingItem: ResolvedKeybindingItem): Thenable { + removeKeybinding(keybindingItem: ResolvedKeybindingItem): Promise { return this.queue.queue(() => this.doRemoveKeybinding(keybindingItem)); // queue up writes to prevent race conditions } - private doEditKeybinding(key: string, keybindingItem: ResolvedKeybindingItem): Thenable { + private doEditKeybinding(key: string, keybindingItem: ResolvedKeybindingItem): Promise { return this.resolveAndValidate() .then(reference => { const model = reference.object.textEditorModel; @@ -83,7 +83,7 @@ export class KeybindingsEditingService extends Disposable implements IKeybinding }); } - private doRemoveKeybinding(keybindingItem: ResolvedKeybindingItem): Thenable { + private doRemoveKeybinding(keybindingItem: ResolvedKeybindingItem): Promise { return this.resolveAndValidate() .then(reference => { const model = reference.object.textEditorModel; @@ -96,7 +96,7 @@ export class KeybindingsEditingService extends Disposable implements IKeybinding }); } - private doResetKeybinding(keybindingItem: ResolvedKeybindingItem): Thenable { + private doResetKeybinding(keybindingItem: ResolvedKeybindingItem): Promise { return this.resolveAndValidate() .then(reference => { const model = reference.object.textEditorModel; @@ -108,7 +108,7 @@ export class KeybindingsEditingService extends Disposable implements IKeybinding }); } - private save(): Thenable { + private save(): Promise { return this.textFileService.save(this.resource); } @@ -197,16 +197,16 @@ export class KeybindingsEditingService extends Disposable implements IKeybinding } - private resolveModelReference(): Thenable> { + private resolveModelReference(): Promise> { return this.fileService.existsFile(this.resource) .then(exists => { const EOL = this.configurationService.getValue('files', { overrideIdentifier: 'json' })['eol']; - const result: Thenable = exists ? Promise.resolve(null) : this.fileService.updateContent(this.resource, this.getEmptyContent(EOL), { encoding: 'utf8' }); + const result: Promise = exists ? Promise.resolve(null) : this.fileService.updateContent(this.resource, this.getEmptyContent(EOL), { encoding: 'utf8' }); return result.then(() => this.textModelResolverService.createModelReference(this.resource)); }); } - private resolveAndValidate(): Thenable> { + private resolveAndValidate(): Promise> { // Target cannot be dirty if not writing into buffer if (this.textFileService.isDirty(this.resource)) { diff --git a/src/vs/workbench/services/preferences/browser/preferencesService.ts b/src/vs/workbench/services/preferences/browser/preferencesService.ts index cd0ebbf40f4..fa538e2d316 100644 --- a/src/vs/workbench/services/preferences/browser/preferencesService.ts +++ b/src/vs/workbench/services/preferences/browser/preferencesService.ts @@ -103,7 +103,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic return this.getEditableSettingsURI(ConfigurationTarget.WORKSPACE_FOLDER, resource); } - resolveModel(uri: URI): Thenable { + resolveModel(uri: URI): Promise { if (this.isDefaultSettingsResource(uri)) { const target = this.getConfigurationTargetFromDefaultSettingsResource(uri); @@ -150,7 +150,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic return Promise.resolve(null); } - createPreferencesEditorModel(uri: URI): Thenable> { + createPreferencesEditorModel(uri: URI): Promise> { if (this.isDefaultSettingsResource(uri)) { return this.createDefaultSettingsEditorModel(uri); } @@ -171,15 +171,15 @@ export class PreferencesService extends Disposable implements IPreferencesServic return Promise.resolve>(null); } - openRawDefaultSettings(): Thenable { + openRawDefaultSettings(): Promise { return this.editorService.openEditor({ resource: this.defaultSettingsRawResource }); } - openRawUserSettings(): Thenable { + openRawUserSettings(): Promise { return this.editorService.openEditor({ resource: this.userSettingsResource }); } - openSettings(jsonEditor?: boolean): Thenable { + openSettings(jsonEditor?: boolean): Promise { jsonEditor = typeof jsonEditor === 'undefined' ? this.configurationService.getValue('workbench.settings.editor') === 'json' : jsonEditor; @@ -194,13 +194,13 @@ export class PreferencesService extends Disposable implements IPreferencesServic return this.openOrSwitchSettings(target, resource); } - private openSettings2(): Thenable { + private openSettings2(): Promise { const input = this.settingsEditor2Input; return this.editorGroupService.activeGroup.openEditor(input) .then(() => this.editorGroupService.activeGroup.activeControl); } - openGlobalSettings(jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Thenable { + openGlobalSettings(jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Promise { jsonEditor = typeof jsonEditor === 'undefined' ? this.configurationService.getValue('workbench.settings.editor') === 'json' : jsonEditor; @@ -210,7 +210,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic this.openOrSwitchSettings2(ConfigurationTarget.USER, undefined, options, group); } - openWorkspaceSettings(jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Thenable { + openWorkspaceSettings(jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Promise { jsonEditor = typeof jsonEditor === 'undefined' ? this.configurationService.getValue('workbench.settings.editor') === 'json' : jsonEditor; @@ -225,7 +225,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic this.openOrSwitchSettings2(ConfigurationTarget.WORKSPACE, undefined, options, group); } - openFolderSettings(folder: URI, jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Thenable { + openFolderSettings(folder: URI, jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Promise { jsonEditor = typeof jsonEditor === 'undefined' ? this.configurationService.getValue('workbench.settings.editor') === 'json' : jsonEditor; @@ -235,7 +235,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic this.openOrSwitchSettings2(ConfigurationTarget.WORKSPACE_FOLDER, folder, options, group); } - switchSettings(target: ConfigurationTarget, resource: URI, jsonEditor?: boolean): Thenable { + switchSettings(target: ConfigurationTarget, resource: URI, jsonEditor?: boolean): Promise { if (!jsonEditor) { return this.doOpenSettings2(target, resource).then(() => null); } @@ -248,7 +248,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic } } - openGlobalKeybindingSettings(textual: boolean): Thenable { + openGlobalKeybindingSettings(textual: boolean): Promise { /* __GDPR__ "openKeybindings" : { "textual" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true } @@ -278,7 +278,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic return this.editorService.openEditor(this.instantiationService.createInstance(KeybindingsEditorInput), { pinned: true, revealIfOpened: true }).then(() => null); } - openDefaultKeybindingsFile(): Thenable { + openDefaultKeybindingsFile(): Promise { return this.editorService.openEditor({ resource: this.defaultKeybindingsResource, label: nls.localize('defaultKeybindings', "Default Keybindings") }); } @@ -300,7 +300,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic })); } - private openOrSwitchSettings(configurationTarget: ConfigurationTarget, resource: URI, options?: ISettingsEditorOptions, group: IEditorGroup = this.editorGroupService.activeGroup): Thenable { + private openOrSwitchSettings(configurationTarget: ConfigurationTarget, resource: URI, options?: ISettingsEditorOptions, group: IEditorGroup = this.editorGroupService.activeGroup): Promise { const editorInput = this.getActiveSettingsEditorInput(group); if (editorInput && editorInput.master.getResource().fsPath !== resource.fsPath) { return this.doSwitchSettings(configurationTarget, resource, editorInput, group, options); @@ -308,11 +308,11 @@ export class PreferencesService extends Disposable implements IPreferencesServic return this.doOpenSettings(configurationTarget, resource, options, group); } - private openOrSwitchSettings2(configurationTarget: ConfigurationTarget, folderUri?: URI, options?: ISettingsEditorOptions, group: IEditorGroup = this.editorGroupService.activeGroup): Thenable { + private openOrSwitchSettings2(configurationTarget: ConfigurationTarget, folderUri?: URI, options?: ISettingsEditorOptions, group: IEditorGroup = this.editorGroupService.activeGroup): Promise { return this.doOpenSettings2(configurationTarget, folderUri, options, group); } - private doOpenSettings(configurationTarget: ConfigurationTarget, resource: URI, options?: ISettingsEditorOptions, group?: IEditorGroup): Thenable { + private doOpenSettings(configurationTarget: ConfigurationTarget, resource: URI, options?: ISettingsEditorOptions, group?: IEditorGroup): Promise { const openDefaultSettings = !!this.configurationService.getValue(DEFAULT_SETTINGS_EDITOR_SETTING); return this.getOrCreateEditableSettingsEditorInput(configurationTarget, resource) @@ -340,7 +340,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic return this.instantiationService.createInstance(Settings2EditorModel, this.getDefaultSettings(ConfigurationTarget.USER)); } - private doOpenSettings2(target: ConfigurationTarget, folderUri: URI | undefined, options?: IEditorOptions, group?: IEditorGroup): Thenable { + private doOpenSettings2(target: ConfigurationTarget, folderUri: URI | undefined, options?: IEditorOptions, group?: IEditorGroup): Promise { const input = this.settingsEditor2Input; const settingsOptions: ISettingsEditorOptions = { ...options, @@ -351,7 +351,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic return this.editorService.openEditor(input, SettingsEditorOptions.create(settingsOptions), group); } - private doSwitchSettings(target: ConfigurationTarget, resource: URI, input: PreferencesEditorInput, group: IEditorGroup, options?: ISettingsEditorOptions): Thenable { + private doSwitchSettings(target: ConfigurationTarget, resource: URI, input: PreferencesEditorInput, group: IEditorGroup, options?: ISettingsEditorOptions): Promise { return this.getOrCreateEditableSettingsEditorInput(target, this.getEditableSettingsURI(target, resource)) .then(toInput => { return group.openEditor(input).then(() => { @@ -426,12 +426,12 @@ export class PreferencesService extends Disposable implements IPreferencesServic return target === ConfigurationTarget.WORKSPACE_FOLDER ? nls.localize('folderSettingsName', "{0} (Folder Settings)", name) : name; } - private getOrCreateEditableSettingsEditorInput(target: ConfigurationTarget, resource: URI): Thenable { + private getOrCreateEditableSettingsEditorInput(target: ConfigurationTarget, resource: URI): Promise { return this.createSettingsIfNotExists(target, resource) .then(() => this.editorService.createInput({ resource })); } - private createEditableSettingsEditorModel(configurationTarget: ConfigurationTarget, resource: URI): Thenable { + private createEditableSettingsEditorModel(configurationTarget: ConfigurationTarget, resource: URI): Promise { const settingsUri = this.getEditableSettingsURI(configurationTarget, resource); if (settingsUri) { const workspace = this.contextService.getWorkspace(); @@ -445,7 +445,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic return Promise.resolve(null); } - private createDefaultSettingsEditorModel(defaultSettingsUri: URI): Thenable { + private createDefaultSettingsEditorModel(defaultSettingsUri: URI): Promise { return this.textModelResolverService.createModelReference(defaultSettingsUri) .then(reference => { const target = this.getConfigurationTargetFromDefaultSettingsResource(defaultSettingsUri); @@ -489,7 +489,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic return null; } - private createSettingsIfNotExists(target: ConfigurationTarget, resource: URI): Thenable { + private createSettingsIfNotExists(target: ConfigurationTarget, resource: URI): Promise { if (this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE && target === ConfigurationTarget.WORKSPACE) { const workspaceConfig = this.contextService.getWorkspace().configuration; if (!workspaceConfig) { @@ -507,7 +507,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic return this.createIfNotExists(resource, emptyEditableSettingsContent).then(() => { }); } - private createIfNotExists(resource: URI, contents: string): Thenable { + private createIfNotExists(resource: URI, contents: string): Promise { return this.fileService.resolveContent(resource, { acceptTextOnly: true }).then(void 0, error => { if ((error).fileOperationResult === FileOperationResult.FILE_NOT_FOUND) { return this.fileService.updateContent(resource, contents).then(void 0, error => { @@ -535,7 +535,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic ]; } - private addLanguageOverrideEntry(language: string, settingsModel: IPreferencesEditorModel, codeEditor: ICodeEditor): Thenable { + private addLanguageOverrideEntry(language: string, settingsModel: IPreferencesEditorModel, codeEditor: ICodeEditor): Promise { const languageKey = `[${language}]`; let setting = settingsModel.getPreference(languageKey); const model = codeEditor.getModel(); diff --git a/src/vs/workbench/services/preferences/common/keybindingsEditorModel.ts b/src/vs/workbench/services/preferences/common/keybindingsEditorModel.ts index f6b5d30cf38..004a43e4305 100644 --- a/src/vs/workbench/services/preferences/common/keybindingsEditorModel.ts +++ b/src/vs/workbench/services/preferences/common/keybindingsEditorModel.ts @@ -161,7 +161,7 @@ export class KeybindingsEditorModel extends EditorModel { return result; } - public resolve(editorActionsLabels: { [id: string]: string; }): Thenable { + public resolve(editorActionsLabels: { [id: string]: string; }): Promise { const workbenchActionsRegistry = Registry.as(ActionExtensions.WorkbenchActions); this._keybindingItemsSortedByPrecedence = []; diff --git a/src/vs/workbench/services/preferences/common/preferences.ts b/src/vs/workbench/services/preferences/common/preferences.ts index e816d316601..e001698baa3 100644 --- a/src/vs/workbench/services/preferences/common/preferences.ts +++ b/src/vs/workbench/services/preferences/common/preferences.ts @@ -201,18 +201,18 @@ export interface IPreferencesService { workspaceSettingsResource: URI; getFolderSettingsResource(resource: URI): URI; - resolveModel(uri: URI): Thenable; - createPreferencesEditorModel(uri: URI): Thenable>; + resolveModel(uri: URI): Promise; + createPreferencesEditorModel(uri: URI): Promise>; createSettings2EditorModel(): Settings2EditorModel; // TODO - openRawDefaultSettings(): Thenable; - openSettings(jsonEditor?: boolean): Thenable; - openGlobalSettings(jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Thenable; - openWorkspaceSettings(jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Thenable; - openFolderSettings(folder: URI, jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Thenable; - switchSettings(target: ConfigurationTarget, resource: URI, jsonEditor?: boolean): Thenable; - openGlobalKeybindingSettings(textual: boolean): Thenable; - openDefaultKeybindingsFile(): Thenable; + openRawDefaultSettings(): Promise; + openSettings(jsonEditor?: boolean): Promise; + openGlobalSettings(jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Promise; + openWorkspaceSettings(jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Promise; + openFolderSettings(folder: URI, jsonEditor?: boolean, options?: ISettingsEditorOptions, group?: IEditorGroup): Promise; + switchSettings(target: ConfigurationTarget, resource: URI, jsonEditor?: boolean): Promise; + openGlobalKeybindingSettings(textual: boolean): Promise; + openDefaultKeybindingsFile(): Promise; configureSettingsForLanguage(language: string): void; } diff --git a/src/vs/workbench/services/preferences/common/preferencesEditorInput.ts b/src/vs/workbench/services/preferences/common/preferencesEditorInput.ts index 06bb10d0a47..0ec4aed029b 100644 --- a/src/vs/workbench/services/preferences/common/preferencesEditorInput.ts +++ b/src/vs/workbench/services/preferences/common/preferencesEditorInput.ts @@ -69,7 +69,7 @@ export class KeybindingsEditorInput extends EditorInput { return nls.localize('keybindingsInputName', "Keyboard Shortcuts"); } - resolve(): Thenable { + resolve(): Promise { return Promise.resolve(this.keybindingsModel); } @@ -107,7 +107,7 @@ export class SettingsEditor2Input extends EditorInput { return nls.localize('settingsEditor2InputName', "Settings"); } - resolve(): Thenable { + resolve(): Promise { return Promise.resolve(this._settingsModel); } diff --git a/src/vs/workbench/services/progress/browser/progressService.ts b/src/vs/workbench/services/progress/browser/progressService.ts index f2432e817eb..e4b63c6f079 100644 --- a/src/vs/workbench/services/progress/browser/progressService.ts +++ b/src/vs/workbench/services/progress/browser/progressService.ts @@ -15,7 +15,7 @@ interface ProgressState { total?: number; worked?: number; done?: boolean; - whilePromise?: Thenable; + whilePromise?: Promise; whileStart?: number; whileDelay?: number; } @@ -205,7 +205,7 @@ export class ScopedProgressService extends ScopedService implements IProgressSer }; } - showWhile(promise: Thenable, delay?: number): Thenable { + showWhile(promise: Promise, delay?: number): Promise { let stack: boolean = !!this.progressState.whilePromise; // Reset State @@ -286,7 +286,7 @@ export class ProgressService implements IProgressService { }; } - showWhile(promise: Thenable, delay?: number): Thenable { + showWhile(promise: Promise, delay?: number): Promise { const stop = () => { this.progressbar.stop().hide(); }; diff --git a/src/vs/workbench/services/progress/browser/progressService2.ts b/src/vs/workbench/services/progress/browser/progressService2.ts index c7ec6fba35c..7a5b5a94d08 100644 --- a/src/vs/workbench/services/progress/browser/progressService2.ts +++ b/src/vs/workbench/services/progress/browser/progressService2.ts @@ -30,7 +30,7 @@ export class ProgressService2 implements IProgressService2 { @IStatusbarService private readonly _statusbarService: IStatusbarService, ) { } - withProgress

, R=any>(options: IProgressOptions, task: (progress: IProgress) => P, onDidCancel?: () => void): P { + withProgress

, R=any>(options: IProgressOptions, task: (progress: IProgress) => P, onDidCancel?: () => void): P { const { location } = options; if (typeof location === 'string') { @@ -59,7 +59,7 @@ export class ProgressService2 implements IProgressService2 { } } - private _withWindowProgress

, R=any>(options: IProgressOptions, callback: (progress: IProgress<{ message?: string }>) => P): P { + private _withWindowProgress

, R=any>(options: IProgressOptions, callback: (progress: IProgress<{ message?: string }>) => P): P { const task: [IProgressOptions, Progress] = [options, new Progress(() => this._updateWindowProgress())]; @@ -128,7 +128,7 @@ export class ProgressService2 implements IProgressService2 { } } - private _withNotificationProgress

, R=any>(options: IProgressOptions, callback: (progress: IProgress<{ message?: string, increment?: number }>) => P, onDidCancel?: () => void): P { + private _withNotificationProgress

, R=any>(options: IProgressOptions, callback: (progress: IProgress<{ message?: string, increment?: number }>) => P, onDidCancel?: () => void): P { const toDispose: IDisposable[] = []; const createNotification = (message: string, increment?: number): INotificationHandle => { @@ -143,7 +143,7 @@ export class ProgressService2 implements IProgressService2 { super('progress.cancel', localize('cancel', "Cancel"), null, true); } - run(): Thenable { + run(): Promise { if (typeof onDidCancel === 'function') { onDidCancel(); } @@ -223,7 +223,7 @@ export class ProgressService2 implements IProgressService2 { return p; } - private _withViewletProgress

, R=any>(viewletId: string, task: (progress: IProgress<{ message?: string }>) => P): P { + private _withViewletProgress

, R=any>(viewletId: string, task: (progress: IProgress<{ message?: string }>) => P): P { const promise = task(emptyProgress); diff --git a/src/vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl.ts b/src/vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl.ts index 6d21a8fa62a..b34f4545be5 100644 --- a/src/vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl.ts +++ b/src/vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl.ts @@ -40,8 +40,8 @@ export class RemoteAgentService implements IRemoteAgentService { class RemoteAgentConnection extends Disposable implements IRemoteAgentConnection { readonly remoteAuthority: string; - private _connection: Thenable> | null; - private _environment: Thenable | null; + private _connection: Promise> | null; + private _environment: Promise | null; constructor( remoteAuthority: string, @@ -55,7 +55,7 @@ class RemoteAgentConnection extends Disposable implements IRemoteAgentConnection this._environment = null; } - getEnvironment(): Thenable { + getEnvironment(): Promise { if (!this._environment) { const client = new RemoteExtensionEnvironmentChannelClient(this.getChannel('remoteextensionsenvironment')); @@ -74,7 +74,7 @@ class RemoteAgentConnection extends Disposable implements IRemoteAgentConnection this._getOrCreateConnection().then(client => client.registerChannel(channelName, channel)); } - private _getOrCreateConnection(): Thenable> { + private _getOrCreateConnection(): Promise> { if (!this._connection) { this._connection = this._remoteAuthorityResolverService.resolveAuthority(this.remoteAuthority).then((resolvedAuthority) => { return connectRemoteAgentManagement(this.remoteAuthority, resolvedAuthority.host, resolvedAuthority.port, `renderer`); diff --git a/src/vs/workbench/services/remote/node/remoteAgentEnvironmentChannel.ts b/src/vs/workbench/services/remote/node/remoteAgentEnvironmentChannel.ts index 321d169c711..d9ae2e0d561 100644 --- a/src/vs/workbench/services/remote/node/remoteAgentEnvironmentChannel.ts +++ b/src/vs/workbench/services/remote/node/remoteAgentEnvironmentChannel.ts @@ -25,7 +25,7 @@ export class RemoteExtensionEnvironmentChannelClient { constructor(private channel: IChannel) { } - getEnvironmentData(remoteAuthority: string, extensionDevelopmentPath?: URI): Thenable { + getEnvironmentData(remoteAuthority: string, extensionDevelopmentPath?: URI): Promise { return this.channel.call('getEnvironmentData', [remoteAuthority, extensionDevelopmentPath]) .then((data: IRemoteAgentEnvironmentDTO): IRemoteAgentEnvironment => { return { diff --git a/src/vs/workbench/services/remote/node/remoteAgentService.ts b/src/vs/workbench/services/remote/node/remoteAgentService.ts index 836bc845e99..c9acd0e18d1 100644 --- a/src/vs/workbench/services/remote/node/remoteAgentService.ts +++ b/src/vs/workbench/services/remote/node/remoteAgentService.ts @@ -35,7 +35,7 @@ export interface IRemoteAgentService { export interface IRemoteAgentConnection { readonly remoteAuthority: string; - getEnvironment(): Thenable; + getEnvironment(): Promise; getChannel(channelName: string): T; registerChannel>(channelName: string, channel: T); diff --git a/src/vs/workbench/services/scm/common/scm.ts b/src/vs/workbench/services/scm/common/scm.ts index 915c7c8230f..30efc419ad4 100644 --- a/src/vs/workbench/services/scm/common/scm.ts +++ b/src/vs/workbench/services/scm/common/scm.ts @@ -12,7 +12,7 @@ import { ColorIdentifier } from 'vs/platform/theme/common/colorRegistry'; import { ISequence } from 'vs/base/common/sequence'; export interface IBaselineResourceProvider { - getBaselineResource(resource: URI): Thenable; + getBaselineResource(resource: URI): Promise; } export const ISCMService = createDecorator('scm'); @@ -33,7 +33,7 @@ export interface ISCMResource { readonly resourceGroup: ISCMResourceGroup; readonly sourceUri: URI; readonly decorations: ISCMResourceDecorations; - open(): Thenable; + open(): Promise; } export interface ISCMResourceGroup extends ISequence { @@ -63,7 +63,7 @@ export interface ISCMProvider extends IDisposable { readonly statusBarCommands?: Command[]; readonly onDidChange: Event; - getOriginalResource(uri: URI): Thenable; + getOriginalResource(uri: URI): Promise; } export const enum InputValidationType { @@ -78,7 +78,7 @@ export interface IInputValidation { } export interface IInputValidator { - (value: string, cursorPosition: number): Thenable; + (value: string, cursorPosition: number): Promise; } export interface ISCMInput { diff --git a/src/vs/workbench/services/search/node/legacy/worker/searchWorkerIpc.ts b/src/vs/workbench/services/search/node/legacy/worker/searchWorkerIpc.ts index 1a8fb436fd6..f255eab7b6a 100644 --- a/src/vs/workbench/services/search/node/legacy/worker/searchWorkerIpc.ts +++ b/src/vs/workbench/services/search/node/legacy/worker/searchWorkerIpc.ts @@ -24,9 +24,9 @@ export interface ISearchWorkerSearchResult { } export interface ISearchWorker { - initialize(): Thenable; - search(args: ISearchWorkerSearchArgs): Thenable; - cancel(): Thenable; + initialize(): Promise; + search(args: ISearchWorkerSearchArgs): Promise; + cancel(): Promise; } export class SearchWorkerChannel implements IServerChannel { @@ -50,15 +50,15 @@ export class SearchWorkerChannel implements IServerChannel { export class SearchWorkerChannelClient implements ISearchWorker { constructor(private channel: IChannel) { } - initialize(): Thenable { + initialize(): Promise { return this.channel.call('initialize'); } - search(args: ISearchWorkerSearchArgs): Thenable { + search(args: ISearchWorkerSearchArgs): Promise { return this.channel.call('search', args); } - cancel(): Thenable { + cancel(): Promise { return this.channel.call('cancel'); } } diff --git a/src/vs/workbench/services/search/node/ripgrepSearchProvider.ts b/src/vs/workbench/services/search/node/ripgrepSearchProvider.ts index 0c3478effa6..56651b440d0 100644 --- a/src/vs/workbench/services/search/node/ripgrepSearchProvider.ts +++ b/src/vs/workbench/services/search/node/ripgrepSearchProvider.ts @@ -20,7 +20,7 @@ export class RipgrepSearchProvider implements vscode.TextSearchProvider { return this.withToken(token, token => engine.provideTextSearchResults(query, options, progress, token)); } - private async withToken(token: vscode.CancellationToken, fn: (token: vscode.CancellationToken) => Thenable): Promise { + private async withToken(token: vscode.CancellationToken, fn: (token: vscode.CancellationToken) => Promise): Promise { const merged = mergedTokenSource(token); this.inProgress.add(merged); const result = await fn(merged.token); diff --git a/src/vs/workbench/services/search/node/ripgrepTextSearchEngine.ts b/src/vs/workbench/services/search/node/ripgrepTextSearchEngine.ts index cc50d58f16e..b8064f40895 100644 --- a/src/vs/workbench/services/search/node/ripgrepTextSearchEngine.ts +++ b/src/vs/workbench/services/search/node/ripgrepTextSearchEngine.ts @@ -22,7 +22,7 @@ export class RipgrepTextSearchEngine { constructor(private outputChannel: IOutputChannel) { } - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { this.outputChannel.appendLine(`provideTextSearchResults ${query.pattern}, ${JSON.stringify({ ...options, ...{ diff --git a/src/vs/workbench/services/search/node/search.ts b/src/vs/workbench/services/search/node/search.ts index 631a515b463..965d5c0a6bf 100644 --- a/src/vs/workbench/services/search/node/search.ts +++ b/src/vs/workbench/services/search/node/search.ts @@ -16,7 +16,7 @@ export interface ITelemetryEvent { export interface IRawSearchService { fileSearch(search: IRawFileQuery): Event; textSearch(search: IRawTextQuery): Event; - clearCache(cacheKey: string): Thenable; + clearCache(cacheKey: string): Promise; } export interface IRawFileMatch { diff --git a/src/vs/workbench/services/search/node/searchIpc.ts b/src/vs/workbench/services/search/node/searchIpc.ts index 484aea61897..d6ef91388c6 100644 --- a/src/vs/workbench/services/search/node/searchIpc.ts +++ b/src/vs/workbench/services/search/node/searchIpc.ts @@ -20,7 +20,7 @@ export class SearchChannel implements IServerChannel { throw new Error('Event not found'); } - call(_, command: string, arg?: any): Thenable { + call(_, command: string, arg?: any): Promise { switch (command) { case 'clearCache': return this.service.clearCache(arg); } @@ -40,7 +40,7 @@ export class SearchChannelClient implements IRawSearchService { return this.channel.listen('textSearch', search); } - clearCache(cacheKey: string): Thenable { + clearCache(cacheKey: string): Promise { return this.channel.call('clearCache', cacheKey); } } \ No newline at end of file diff --git a/src/vs/workbench/services/search/node/searchService.ts b/src/vs/workbench/services/search/node/searchService.ts index 8fb29ea2bc2..c6bd9d7437d 100644 --- a/src/vs/workbench/services/search/node/searchService.ts +++ b/src/vs/workbench/services/search/node/searchService.ts @@ -123,7 +123,7 @@ export class SearchService extends Disposable implements ISearchService { private doSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (item: ISearchProgressItem) => void): Promise { const schemesInQuery = this.getSchemesInQuery(query); - const providerActivations: Thenable[] = [Promise.resolve(null)]; + const providerActivations: Promise[] = [Promise.resolve(null)]; schemesInQuery.forEach(scheme => providerActivations.push(this.extensionService.activateByEvent(`onSearch:${scheme}`))); providerActivations.push(this.extensionService.activateByEvent('onSearch:file')); @@ -191,7 +191,7 @@ export class SearchService extends Disposable implements ISearchService { const e2eSW = StopWatch.create(false); const diskSearchQueries: IFolderQuery[] = []; - const searchPs: Thenable[] = []; + const searchPs: Promise[] = []; const fqs = this.groupFolderQueriesByScheme(query); keys(fqs).forEach(scheme => { @@ -601,7 +601,7 @@ export class DiskSearch implements ISearchResultProvider { return fileMatch; } - public clearCache(cacheKey: string): Thenable { + public clearCache(cacheKey: string): Promise { return this.raw.clearCache(cacheKey); } } diff --git a/src/vs/workbench/services/textfile/common/textFileEditorModel.ts b/src/vs/workbench/services/textfile/common/textFileEditorModel.ts index 2d7cc54f0c2..df3727422ac 100644 --- a/src/vs/workbench/services/textfile/common/textFileEditorModel.ts +++ b/src/vs/workbench/services/textfile/common/textFileEditorModel.ts @@ -70,7 +70,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil private saveSequentializer: SaveSequentializer; private disposed: boolean; private lastSaveAttemptTime: number; - private createTextEditorModelPromise: Thenable; + private createTextEditorModelPromise: Promise; private inConflictMode: boolean; private inOrphanMode: boolean; private inErrorMode: boolean; @@ -150,7 +150,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil } if (fileEventImpactsModel && this.inOrphanMode !== newInOrphanModeGuess) { - let checkOrphanedPromise: Thenable; + let checkOrphanedPromise: Promise; if (newInOrphanModeGuess) { // We have received reports of users seeing delete events even though the file still // exists (network shares issue: https://github.com/Microsoft/vscode/issues/13665). @@ -204,7 +204,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil return this.versionId; } - revert(soft?: boolean): Thenable { + revert(soft?: boolean): Promise { if (!this.isResolved()) { return Promise.resolve(null); } @@ -215,7 +215,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil // Unset flags const undo = this.setDirty(false); - let loadPromise: Thenable; + let loadPromise: Promise; if (soft) { loadPromise = Promise.resolve(); } else { @@ -235,7 +235,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil }); } - load(options?: ILoadOptions): Thenable { + load(options?: ILoadOptions): Promise { this.logService.trace('load() - enter', this.resource); // It is very important to not reload the model when the model is dirty. @@ -256,7 +256,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil return this.loadFromFile(options); } - private loadFromBackup(options?: ILoadOptions): Thenable { + private loadFromBackup(options?: ILoadOptions): Promise { return this.backupFileService.loadBackupResource(this.resource).then(backup => { // Make sure meanwhile someone else did not suceed or start loading @@ -284,7 +284,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil }); } - private loadFromFile(options?: ILoadOptions): Thenable { + private loadFromFile(options?: ILoadOptions): Promise { const forceReadFromDisk = options && options.forceReadFromDisk; const allowBinary = this.isResolved() /* always allow if we resolved previously */ || (options && options.allowBinary); @@ -347,7 +347,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil }); } - private loadWithContent(content: IRawTextContent, options?: ILoadOptions, backup?: URI): Thenable { + private loadWithContent(content: IRawTextContent, options?: ILoadOptions, backup?: URI): Promise { return this.doLoadWithContent(content, backup).then(model => { // Telemetry: We log the fileGet telemetry event after the model has been loaded to ensure a good mimetype const settingsType = this.getTypeIfSettings(); @@ -373,7 +373,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil }); } - private doLoadWithContent(content: IRawTextContent, backup?: URI): Thenable { + private doLoadWithContent(content: IRawTextContent, backup?: URI): Promise { this.logService.trace('load() - resolved content', this.resource); // Update our resolved disk stat model @@ -435,7 +435,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil this.updateSavedVersionId(); } - private doCreateTextModel(resource: URI, value: ITextBufferFactory, backup: URI): Thenable { + private doCreateTextModel(resource: URI, value: ITextBufferFactory, backup: URI): Promise { this.logService.trace('load() - created text editor model', this.resource); this.createTextEditorModelPromise = this.doLoadBackup(backup).then(backupContent => { @@ -483,7 +483,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil this._register(this.textEditorModel.onDidChangeContent(() => this.onModelContentChanged())); } - private doLoadBackup(backup: URI): Thenable { + private doLoadBackup(backup: URI): Promise { if (!backup) { return Promise.resolve(null); } @@ -581,7 +581,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil } } - save(options: ISaveOptions = Object.create(null)): Thenable { + save(options: ISaveOptions = Object.create(null)): Promise { if (!this.isResolved()) { return Promise.resolve(null); } @@ -594,7 +594,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil return this.doSave(this.versionId, options); } - private doSave(versionId: number, options: ISaveOptions): Thenable { + private doSave(versionId: number, options: ISaveOptions): Promise { if (isUndefinedOrNull(options.reason)) { options.reason = SaveReason.EXPLICIT; } @@ -650,7 +650,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil // we do not want to trigger another auto save or similar, so we block this // In addition we update our version right after in case it changed because of a model change // Save participants can also be skipped through API. - let saveParticipantPromise: Thenable = Promise.resolve(versionId); + let saveParticipantPromise: Promise = Promise.resolve(versionId); if (TextFileEditorModel.saveParticipant && !options.skipSaveParticipants) { const onCompleteOrError = () => { this.blockModelContentChange = false; @@ -833,7 +833,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil return telemetryData; } - private doTouch(versionId: number): Thenable { + private doTouch(versionId: number): Promise { return this.saveSequentializer.setPending(versionId, this.fileService.updateContent(this.lastResolvedDiskStat.resource, this.createSnapshot(), { mtime: this.lastResolvedDiskStat.mtime, encoding: this.getEncoding(), @@ -1035,14 +1035,14 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil interface IPendingSave { versionId: number; - promise: Thenable; + promise: Promise; } interface ISaveOperation { - promise: Thenable; + promise: Promise; promiseResolve: () => void; promiseReject: (error: Error) => void; - run: () => Thenable; + run: () => Promise; } export class SaveSequentializer { @@ -1061,11 +1061,11 @@ export class SaveSequentializer { return !!this._pendingSave; } - get pendingSave(): Thenable { + get pendingSave(): Promise { return this._pendingSave ? this._pendingSave.promise : void 0; } - setPending(versionId: number, promise: Thenable): Thenable { + setPending(versionId: number, promise: Promise): Promise { this._pendingSave = { versionId, promise }; promise.then(() => this.donePending(versionId), () => this.donePending(versionId)); @@ -1094,7 +1094,7 @@ export class SaveSequentializer { } } - setNext(run: () => Thenable): Thenable { + setNext(run: () => Promise): Promise { // this is our first next save, so we create associated promise with it // so that we can return a promise that completes when the save operation diff --git a/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts b/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts index ba4e37af07f..1ae42707919 100644 --- a/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts +++ b/src/vs/workbench/services/textfile/common/textFileEditorModelManager.ts @@ -47,7 +47,7 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE private mapResourceToStateChangeListener: ResourceMap; private mapResourceToModelContentChangeListener: ResourceMap; private mapResourceToModel: ResourceMap; - private mapResourceToPendingModelLoaders: ResourceMap>; + private mapResourceToPendingModelLoaders: ResourceMap>; constructor( @ILifecycleService private lifecycleService: ILifecycleService, @@ -59,7 +59,7 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE this.mapResourceToDisposeListener = new ResourceMap(); this.mapResourceToStateChangeListener = new ResourceMap(); this.mapResourceToModelContentChangeListener = new ResourceMap(); - this.mapResourceToPendingModelLoaders = new ResourceMap>(); + this.mapResourceToPendingModelLoaders = new ResourceMap>(); this.registerListeners(); } @@ -121,7 +121,7 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE return this.mapResourceToModel.get(resource); } - loadOrCreate(resource: URI, options?: IModelLoadOrCreateOptions): Thenable { + loadOrCreate(resource: URI, options?: IModelLoadOrCreateOptions): Promise { // Return early if model is currently being loaded const pendingLoad = this.mapResourceToPendingModelLoaders.get(resource); @@ -129,7 +129,7 @@ export class TextFileEditorModelManager extends Disposable implements ITextFileE return pendingLoad; } - let modelPromise: Thenable; + let modelPromise: Promise; // Model exists let model = this.get(resource); diff --git a/src/vs/workbench/services/textfile/common/textFileService.ts b/src/vs/workbench/services/textfile/common/textFileService.ts index e2d4b35294e..7519e50143a 100644 --- a/src/vs/workbench/services/textfile/common/textFileService.ts +++ b/src/vs/workbench/services/textfile/common/textFileService.ts @@ -96,11 +96,11 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this._models; } - abstract resolveTextContent(resource: URI, options?: IResolveContentOptions): Thenable; + abstract resolveTextContent(resource: URI, options?: IResolveContentOptions): Promise; - abstract promptForPath(resource: URI, defaultPath: URI): Thenable; + abstract promptForPath(resource: URI, defaultPath: URI): Promise; - abstract confirmSave(resources?: URI[]): Thenable; + abstract confirmSave(resources?: URI[]): Promise; private registerListeners(): void { @@ -116,7 +116,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer })); } - private beforeShutdown(reason: ShutdownReason): boolean | Thenable { + private beforeShutdown(reason: ShutdownReason): boolean | Promise { // Dirty files need treatment on shutdown const dirty = this.getDirty(); @@ -145,7 +145,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this.noVeto({ cleanUpBackups: true }); } - private handleDirtyBeforeShutdown(dirty: URI[], reason: ShutdownReason): boolean | Thenable { + private handleDirtyBeforeShutdown(dirty: URI[], reason: ShutdownReason): boolean | Promise { // If hot exit is enabled, backup dirty files and allow to exit without confirmation if (this.isHotExitEnabled) { @@ -168,7 +168,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this.confirmBeforeShutdown(); } - private backupBeforeShutdown(dirtyToBackup: URI[], textFileEditorModelManager: ITextFileEditorModelManager, reason: ShutdownReason): Thenable { + private backupBeforeShutdown(dirtyToBackup: URI[], textFileEditorModelManager: ITextFileEditorModelManager, reason: ShutdownReason): Promise { return this.windowsService.getWindowCount().then(windowCount => { // When quit is requested skip the confirm callback and attempt to backup all workspaces. @@ -214,7 +214,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer }); } - private backupAll(dirtyToBackup: URI[], textFileEditorModelManager: ITextFileEditorModelManager): Thenable { + private backupAll(dirtyToBackup: URI[], textFileEditorModelManager: ITextFileEditorModelManager): Promise { // split up between files and untitled const filesToBackup: ITextFileEditorModel[] = []; @@ -230,7 +230,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this.doBackupAll(filesToBackup, untitledToBackup); } - private doBackupAll(dirtyFileModels: ITextFileEditorModel[], untitledResources: URI[]): Thenable { + private doBackupAll(dirtyFileModels: ITextFileEditorModel[], untitledResources: URI[]): Promise { // Handle file resources first return Promise.all(dirtyFileModels.map(model => this.backupFileService.backupResource(model.getResource(), model.createSnapshot(), model.getVersionId()))).then(results => { @@ -250,7 +250,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer }); } - private confirmBeforeShutdown(): boolean | Thenable { + private confirmBeforeShutdown(): boolean | Promise { return this.confirmSave().then(confirm => { // Save @@ -283,7 +283,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer }); } - private noVeto(options: { cleanUpBackups: boolean }): boolean | Thenable { + private noVeto(options: { cleanUpBackups: boolean }): boolean | Promise { if (!options.cleanUpBackups) { return false; } @@ -295,7 +295,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this.cleanupBackupsBeforeShutdown().then(() => false, () => false); } - protected cleanupBackupsBeforeShutdown(): Thenable { + protected cleanupBackupsBeforeShutdown(): Promise { if (this.environmentService.isExtensionDevelopment) { return Promise.resolve(void 0); } @@ -380,7 +380,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this.untitledEditorService.getDirty().some(dirty => !resource || dirty.toString() === resource.toString()); } - save(resource: URI, options?: ISaveOptions): Thenable { + save(resource: URI, options?: ISaveOptions): Promise { // Run a forced save if we detect the file is not dirty so that save participants can still run if (options && options.force && this.fileService.canHandleResource(resource) && !this.isDirty(resource)) { @@ -399,9 +399,9 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this.saveAll([resource], options).then(result => result.results.length === 1 && result.results[0].success); } - saveAll(includeUntitled?: boolean, options?: ISaveOptions): Thenable; - saveAll(resources: URI[], options?: ISaveOptions): Thenable; - saveAll(arg1?: any, options?: ISaveOptions): Thenable { + saveAll(includeUntitled?: boolean, options?: ISaveOptions): Promise; + saveAll(resources: URI[], options?: ISaveOptions): Promise; + saveAll(arg1?: any, options?: ISaveOptions): Promise { // get all dirty let toSave: URI[] = []; @@ -425,7 +425,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this.doSaveAll(filesToSave, untitledToSave, options); } - private doSaveAll(fileResources: URI[], untitledResources: URI[], options?: ISaveOptions): Thenable { + private doSaveAll(fileResources: URI[], untitledResources: URI[], options?: ISaveOptions): Promise { // Handle files first that can just be saved return this.doSaveAllFiles(fileResources, options).then(async result => { @@ -459,7 +459,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer } // Handle untitled - const untitledSaveAsPromises: Thenable[] = []; + const untitledSaveAsPromises: Promise[] = []; targetsForUntitled.forEach((target, index) => { const untitledSaveAsPromise = this.saveAs(untitledResources[index], target).then(uri => { result.results.push({ @@ -476,7 +476,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer }); } - private doSaveAllFiles(resources?: URI[], options: ISaveOptions = Object.create(null)): Thenable { + private doSaveAllFiles(resources?: URI[], options: ISaveOptions = Object.create(null)): Promise { const dirtyFileModels = this.getDirtyFileModels(Array.isArray(resources) ? resources : void 0 /* Save All */) .filter(model => { if ((model.hasState(ModelState.CONFLICT) || model.hasState(ModelState.ERROR)) && (options.reason === SaveReason.AUTO || options.reason === SaveReason.FOCUS_CHANGE || options.reason === SaveReason.WINDOW_CHANGE)) { @@ -523,10 +523,10 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return this.getFileModels(arg1).filter(model => model.isDirty()); } - saveAs(resource: URI, target?: URI, options?: ISaveOptions): Thenable { + saveAs(resource: URI, target?: URI, options?: ISaveOptions): Promise { // Get to target resource - let targetPromise: Thenable; + let targetPromise: Promise; if (target) { targetPromise = Promise.resolve(target); } else { @@ -553,10 +553,10 @@ export abstract class TextFileService extends Disposable implements ITextFileSer }); } - private doSaveAs(resource: URI, target?: URI, options?: ISaveOptions): Thenable { + private doSaveAs(resource: URI, target?: URI, options?: ISaveOptions): Promise { // Retrieve text model from provided resource if any - let modelPromise: Thenable = Promise.resolve(null); + let modelPromise: Promise = Promise.resolve(null); if (this.fileService.canHandleResource(resource)) { modelPromise = Promise.resolve(this._models.get(resource)); } else if (resource.scheme === Schemas.untitled && this.untitledEditorService.exists(resource)) { @@ -583,8 +583,8 @@ export abstract class TextFileService extends Disposable implements ITextFileSer }); } - private doSaveTextFileAs(sourceModel: ITextFileEditorModel | UntitledEditorModel, resource: URI, target: URI, options?: ISaveOptions): Thenable { - let targetModelResolver: Thenable; + private doSaveTextFileAs(sourceModel: ITextFileEditorModel | UntitledEditorModel, resource: URI, target: URI, options?: ISaveOptions): Promise { + let targetModelResolver: Promise; // Prefer an existing model if it is already loaded for the given target resource const targetModel = this.models.get(target); @@ -637,11 +637,11 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return URI.file(untitledFileName); } - revert(resource: URI, options?: IRevertOptions): Thenable { + revert(resource: URI, options?: IRevertOptions): Promise { return this.revertAll([resource], options).then(result => result.results.length === 1 && result.results[0].success); } - revertAll(resources?: URI[], options?: IRevertOptions): Thenable { + revertAll(resources?: URI[], options?: IRevertOptions): Promise { // Revert files first return this.doRevertAllFiles(resources, options).then(operation => { @@ -654,7 +654,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer }); } - private doRevertAllFiles(resources?: URI[], options?: IRevertOptions): Thenable { + private doRevertAllFiles(resources?: URI[], options?: IRevertOptions): Promise { const fileModels = options && options.force ? this.getFileModels(resources) : this.getDirtyFileModels(resources); const mapResourceToResult = new ResourceMap(); @@ -686,7 +686,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer })).then(r => ({ results: mapResourceToResult.values() })); } - create(resource: URI, contents?: string, options?: { overwrite?: boolean }): Thenable { + create(resource: URI, contents?: string, options?: { overwrite?: boolean }): Promise { const existingModel = this.models.get(resource); return this.fileService.createFile(resource, contents, options).then(() => { @@ -703,20 +703,20 @@ export abstract class TextFileService extends Disposable implements ITextFileSer }); } - delete(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Thenable { + delete(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Promise { const dirtyFiles = this.getDirty().filter(dirty => isEqualOrParent(dirty, resource, !platform.isLinux /* ignorecase */)); return this.revertAll(dirtyFiles, { soft: true }).then(() => this.fileService.del(resource, options)); } - move(source: URI, target: URI, overwrite?: boolean): Thenable { - const waitForPromises: Thenable[] = []; + move(source: URI, target: URI, overwrite?: boolean): Promise { + const waitForPromises: Promise[] = []; // Event this._onWillMove.fire({ oldResource: source, newResource: target, - waitUntil(promise: Thenable) { + waitUntil(promise: Promise) { waitForPromises.push(promise.then(void 0, errors.onUnexpectedError)); } }); @@ -727,7 +727,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return Promise.all(waitForPromises).then(() => { // Handle target models if existing (if target URI is a folder, this can be multiple) - let handleTargetModelPromise: Thenable = Promise.resolve(); + let handleTargetModelPromise: Promise = Promise.resolve(); const dirtyTargetModels = this.getDirtyFileModels().filter(model => isEqualOrParent(model.getResource(), target, false /* do not ignorecase, see https://github.com/Microsoft/vscode/issues/56384 */)); if (dirtyTargetModels.length) { handleTargetModelPromise = this.revertAll(dirtyTargetModels.map(targetModel => targetModel.getResource()), { soft: true }); @@ -736,7 +736,7 @@ export abstract class TextFileService extends Disposable implements ITextFileSer return handleTargetModelPromise.then(() => { // Handle dirty source models if existing (if source URI is a folder, this can be multiple) - let handleDirtySourceModels: Thenable; + let handleDirtySourceModels: Promise; const dirtySourceModels = this.getDirtyFileModels().filter(model => isEqualOrParent(model.getResource(), source, !platform.isLinux /* ignorecase */)); const dirtyTargetModels: URI[] = []; if (dirtySourceModels.length) { diff --git a/src/vs/workbench/services/textfile/common/textfiles.ts b/src/vs/workbench/services/textfile/common/textfiles.ts index 21857f98d8d..a6991132dbc 100644 --- a/src/vs/workbench/services/textfile/common/textfiles.ts +++ b/src/vs/workbench/services/textfile/common/textfiles.ts @@ -29,7 +29,7 @@ export interface ISaveParticipant { /** * Participate in a save of a model. Allows to change the model before it is being saved to disk. */ - participate(model: ITextFileEditorModel, env: { reason: SaveReason }): Thenable; + participate(model: ITextFileEditorModel, env: { reason: SaveReason }): Promise; } /** @@ -193,7 +193,7 @@ export interface ITextFileEditorModelManager { getAll(resource?: URI): ITextFileEditorModel[]; - loadOrCreate(resource: URI, options?: IModelLoadOrCreateOptions): Thenable; + loadOrCreate(resource: URI, options?: IModelLoadOrCreateOptions): Promise; disposeModel(model: ITextFileEditorModel): void; } @@ -240,11 +240,11 @@ export interface ITextFileEditorModel extends ITextEditorModel, IEncodingSupport updatePreferredEncoding(encoding: string): void; - save(options?: ISaveOptions): Thenable; + save(options?: ISaveOptions): Promise; - load(options?: ILoadOptions): Thenable; + load(options?: ILoadOptions): Promise; - revert(soft?: boolean): Thenable; + revert(soft?: boolean): Promise; createSnapshot(): ITextSnapshot; @@ -259,7 +259,7 @@ export interface ITextFileEditorModel extends ITextEditorModel, IEncodingSupport export interface IWillMoveEvent { oldResource: URI; newResource: URI; - waitUntil(p: Thenable): void; + waitUntil(p: Promise): void; } export interface ITextFileService extends IDisposable { @@ -280,7 +280,7 @@ export interface ITextFileService extends IDisposable { /** * Resolve the contents of a file identified by the resource. */ - resolveTextContent(resource: URI, options?: IResolveContentOptions): Thenable; + resolveTextContent(resource: URI, options?: IResolveContentOptions): Promise; /** * A resource is dirty if it has unsaved changes or is an untitled file not yet saved. @@ -305,7 +305,7 @@ export interface ITextFileService extends IDisposable { * @param options optional save options * @return true if the resource was saved. */ - save(resource: URI, options?: ISaveOptions): Thenable; + save(resource: URI, options?: ISaveOptions): Promise; /** * Saves the provided resource asking the user for a file name or using the provided one. @@ -315,7 +315,7 @@ export interface ITextFileService extends IDisposable { * @param options optional save options * @return true if the file was saved. */ - saveAs(resource: URI, targetResource?: URI, options?: ISaveOptions): Thenable; + saveAs(resource: URI, targetResource?: URI, options?: ISaveOptions): Promise; /** * Saves the set of resources and returns a promise with the operation result. @@ -323,8 +323,8 @@ export interface ITextFileService extends IDisposable { * @param resources can be null to save all. * @param includeUntitled to save all resources and optionally exclude untitled ones. */ - saveAll(includeUntitled?: boolean, options?: ISaveOptions): Thenable; - saveAll(resources: URI[], options?: ISaveOptions): Thenable; + saveAll(includeUntitled?: boolean, options?: ISaveOptions): Promise; + saveAll(resources: URI[], options?: ISaveOptions): Promise; /** * Reverts the provided resource. @@ -332,28 +332,28 @@ export interface ITextFileService extends IDisposable { * @param resource the resource of the file to revert. * @param force to force revert even when the file is not dirty */ - revert(resource: URI, options?: IRevertOptions): Thenable; + revert(resource: URI, options?: IRevertOptions): Promise; /** * Reverts all the provided resources and returns a promise with the operation result. */ - revertAll(resources?: URI[], options?: IRevertOptions): Thenable; + revertAll(resources?: URI[], options?: IRevertOptions): Promise; /** * Create a file. If the file exists it will be overwritten with the contents if * the options enable to overwrite. */ - create(resource: URI, contents?: string, options?: { overwrite?: boolean }): Thenable; + create(resource: URI, contents?: string, options?: { overwrite?: boolean }): Promise; /** * Delete a file. If the file is dirty, it will get reverted and then deleted from disk. */ - delete(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Thenable; + delete(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Promise; /** * Move a file. If the file is dirty, its contents will be preserved and restored. */ - move(source: URI, target: URI, overwrite?: boolean): Thenable; + move(source: URI, target: URI, overwrite?: boolean): Promise; /** * Brings up the confirm dialog to either save, don't save or cancel. @@ -361,7 +361,7 @@ export interface ITextFileService extends IDisposable { * @param resources the resources of the files to ask for confirmation or null if * confirming for all dirty resources. */ - confirmSave(resources?: URI[]): Thenable; + confirmSave(resources?: URI[]): Promise; /** * Convinient fast access to the current auto save mode. diff --git a/src/vs/workbench/services/textfile/electron-browser/textFileService.ts b/src/vs/workbench/services/textfile/electron-browser/textFileService.ts index ec9da978174..070eaa3c3ba 100644 --- a/src/vs/workbench/services/textfile/electron-browser/textFileService.ts +++ b/src/vs/workbench/services/textfile/electron-browser/textFileService.ts @@ -55,7 +55,7 @@ export class TextFileService extends AbstractTextFileService { super(lifecycleService, contextService, configurationService, fileService, untitledEditorService, instantiationService, notificationService, environmentService, backupFileService, windowsService, windowService, historyService, contextKeyService, modelService); } - resolveTextContent(resource: URI, options?: IResolveContentOptions): Thenable { + resolveTextContent(resource: URI, options?: IResolveContentOptions): Promise { return this.fileService.resolveStreamContent(resource, options).then(streamContent => { return createTextBufferFactoryFromStream(streamContent.value).then(res => { const r: IRawTextContent = { @@ -72,7 +72,7 @@ export class TextFileService extends AbstractTextFileService { }); } - confirmSave(resources?: URI[]): Thenable { + confirmSave(resources?: URI[]): Promise { if (this.environmentService.isExtensionDevelopment) { return Promise.resolve(ConfirmResult.DONT_SAVE); // no veto when we are in extension dev mode because we cannot assum we run interactive (e.g. tests) } @@ -103,7 +103,7 @@ export class TextFileService extends AbstractTextFileService { }); } - promptForPath(resource: URI, defaultUri: URI): Thenable { + promptForPath(resource: URI, defaultUri: URI): Promise { // Help user to find a name for the file by opening it first return this.editorService.openEditor({ resource, options: { revealIfOpened: true, preserveFocus: true, } }).then(() => { diff --git a/src/vs/workbench/services/textfile/test/textFileService.test.ts b/src/vs/workbench/services/textfile/test/textFileService.test.ts index a5af3f11c99..1dfdc4bdcc2 100644 --- a/src/vs/workbench/services/textfile/test/textFileService.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileService.test.ts @@ -38,10 +38,10 @@ class ServiceAccessor { class BeforeShutdownEventImpl implements BeforeShutdownEvent { - public value: boolean | Thenable; + public value: boolean | Promise; public reason = ShutdownReason.CLOSE; - veto(value: boolean | Thenable): void { + veto(value: boolean | Promise): void { this.value = value; } } @@ -147,7 +147,7 @@ suite('Files - TextFileService', () => { const event = new BeforeShutdownEventImpl(); accessor.lifecycleService.fireWillShutdown(event); - return (>event.value).then(veto => { + return (>event.value).then(veto => { assert.ok(!veto); assert.ok(!model.isDirty()); }); @@ -426,7 +426,7 @@ suite('Files - TextFileService', () => { }); }); - function hotExitTest(this: any, setting: string, shutdownReason: ShutdownReason, multipleWindows: boolean, workspace: true, shouldVeto: boolean): Thenable { + function hotExitTest(this: any, setting: string, shutdownReason: ShutdownReason, multipleWindows: boolean, workspace: true, shouldVeto: boolean): Promise { model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); (accessor.textFileService.models).add(model.getResource(), model); @@ -453,7 +453,7 @@ suite('Files - TextFileService', () => { event.reason = shutdownReason; accessor.lifecycleService.fireWillShutdown(event); - return (>event.value).then(veto => { + return (>event.value).then(veto => { // When hot exit is set, backups should never be cleaned since the confirm result is cancel assert.ok(!service.cleanupBackupsBeforeShutdownCalled); assert.equal(veto, shouldVeto); diff --git a/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.ts b/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.ts index ff3e60fb3ec..38845a0e2fc 100644 --- a/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.ts +++ b/src/vs/workbench/services/textmodelResolver/common/textModelResolverService.ts @@ -17,7 +17,7 @@ import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/un import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel'; import { IFileService } from 'vs/platform/files/common/files'; -class ResourceModelCollection extends ReferenceCollection> { +class ResourceModelCollection extends ReferenceCollection> { private providers: { [scheme: string]: ITextModelContentProvider[] } = Object.create(null); private modelsToDispose = new Set(); @@ -30,7 +30,7 @@ class ResourceModelCollection extends ReferenceCollection { + createReferencedObject(key: string, skipActivateProvider?: boolean): Promise { this.modelsToDispose.delete(key); const resource = URI.parse(key); @@ -53,7 +53,7 @@ class ResourceModelCollection extends ReferenceCollection): void { + destroyReferencedObject(key: string, modelPromise: Promise): void { this.modelsToDispose.add(key); modelPromise.then(model => { @@ -96,7 +96,7 @@ class ResourceModelCollection extends ReferenceCollection { + private resolveTextModelContent(key: string): Promise { const resource = URI.parse(key); const providers = this.providers[resource.scheme] || []; const factories = providers.map(p => () => Promise.resolve(p.provideTextContent(resource))); @@ -125,11 +125,11 @@ export class TextModelResolverService implements ITextModelService { this.resourceModelCollection = instantiationService.createInstance(ResourceModelCollection); } - createModelReference(resource: URI): Thenable> { + createModelReference(resource: URI): Promise> { return this._createModelReference(resource); } - private _createModelReference(resource: URI): Thenable> { + private _createModelReference(resource: URI): Promise> { // Untitled Schema: go through cached input if (resource.scheme === network.Schemas.untitled) { diff --git a/src/vs/workbench/services/textmodelResolver/test/textModelResolverService.test.ts b/src/vs/workbench/services/textmodelResolver/test/textModelResolverService.test.ts index 11eb7c5710a..0ddaa02741b 100644 --- a/src/vs/workbench/services/textmodelResolver/test/textModelResolverService.test.ts +++ b/src/vs/workbench/services/textmodelResolver/test/textModelResolverService.test.ts @@ -56,7 +56,7 @@ suite('Workbench - TextModelResolverService', () => { test('resolve resource', function () { const dispose = accessor.textModelResolverService.registerTextModelContentProvider('test', { - provideTextContent: function (resource: URI): Thenable { + provideTextContent: function (resource: URI): Promise { if (resource.scheme === 'test') { let modelContent = 'Hello Test'; let languageSelection = accessor.modeService.create('json'); @@ -136,7 +136,7 @@ suite('Workbench - TextModelResolverService', () => { let waitForIt = new Promise(c => resolveModel = c); const disposable = accessor.textModelResolverService.registerTextModelContentProvider('test', { - provideTextContent: (resource: URI): Thenable => { + provideTextContent: (resource: URI): Promise => { return waitForIt.then(_ => { let modelContent = 'Hello Test'; let languageSelection = accessor.modeService.create('json'); diff --git a/src/vs/workbench/services/themes/common/workbenchThemeService.ts b/src/vs/workbench/services/themes/common/workbenchThemeService.ts index 5fa7344a2d4..97b02993975 100644 --- a/src/vs/workbench/services/themes/common/workbenchThemeService.ts +++ b/src/vs/workbench/services/themes/common/workbenchThemeService.ts @@ -53,15 +53,15 @@ export interface IFileIconTheme extends IIconTheme { export interface IWorkbenchThemeService extends IThemeService { _serviceBrand: any; - setColorTheme(themeId: string, settingsTarget: ConfigurationTarget): Thenable; + setColorTheme(themeId: string, settingsTarget: ConfigurationTarget): Promise; getColorTheme(): IColorTheme; - getColorThemes(): Thenable; + getColorThemes(): Promise; onDidColorThemeChange: Event; restoreColorTheme(); - setFileIconTheme(iconThemeId: string, settingsTarget: ConfigurationTarget): Thenable; + setFileIconTheme(iconThemeId: string, settingsTarget: ConfigurationTarget): Promise; getFileIconTheme(): IFileIconTheme; - getFileIconThemes(): Thenable; + getFileIconThemes(): Promise; onDidFileIconThemeChange: Event; } diff --git a/src/vs/workbench/services/themes/electron-browser/colorThemeData.ts b/src/vs/workbench/services/themes/electron-browser/colorThemeData.ts index 6631de0dfac..46eb3d579da 100644 --- a/src/vs/workbench/services/themes/electron-browser/colorThemeData.ts +++ b/src/vs/workbench/services/themes/electron-browser/colorThemeData.ts @@ -134,7 +134,7 @@ export class ColorThemeData implements IColorTheme { } } - public ensureLoaded(fileService: IFileService): Thenable { + public ensureLoaded(fileService: IFileService): Promise { if (!this.isLoaded) { if (this.location) { return _loadColorTheme(fileService, this.location, this.themeTokenColors, this.colorMap).then(_ => { @@ -271,7 +271,7 @@ function toCSSSelector(str: string) { return str; } -function _loadColorTheme(fileService: IFileService, themeLocation: URI, resultRules: ITokenColorizationRule[], resultColors: IColorMap): Thenable { +function _loadColorTheme(fileService: IFileService, themeLocation: URI, resultRules: ITokenColorizationRule[], resultColors: IColorMap): Promise { if (Paths.extname(themeLocation.path) === '.json') { return fileService.resolveContent(themeLocation, { encoding: 'utf8' }).then(content => { let errors: Json.ParseError[] = []; @@ -279,7 +279,7 @@ function _loadColorTheme(fileService: IFileService, themeLocation: URI, resultRu if (errors.length > 0) { return Promise.reject(new Error(nls.localize('error.cannotparsejson', "Problems parsing JSON theme file: {0}", errors.map(e => getParseErrorMessage(e.error)).join(', ')))); } - let includeCompletes: Thenable = Promise.resolve(null); + let includeCompletes: Promise = Promise.resolve(null); if (contentValue.include) { includeCompletes = _loadColorTheme(fileService, resources.joinPath(resources.dirname(themeLocation), contentValue.include), resultRules, resultColors); } @@ -320,12 +320,12 @@ function _loadColorTheme(fileService: IFileService, themeLocation: URI, resultRu } } -let pListParser: Thenable<{ parse(content: string) }>; +let pListParser: Promise<{ parse(content: string) }>; function getPListParser() { return pListParser || import('fast-plist'); } -function _loadSyntaxTokens(fileService: IFileService, themeLocation: URI, resultRules: ITokenColorizationRule[], resultColors: IColorMap): Thenable { +function _loadSyntaxTokens(fileService: IFileService, themeLocation: URI, resultRules: ITokenColorizationRule[], resultColors: IColorMap): Promise { return fileService.resolveContent(themeLocation, { encoding: 'utf8' }).then(content => { return getPListParser().then(parser => { try { diff --git a/src/vs/workbench/services/themes/electron-browser/colorThemeStore.ts b/src/vs/workbench/services/themes/electron-browser/colorThemeStore.ts index 2ee79f5abc6..471dfffb9f3 100644 --- a/src/vs/workbench/services/themes/electron-browser/colorThemeStore.ts +++ b/src/vs/workbench/services/themes/electron-browser/colorThemeStore.ts @@ -106,7 +106,7 @@ export class ColorThemeStore { }); } - public findThemeData(themeId: string, defaultId?: string): Thenable { + public findThemeData(themeId: string, defaultId?: string): Promise { return this.getColorThemes().then(allThemes => { let defaultTheme: ColorThemeData = void 0; for (let t of allThemes) { @@ -121,7 +121,7 @@ export class ColorThemeStore { }); } - public findThemeDataBySettingsId(settingsId: string, defaultId: string): Thenable { + public findThemeDataBySettingsId(settingsId: string, defaultId: string): Promise { return this.getColorThemes().then(allThemes => { let defaultTheme: ColorThemeData = void 0; for (let t of allThemes) { @@ -136,7 +136,7 @@ export class ColorThemeStore { }); } - public getColorThemes(): Thenable { + public getColorThemes(): Promise { return this.extensionService.whenInstalledExtensionsRegistered().then(isReady => { return this.extensionsColorThemes; }); diff --git a/src/vs/workbench/services/themes/electron-browser/fileIconThemeData.ts b/src/vs/workbench/services/themes/electron-browser/fileIconThemeData.ts index bc1449601f0..d1f0a073413 100644 --- a/src/vs/workbench/services/themes/electron-browser/fileIconThemeData.ts +++ b/src/vs/workbench/services/themes/electron-browser/fileIconThemeData.ts @@ -28,7 +28,7 @@ export class FileIconThemeData implements IFileIconTheme { private constructor() { } - public ensureLoaded(fileService: IFileService): Thenable { + public ensureLoaded(fileService: IFileService): Promise { if (!this.isLoaded) { if (this.location) { return _loadIconThemeDocument(fileService, this.location).then(iconThemeDocument => { @@ -155,7 +155,7 @@ interface IconThemeDocument extends IconsAssociation { hidesExplorerArrows?: boolean; } -function _loadIconThemeDocument(fileService: IFileService, location: URI): Thenable { +function _loadIconThemeDocument(fileService: IFileService, location: URI): Promise { return fileService.resolveContent(location, { encoding: 'utf8' }).then((content) => { let errors: Json.ParseError[] = []; let contentValue = Json.parse(content.value.toString(), errors); diff --git a/src/vs/workbench/services/themes/electron-browser/fileIconThemeStore.ts b/src/vs/workbench/services/themes/electron-browser/fileIconThemeStore.ts index 41bd8bee59e..a8b9e9a0024 100644 --- a/src/vs/workbench/services/themes/electron-browser/fileIconThemeStore.ts +++ b/src/vs/workbench/services/themes/electron-browser/fileIconThemeStore.ts @@ -105,7 +105,7 @@ export class FileIconThemeStore { } - public findThemeData(iconTheme: string): Thenable { + public findThemeData(iconTheme: string): Promise { return this.getFileIconThemes().then(allIconSets => { for (let iconSet of allIconSets) { if (iconSet.id === iconTheme) { @@ -116,7 +116,7 @@ export class FileIconThemeStore { }); } - public findThemeBySettingsId(settingsId: string): Thenable { + public findThemeBySettingsId(settingsId: string): Promise { return this.getFileIconThemes().then(allIconSets => { for (let iconSet of allIconSets) { if (iconSet.settingsId === settingsId) { @@ -127,7 +127,7 @@ export class FileIconThemeStore { }); } - public getFileIconThemes(): Thenable { + public getFileIconThemes(): Promise { return this.extensionService.whenInstalledExtensionsRegistered().then(isReady => { return this.knownIconThemes; }); diff --git a/src/vs/workbench/services/themes/electron-browser/workbenchThemeService.ts b/src/vs/workbench/services/themes/electron-browser/workbenchThemeService.ts index 46c61805803..5086b9c4126 100644 --- a/src/vs/workbench/services/themes/electron-browser/workbenchThemeService.ts +++ b/src/vs/workbench/services/themes/electron-browser/workbenchThemeService.ts @@ -199,7 +199,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { return this.onColorThemeChange.event; } - private initialize(): Thenable<[IColorTheme, IFileIconTheme]> { + private initialize(): Promise<[IColorTheme, IFileIconTheme]> { let detectHCThemeSetting = this.configurationService.getValue(DETECT_HC_SETTING); let colorThemeSetting: string; @@ -263,7 +263,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { return this.currentColorTheme; } - public getColorThemes(): Thenable { + public getColorThemes(): Promise { return this.colorThemeStore.getColorThemes(); } @@ -271,7 +271,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { return this.getColorTheme(); } - public setColorTheme(themeId: string, settingsTarget: ConfigurationTarget): Thenable { + public setColorTheme(themeId: string, settingsTarget: ConfigurationTarget): Promise { if (!themeId) { return Promise.resolve(null); } @@ -329,7 +329,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { _applyRules(cssRules.join('\n'), colorThemeRulesClassName); } - private applyTheme(newTheme: ColorThemeData, settingsTarget: ConfigurationTarget, silent = false): Thenable { + private applyTheme(newTheme: ColorThemeData, settingsTarget: ConfigurationTarget, silent = false): Promise { if (this.container) { if (this.currentColorTheme) { removeClasses(this.container, this.currentColorTheme.id); @@ -357,7 +357,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { return this.writeColorThemeConfiguration(settingsTarget); } - private writeColorThemeConfiguration(settingsTarget: ConfigurationTarget): Thenable { + private writeColorThemeConfiguration(settingsTarget: ConfigurationTarget): Promise { if (!types.isUndefinedOrNull(settingsTarget)) { return this.configurationWriter.writeConfiguration(COLOR_THEME_SETTING, this.currentColorTheme.settingsId, settingsTarget).then(_ => this.currentColorTheme); } @@ -390,7 +390,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { } } - public getFileIconThemes(): Thenable { + public getFileIconThemes(): Promise { return this.iconThemeStore.getFileIconThemes(); } @@ -402,7 +402,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { return this.currentIconTheme; } - public setFileIconTheme(iconTheme: string, settingsTarget: ConfigurationTarget): Thenable { + public setFileIconTheme(iconTheme: string, settingsTarget: ConfigurationTarget): Promise { iconTheme = iconTheme || ''; if (iconTheme === this.currentIconTheme.id && this.currentIconTheme.isLoaded) { return this.writeFileIconConfiguration(settingsTarget); @@ -443,7 +443,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { } - private writeFileIconConfiguration(settingsTarget: ConfigurationTarget): Thenable { + private writeFileIconConfiguration(settingsTarget: ConfigurationTarget): Promise { if (!types.isUndefinedOrNull(settingsTarget)) { return this.configurationWriter.writeConfiguration(ICON_THEME_SETTING, this.currentIconTheme.settingsId, settingsTarget).then(_ => this.currentIconTheme); } @@ -471,7 +471,7 @@ export class WorkbenchThemeService implements IWorkbenchThemeService { } } -function _applyIconTheme(data: FileIconThemeData, onApply: (theme: FileIconThemeData) => Thenable): Thenable { +function _applyIconTheme(data: FileIconThemeData, onApply: (theme: FileIconThemeData) => Promise): Promise { _applyRules(data.styleSheetContent, iconThemeRulesClassName); return onApply(data); } @@ -496,7 +496,7 @@ class ConfigurationWriter { constructor(@IConfigurationService private configurationService: IConfigurationService) { } - public writeConfiguration(key: string, value: any, settingsTarget: ConfigurationTarget): Thenable { + public writeConfiguration(key: string, value: any, settingsTarget: ConfigurationTarget): Promise { let settings = this.configurationService.inspect(key); if (settingsTarget === ConfigurationTarget.USER) { if (value === settings.user) { diff --git a/src/vs/workbench/services/untitled/common/untitledEditorService.ts b/src/vs/workbench/services/untitled/common/untitledEditorService.ts index 7629337e713..6790f90a21e 100644 --- a/src/vs/workbench/services/untitled/common/untitledEditorService.ts +++ b/src/vs/workbench/services/untitled/common/untitledEditorService.ts @@ -85,7 +85,7 @@ export interface IUntitledEditorService { * It is valid to pass in a file resource. In that case the path will be used as identifier. * The use case is to be able to create a new file with a specific path with VSCode. */ - loadOrCreate(options: IModelLoadOrCreateOptions): Thenable; + loadOrCreate(options: IModelLoadOrCreateOptions): Promise; /** * A check to find out if a untitled resource has a file path associated or not. @@ -180,7 +180,7 @@ export class UntitledEditorService extends Disposable implements IUntitledEditor .map(i => i.getResource()); } - loadOrCreate(options: IModelLoadOrCreateOptions = Object.create(null)): Thenable { + loadOrCreate(options: IModelLoadOrCreateOptions = Object.create(null)): Promise { return this.createOrGet(options.resource, options.modeId, options.initialValue, options.encoding, options.useResourcePath).resolve(); } diff --git a/src/vs/workbench/services/viewlet/browser/viewlet.ts b/src/vs/workbench/services/viewlet/browser/viewlet.ts index 88e0be01c41..7ae5e2acc4f 100644 --- a/src/vs/workbench/services/viewlet/browser/viewlet.ts +++ b/src/vs/workbench/services/viewlet/browser/viewlet.ts @@ -22,7 +22,7 @@ export interface IViewletService { /** * Opens a viewlet with the given identifier and pass keyboard focus to it if specified. */ - openViewlet(id: string, focus?: boolean): Thenable; + openViewlet(id: string, focus?: boolean): Promise; /** * Returns the current active viewlet or null if none. diff --git a/src/vs/workbench/services/workspace/common/workspaceEditing.ts b/src/vs/workbench/services/workspace/common/workspaceEditing.ts index 33e5bafe81c..db73788241f 100644 --- a/src/vs/workbench/services/workspace/common/workspaceEditing.ts +++ b/src/vs/workbench/services/workspace/common/workspaceEditing.ts @@ -17,38 +17,38 @@ export interface IWorkspaceEditingService { * Add folders to the existing workspace. * When `donotNotifyError` is `true`, error will be bubbled up otherwise, the service handles the error with proper message and action */ - addFolders(folders: IWorkspaceFolderCreationData[], donotNotifyError?: boolean): Thenable; + addFolders(folders: IWorkspaceFolderCreationData[], donotNotifyError?: boolean): Promise; /** * Remove folders from the existing workspace * When `donotNotifyError` is `true`, error will be bubbled up otherwise, the service handles the error with proper message and action */ - removeFolders(folders: URI[], donotNotifyError?: boolean): Thenable; + removeFolders(folders: URI[], donotNotifyError?: boolean): Promise; /** * Allows to add and remove folders to the existing workspace at once. * When `donotNotifyError` is `true`, error will be bubbled up otherwise, the service handles the error with proper message and action */ - updateFolders(index: number, deleteCount?: number, foldersToAdd?: IWorkspaceFolderCreationData[], donotNotifyError?: boolean): Thenable; + updateFolders(index: number, deleteCount?: number, foldersToAdd?: IWorkspaceFolderCreationData[], donotNotifyError?: boolean): Promise; /** * enters the workspace with the provided path. */ - enterWorkspace(path: string): Thenable; + enterWorkspace(path: string): Promise; /** * creates a new workspace with the provided folders and opens it. if path is provided * the workspace will be saved into that location. */ - createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): Thenable; + createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): Promise; /** * saves the workspace to the provided path and opens it. requires a workspace to be opened. */ - saveAndEnterWorkspace(path: string): Thenable; + saveAndEnterWorkspace(path: string): Promise; /** * copies current workspace settings to the target workspace. */ - copyWorkspaceSettings(toWorkspace: IWorkspaceIdentifier): Thenable; + copyWorkspaceSettings(toWorkspace: IWorkspaceIdentifier): Promise; } \ No newline at end of file diff --git a/src/vs/workbench/services/workspace/node/workspaceEditingService.ts b/src/vs/workbench/services/workspace/node/workspaceEditingService.ts index 81466a22ac3..c3d35053004 100644 --- a/src/vs/workbench/services/workspace/node/workspaceEditingService.ts +++ b/src/vs/workbench/services/workspace/node/workspaceEditingService.ts @@ -42,7 +42,7 @@ export class WorkspaceEditingService implements IWorkspaceEditingService { ) { } - updateFolders(index: number, deleteCount?: number, foldersToAdd?: IWorkspaceFolderCreationData[], donotNotifyError?: boolean): Thenable { + updateFolders(index: number, deleteCount?: number, foldersToAdd?: IWorkspaceFolderCreationData[], donotNotifyError?: boolean): Promise { const folders = this.contextService.getWorkspace().folders; let foldersToDelete: URI[] = []; @@ -87,16 +87,16 @@ export class WorkspaceEditingService implements IWorkspaceEditingService { } } - private doUpdateFolders(foldersToAdd: IWorkspaceFolderCreationData[], foldersToDelete: URI[], index?: number, donotNotifyError: boolean = false): Thenable { + private doUpdateFolders(foldersToAdd: IWorkspaceFolderCreationData[], foldersToDelete: URI[], index?: number, donotNotifyError: boolean = false): Promise { return this.contextService.updateFolders(foldersToAdd, foldersToDelete, index) .then(() => null, error => donotNotifyError ? Promise.reject(error) : this.handleWorkspaceConfigurationEditingError(error)); } - addFolders(foldersToAdd: IWorkspaceFolderCreationData[], donotNotifyError: boolean = false): Thenable { + addFolders(foldersToAdd: IWorkspaceFolderCreationData[], donotNotifyError: boolean = false): Promise { return this.doAddFolders(foldersToAdd, void 0, donotNotifyError); } - private doAddFolders(foldersToAdd: IWorkspaceFolderCreationData[], index?: number, donotNotifyError: boolean = false): Thenable { + private doAddFolders(foldersToAdd: IWorkspaceFolderCreationData[], index?: number, donotNotifyError: boolean = false): Promise { const state = this.contextService.getWorkbenchState(); // If we are in no-workspace or single-folder workspace, adding folders has to @@ -118,7 +118,7 @@ export class WorkspaceEditingService implements IWorkspaceEditingService { .then(() => null, error => donotNotifyError ? Promise.reject(error) : this.handleWorkspaceConfigurationEditingError(error)); } - removeFolders(foldersToRemove: URI[], donotNotifyError: boolean = false): Thenable { + removeFolders(foldersToRemove: URI[], donotNotifyError: boolean = false): Promise { // If we are in single-folder state and the opened folder is to be removed, // we create an empty workspace and enter it. @@ -140,19 +140,19 @@ export class WorkspaceEditingService implements IWorkspaceEditingService { return false; } - enterWorkspace(path: string): Thenable { + enterWorkspace(path: string): Promise { return this.doEnterWorkspace(() => this.windowService.enterWorkspace(path)); } - createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): Thenable { + createAndEnterWorkspace(folders?: IWorkspaceFolderCreationData[], path?: string): Promise { return this.doEnterWorkspace(() => this.windowService.createAndEnterWorkspace(folders, path)); } - saveAndEnterWorkspace(path: string): Thenable { + saveAndEnterWorkspace(path: string): Promise { return this.doEnterWorkspace(() => this.windowService.saveAndEnterWorkspace(path)); } - private handleWorkspaceConfigurationEditingError(error: JSONEditingError): Thenable { + private handleWorkspaceConfigurationEditingError(error: JSONEditingError): Promise { switch (error.code) { case JSONEditingErrorCode.ERROR_INVALID_FILE: this.onInvalidWorkspaceConfigurationFileError(); @@ -185,7 +185,7 @@ export class WorkspaceEditingService implements IWorkspaceEditingService { ); } - private doEnterWorkspace(mainSidePromise: () => Thenable): Thenable { + private doEnterWorkspace(mainSidePromise: () => Promise): Promise { // Stop the extension host first to give extensions most time to shutdown this.extensionService.stopExtensionHost(); @@ -223,7 +223,7 @@ export class WorkspaceEditingService implements IWorkspaceEditingService { }); } - private migrate(toWorkspace: IWorkspaceIdentifier): Thenable { + private migrate(toWorkspace: IWorkspaceIdentifier): Promise { // Storage migration return this.migrateStorage(toWorkspace).then(() => { @@ -237,21 +237,21 @@ export class WorkspaceEditingService implements IWorkspaceEditingService { }); } - private migrateStorage(toWorkspace: IWorkspaceIdentifier): Thenable { + private migrateStorage(toWorkspace: IWorkspaceIdentifier): Promise { const storageImpl = this.storageService as StorageService; return storageImpl.migrate(toWorkspace); } - private migrateWorkspaceSettings(toWorkspace: IWorkspaceIdentifier): Thenable { + private migrateWorkspaceSettings(toWorkspace: IWorkspaceIdentifier): Promise { return this.doCopyWorkspaceSettings(toWorkspace, setting => setting.scope === ConfigurationScope.WINDOW); } - copyWorkspaceSettings(toWorkspace: IWorkspaceIdentifier): Thenable { + copyWorkspaceSettings(toWorkspace: IWorkspaceIdentifier): Promise { return this.doCopyWorkspaceSettings(toWorkspace); } - private doCopyWorkspaceSettings(toWorkspace: IWorkspaceIdentifier, filter?: (config: IConfigurationPropertySchema) => boolean): Thenable { + private doCopyWorkspaceSettings(toWorkspace: IWorkspaceIdentifier, filter?: (config: IConfigurationPropertySchema) => boolean): Promise { const configurationProperties = Registry.as(ConfigurationExtensions.Configuration).getConfigurationProperties(); const targetWorkspaceConfiguration = {}; for (const key of this.workspaceConfigurationService.keys().workspace) { diff --git a/src/vs/workbench/test/browser/parts/editor/baseEditor.test.ts b/src/vs/workbench/test/browser/parts/editor/baseEditor.test.ts index 7ee20f5b44d..98dc31ccfe4 100644 --- a/src/vs/workbench/test/browser/parts/editor/baseEditor.test.ts +++ b/src/vs/workbench/test/browser/parts/editor/baseEditor.test.ts @@ -267,7 +267,7 @@ suite('Workbench base editor', () => { super(); } public getTypeId() { return 'testEditorInput'; } - public resolve(): Thenable { return Promise.resolve(null); } + public resolve(): Promise { return Promise.resolve(null); } public matches(other: TestEditorInput): boolean { return other && this.id === other.id && other instanceof TestEditorInput; diff --git a/src/vs/workbench/test/browser/quickopen.test.ts b/src/vs/workbench/test/browser/quickopen.test.ts index ec12845a4ac..9e9cf9515a9 100644 --- a/src/vs/workbench/test/browser/quickopen.test.ts +++ b/src/vs/workbench/test/browser/quickopen.test.ts @@ -28,7 +28,7 @@ export class TestQuickOpenService implements IQuickOpenService { close(): void { } - show(prefix?: string, options?: any): Thenable { + show(prefix?: string, options?: any): Promise { if (this.callback) { this.callback(prefix); } diff --git a/src/vs/workbench/test/common/editor/editor.test.ts b/src/vs/workbench/test/common/editor/editor.test.ts index d4a63b75575..1e88e3763c0 100644 --- a/src/vs/workbench/test/common/editor/editor.test.ts +++ b/src/vs/workbench/test/common/editor/editor.test.ts @@ -32,7 +32,7 @@ class FileEditorInput extends EditorInput { return this.resource; } - resolve(): Thenable { + resolve(): Promise { return Promise.resolve(null); } } diff --git a/src/vs/workbench/test/common/editor/editorDiffModel.test.ts b/src/vs/workbench/test/common/editor/editorDiffModel.test.ts index f593133f898..599f44c7bbc 100644 --- a/src/vs/workbench/test/common/editor/editorDiffModel.test.ts +++ b/src/vs/workbench/test/common/editor/editorDiffModel.test.ts @@ -37,7 +37,7 @@ suite('Workbench editor model', () => { test('TextDiffEditorModel', () => { const dispose = accessor.textModelResolverService.registerTextModelContentProvider('test', { - provideTextContent: function (resource: URI): Thenable { + provideTextContent: function (resource: URI): Promise { if (resource.scheme === 'test') { let modelContent = 'Hello Test'; let languageSelection = accessor.modeService.create('json'); diff --git a/src/vs/workbench/test/common/editor/editorGroups.test.ts b/src/vs/workbench/test/common/editor/editorGroups.test.ts index 14164935ab0..bb4dccb4605 100644 --- a/src/vs/workbench/test/common/editor/editorGroups.test.ts +++ b/src/vs/workbench/test/common/editor/editorGroups.test.ts @@ -77,7 +77,7 @@ class TestEditorInput extends EditorInput { super(); } getTypeId() { return 'testEditorInputForGroups'; } - resolve(): Thenable { return Promise.resolve(null); } + resolve(): Promise { return Promise.resolve(null); } matches(other: TestEditorInput): boolean { return other && this.id === other.id && other instanceof TestEditorInput; @@ -97,7 +97,7 @@ class NonSerializableTestEditorInput extends EditorInput { super(); } getTypeId() { return 'testEditorInputForGroups-nonSerializable'; } - resolve(): Thenable { return Promise.resolve(null); } + resolve(): Promise { return Promise.resolve(null); } matches(other: NonSerializableTestEditorInput): boolean { return other && this.id === other.id && other instanceof NonSerializableTestEditorInput; @@ -110,7 +110,7 @@ class TestFileEditorInput extends EditorInput implements IFileEditorInput { super(); } getTypeId() { return 'testFileEditorInputForGroups'; } - resolve(): Thenable { return Promise.resolve(null); } + resolve(): Promise { return Promise.resolve(null); } matches(other: TestFileEditorInput): boolean { return other && this.id === other.id && other instanceof TestFileEditorInput; diff --git a/src/vs/workbench/test/electron-browser/api/extHostApiCommands.test.ts b/src/vs/workbench/test/electron-browser/api/extHostApiCommands.test.ts index 182b591e34c..b82ff807e28 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostApiCommands.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostApiCommands.test.ts @@ -50,7 +50,7 @@ let commands: ExtHostCommands; let disposables: vscode.Disposable[] = []; let originalErrorHandler: (e: any) => any; -function assertRejects(fn: () => Thenable, message: string = 'Expected rejection') { +function assertRejects(fn: () => Promise, message: string = 'Expected rejection') { return fn().then(() => assert.ok(false, message), _err => assert.ok(true)); } diff --git a/src/vs/workbench/test/electron-browser/api/extHostSearch.test.ts b/src/vs/workbench/test/electron-browser/api/extHostSearch.test.ts index 18c5c7078ae..29255835306 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostSearch.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostSearch.test.ts @@ -179,7 +179,7 @@ suite('ExtHostSearch', () => { test('no results', async () => { await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { return Promise.resolve(null); } }); @@ -197,7 +197,7 @@ suite('ExtHostSearch', () => { ]; await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { return Promise.resolve(reportedResults); } }); @@ -211,7 +211,7 @@ suite('ExtHostSearch', () => { test('Search canceled', async () => { let cancelRequested = false; await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { return new Promise((resolve, reject) => { token.onCancellationRequested(() => { cancelRequested = true; @@ -229,7 +229,7 @@ suite('ExtHostSearch', () => { test('provider returns null', async () => { await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { return null; } }); @@ -244,7 +244,7 @@ suite('ExtHostSearch', () => { test('all provider calls get global include/excludes', async () => { await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { assert(options.excludes.length === 2 && options.includes.length === 2, 'Missing global include/excludes'); return Promise.resolve(null); } @@ -273,7 +273,7 @@ suite('ExtHostSearch', () => { test('global/local include/excludes combined', async () => { await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { if (options.folder.toString() === rootFolderA.toString()) { assert.deepEqual(options.includes.sort(), ['*.ts', 'foo']); assert.deepEqual(options.excludes.sort(), ['*.js', 'bar']); @@ -315,7 +315,7 @@ suite('ExtHostSearch', () => { test('include/excludes resolved correctly', async () => { await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { assert.deepEqual(options.includes.sort(), ['*.jsx', '*.ts']); assert.deepEqual(options.excludes.sort(), []); @@ -358,7 +358,7 @@ suite('ExtHostSearch', () => { ]; await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { return Promise.resolve(reportedResults .map(relativePath => joinPath(options.folder, relativePath))); } @@ -389,7 +389,7 @@ suite('ExtHostSearch', () => { test('multiroot sibling exclude clause', async () => { await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { let reportedResults: URI[]; if (options.folder.fsPath === rootFolderA.fsPath) { reportedResults = [ @@ -459,7 +459,7 @@ suite('ExtHostSearch', () => { let wasCanceled = false; await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { token.onCancellationRequested(() => wasCanceled = true); return Promise.resolve(reportedResults); @@ -495,7 +495,7 @@ suite('ExtHostSearch', () => { let wasCanceled = false; await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { token.onCancellationRequested(() => wasCanceled = true); return Promise.resolve(reportedResults); @@ -530,7 +530,7 @@ suite('ExtHostSearch', () => { let wasCanceled = false; await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { token.onCancellationRequested(() => wasCanceled = true); return Promise.resolve(reportedResults); @@ -603,7 +603,7 @@ suite('ExtHostSearch', () => { ]; await registerTestFileSearchProvider({ - provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Thenable { + provideFileSearchResults(query: vscode.FileSearchQuery, options: vscode.FileSearchOptions, token: vscode.CancellationToken): Promise { return Promise.resolve(reportedResults); } }, fancyScheme); @@ -714,7 +714,7 @@ suite('ExtHostSearch', () => { test('no results', async () => { await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { return Promise.resolve(null); } }); @@ -731,7 +731,7 @@ suite('ExtHostSearch', () => { ]; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { providedResults.forEach(r => progress.report(r)); return Promise.resolve(null); } @@ -744,7 +744,7 @@ suite('ExtHostSearch', () => { test('all provider calls get global include/excludes', async () => { await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { assert.equal(options.includes.length, 1); assert.equal(options.excludes.length, 1); return Promise.resolve(null); @@ -774,7 +774,7 @@ suite('ExtHostSearch', () => { test('global/local include/excludes combined', async () => { await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { if (options.folder.toString() === rootFolderA.toString()) { assert.deepEqual(options.includes.sort(), ['*.ts', 'foo']); assert.deepEqual(options.excludes.sort(), ['*.js', 'bar']); @@ -816,7 +816,7 @@ suite('ExtHostSearch', () => { test('include/excludes resolved correctly', async () => { await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { assert.deepEqual(options.includes.sort(), ['*.jsx', '*.ts']); assert.deepEqual(options.excludes.sort(), []); @@ -854,7 +854,7 @@ suite('ExtHostSearch', () => { test('provider fail', async () => { await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { throw new Error('Provider fail'); } }); @@ -885,7 +885,7 @@ suite('ExtHostSearch', () => { ]; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { providedResults.forEach(r => progress.report(r)); return Promise.resolve(null); } @@ -930,7 +930,7 @@ suite('ExtHostSearch', () => { }; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { let reportedResults; if (options.folder.fsPath === rootFolderA.fsPath) { reportedResults = [ @@ -995,7 +995,7 @@ suite('ExtHostSearch', () => { ]; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { providedResults.forEach(r => progress.report(r)); return Promise.resolve(null); } @@ -1026,7 +1026,7 @@ suite('ExtHostSearch', () => { let wasCanceled = false; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { token.onCancellationRequested(() => wasCanceled = true); providedResults.forEach(r => progress.report(r)); return Promise.resolve(null); @@ -1059,7 +1059,7 @@ suite('ExtHostSearch', () => { let wasCanceled = false; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { token.onCancellationRequested(() => wasCanceled = true); providedResults.forEach(r => progress.report(r)); return Promise.resolve(null); @@ -1091,7 +1091,7 @@ suite('ExtHostSearch', () => { let wasCanceled = false; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { token.onCancellationRequested(() => wasCanceled = true); providedResults.forEach(r => progress.report(r)); return Promise.resolve(null); @@ -1123,7 +1123,7 @@ suite('ExtHostSearch', () => { ]; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { providedResults.forEach(r => progress.report(r)); return Promise.resolve({ limitHit: true }); } @@ -1185,7 +1185,7 @@ suite('ExtHostSearch', () => { ]; await registerTestTextSearchProvider({ - provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Thenable { + provideTextSearchResults(query: vscode.TextSearchQuery, options: vscode.TextSearchOptions, progress: vscode.Progress, token: vscode.CancellationToken): Promise { providedResults.forEach(r => progress.report(r)); return Promise.resolve(null); } diff --git a/src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts b/src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts index d2a5259f9f1..4bd240bee45 100644 --- a/src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts +++ b/src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts @@ -102,7 +102,7 @@ export class TestRPCProtocol implements IExtHostContext { const instance = this._locals[proxyId]; // pretend the args went over the wire... (invoke .toJSON on objects...) const wireArgs = simulateWireTransfer(args); - let p: Thenable; + let p: Promise; try { let result = (instance[path]).apply(instance, wireArgs); p = isThenable(result) ? result : Promise.resolve(result); diff --git a/src/vs/workbench/test/electron-browser/quickopen.perf.integrationTest.ts b/src/vs/workbench/test/electron-browser/quickopen.perf.integrationTest.ts index f8ebc1b5809..6ca70c16b49 100644 --- a/src/vs/workbench/test/electron-browser/quickopen.perf.integrationTest.ts +++ b/src/vs/workbench/test/electron-browser/quickopen.perf.integrationTest.ts @@ -135,7 +135,7 @@ suite.skip('QuickOpen performance (integration)', () => { if (testWorkspaceArg || verboseResults) { // Don't measure by default const cachedEvents: Timer.ITimerEvent[] = []; let i = n; - return (function iterate(): Thenable { + return (function iterate(): Promise { if (!i--) { return undefined; } diff --git a/src/vs/workbench/test/workbenchTestServices.ts b/src/vs/workbench/test/workbenchTestServices.ts index aa1f83507cf..49c0433cdb3 100644 --- a/src/vs/workbench/test/workbenchTestServices.ts +++ b/src/vs/workbench/test/workbenchTestServices.ts @@ -204,7 +204,7 @@ export class TestTextFileService extends TextFileService { this.resolveTextContentError = error; } - public resolveTextContent(resource: URI, options?: IResolveContentOptions): Thenable { + public resolveTextContent(resource: URI, options?: IResolveContentOptions): Promise { if (this.resolveTextContentError) { const error = this.resolveTextContentError; this.resolveTextContentError = null; @@ -224,11 +224,11 @@ export class TestTextFileService extends TextFileService { }); } - public promptForPath(_resource: URI, _defaultPath: URI): Thenable { + public promptForPath(_resource: URI, _defaultPath: URI): Promise { return Promise.resolve(this.promptPath); } - public confirmSave(_resources?: URI[]): Thenable { + public confirmSave(_resources?: URI[]): Promise { return Promise.resolve(this.confirmResult); } @@ -236,7 +236,7 @@ export class TestTextFileService extends TextFileService { super.onFilesConfigurationChange(configuration); } - protected cleanupBackupsBeforeShutdown(): Thenable { + protected cleanupBackupsBeforeShutdown(): Promise { this.cleanupBackupsBeforeShutdownCalled = true; return Promise.resolve(); } @@ -310,7 +310,7 @@ export class TestExtensionService implements IExtensionService { onDidChangeExtensionsStatus: Event = Event.None; onWillActivateByEvent: Event = Event.None; onDidChangeResponsiveChange: Event = Event.None; - activateByEvent(_activationEvent: string): Thenable { return Promise.resolve(void 0); } + activateByEvent(_activationEvent: string): Promise { return Promise.resolve(void 0); } whenInstalledExtensionsRegistered(): Promise { return Promise.resolve(true); } getExtensions(): Promise { return Promise.resolve([]); } getExtension() { return Promise.resolve(undefined); } @@ -385,11 +385,11 @@ export class TestDialogService implements IDialogService { public _serviceBrand: any; - public confirm(_confirmation: IConfirmation): Thenable { + public confirm(_confirmation: IConfirmation): Promise { return Promise.resolve({ confirmed: false }); } - public show(_severity: Severity, _message: string, _buttons: string[], _options?: IDialogOptions): Thenable { + public show(_severity: Severity, _message: string, _buttons: string[], _options?: IDialogOptions): Promise { return Promise.resolve(0); } } @@ -407,22 +407,22 @@ export class TestFileDialogService implements IFileDialogService { public defaultWorkspacePath(_schemeFilter: string): URI { return void 0; } - public pickFileFolderAndOpen(_options: IPickAndOpenOptions): Thenable { + public pickFileFolderAndOpen(_options: IPickAndOpenOptions): Promise { return Promise.resolve(0); } - public pickFileAndOpen(_options: IPickAndOpenOptions): Thenable { + public pickFileAndOpen(_options: IPickAndOpenOptions): Promise { return Promise.resolve(0); } - public pickFolderAndOpen(_options: IPickAndOpenOptions): Thenable { + public pickFolderAndOpen(_options: IPickAndOpenOptions): Promise { return Promise.resolve(0); } - public pickWorkspaceAndOpen(_options: IPickAndOpenOptions): Thenable { + public pickWorkspaceAndOpen(_options: IPickAndOpenOptions): Promise { return Promise.resolve(0); } - public showSaveDialog(_options: ISaveDialogOptions): Thenable { + public showSaveDialog(_options: ISaveDialogOptions): Promise { return Promise.resolve(); } - public showOpenDialog(_options: IOpenDialogOptions): Thenable { + public showOpenDialog(_options: IOpenDialogOptions): Promise { return Promise.resolve(); } } @@ -485,13 +485,13 @@ export class TestPartService implements IPartService { return false; } - public setSideBarHidden(_hidden: boolean): Thenable { return Promise.resolve(null); } + public setSideBarHidden(_hidden: boolean): Promise { return Promise.resolve(null); } public isPanelHidden(): boolean { return false; } - public setPanelHidden(_hidden: boolean): Thenable { return Promise.resolve(null); } + public setPanelHidden(_hidden: boolean): Promise { return Promise.resolve(null); } public toggleMaximizedPanel(): void { } @@ -511,7 +511,7 @@ export class TestPartService implements IPartService { return 0; } - public setPanelPosition(_position: PartPosition): Thenable { + public setPanelPosition(_position: PartPosition): Promise { return Promise.resolve(null); } @@ -541,7 +541,7 @@ export class TestEditorGroupsService implements EditorGroupsServiceImpl { onDidMoveGroup: Event = Event.None; orientation: any; - whenRestored: Thenable = Promise.resolve(void 0); + whenRestored: Promise = Promise.resolve(void 0); get activeGroup(): IEditorGroup { return this.groups[0]; @@ -620,7 +620,7 @@ export class TestEditorGroup implements IEditorGroupView { disposed: boolean; editors: ReadonlyArray = []; label: string; - whenRestored: Thenable = Promise.resolve(void 0); + whenRestored: Promise = Promise.resolve(void 0); element: HTMLElement; minimumWidth: number; maximumWidth: number; @@ -648,11 +648,11 @@ export class TestEditorGroup implements IEditorGroupView { return -1; } - openEditor(_editor: IEditorInput, _options?: IEditorOptions): Thenable { + openEditor(_editor: IEditorInput, _options?: IEditorOptions): Promise { return Promise.resolve(null); } - openEditors(_editors: IEditorInputWithOptions[]): Thenable { + openEditors(_editors: IEditorInputWithOptions[]): Promise { return Promise.resolve(null); } @@ -672,19 +672,19 @@ export class TestEditorGroup implements IEditorGroupView { copyEditor(_editor: IEditorInput, _target: IEditorGroup, _options?: ICopyEditorOptions): void { } - closeEditor(_editor?: IEditorInput): Thenable { + closeEditor(_editor?: IEditorInput): Promise { return Promise.resolve(); } - closeEditors(_editors: IEditorInput[] | { except?: IEditorInput; direction?: CloseDirection; savedOnly?: boolean; }): Thenable { + closeEditors(_editors: IEditorInput[] | { except?: IEditorInput; direction?: CloseDirection; savedOnly?: boolean; }): Promise { return Promise.resolve(); } - closeAllEditors(): Thenable { + closeAllEditors(): Promise { return Promise.resolve(); } - replaceEditors(_editors: IEditorReplacement[]): Thenable { + replaceEditors(_editors: IEditorReplacement[]): Promise { return Promise.resolve(); } @@ -795,7 +795,7 @@ export class TestFileService implements IFileService { this._onAfterOperation.fire(event); } - resolveFile(resource: URI, _options?: IResolveFileOptions): Thenable { + resolveFile(resource: URI, _options?: IResolveFileOptions): Promise { return Promise.resolve({ resource, etag: Date.now().toString(), @@ -806,15 +806,15 @@ export class TestFileService implements IFileService { }); } - resolveFiles(toResolve: { resource: URI, options?: IResolveFileOptions }[]): Thenable { + resolveFiles(toResolve: { resource: URI, options?: IResolveFileOptions }[]): Promise { return Promise.all(toResolve.map(resourceAndOption => this.resolveFile(resourceAndOption.resource, resourceAndOption.options))).then(stats => stats.map(stat => ({ stat, success: true }))); } - existsFile(_resource: URI): Thenable { + existsFile(_resource: URI): Promise { return Promise.resolve(null); } - resolveContent(resource: URI, _options?: IResolveContentOptions): Thenable { + resolveContent(resource: URI, _options?: IResolveContentOptions): Promise { return Promise.resolve({ resource: resource, value: this.content, @@ -825,7 +825,7 @@ export class TestFileService implements IFileService { }); } - resolveStreamContent(resource: URI, _options?: IResolveContentOptions): Thenable { + resolveStreamContent(resource: URI, _options?: IResolveContentOptions): Promise { return Promise.resolve({ resource: resource, value: { @@ -845,7 +845,7 @@ export class TestFileService implements IFileService { }); } - updateContent(resource: URI, _value: string | ITextSnapshot, _options?: IUpdateContentOptions): Thenable { + updateContent(resource: URI, _value: string | ITextSnapshot, _options?: IUpdateContentOptions): Promise { return timeout(0).then(() => ({ resource, etag: 'index.txt', @@ -856,15 +856,15 @@ export class TestFileService implements IFileService { })); } - moveFile(_source: URI, _target: URI, _overwrite?: boolean): Thenable { + moveFile(_source: URI, _target: URI, _overwrite?: boolean): Promise { return Promise.resolve(null); } - copyFile(_source: URI, _target: URI, _overwrite?: boolean): Thenable { + copyFile(_source: URI, _target: URI, _overwrite?: boolean): Promise { return Promise.resolve(null); } - createFile(_resource: URI, _content?: string, _options?: ICreateFileOptions): Thenable { + createFile(_resource: URI, _content?: string, _options?: ICreateFileOptions): Promise { return Promise.resolve(null); } @@ -872,7 +872,7 @@ export class TestFileService implements IFileService { return Promise.resolve([]); } - createFolder(_resource: URI): Thenable { + createFolder(_resource: URI): Promise { return Promise.resolve(null); } @@ -890,7 +890,7 @@ export class TestFileService implements IFileService { return resource.scheme === 'file'; } - del(_resource: URI, _options?: { useTrash?: boolean, recursive?: boolean }): Thenable { + del(_resource: URI, _options?: { useTrash?: boolean, recursive?: boolean }): Promise { return Promise.resolve(null); } @@ -911,15 +911,15 @@ export class TestFileService implements IFileService { export class TestBackupFileService implements IBackupFileService { public _serviceBrand: any; - public hasBackups(): Thenable { + public hasBackups(): Promise { return Promise.resolve(false); } - public hasBackup(_resource: URI): Thenable { + public hasBackup(_resource: URI): Promise { return Promise.resolve(false); } - public loadBackupResource(resource: URI): Thenable { + public loadBackupResource(resource: URI): Promise { return this.hasBackup(resource).then(hasBackup => { if (hasBackup) { return this.toBackupResource(resource); @@ -929,11 +929,11 @@ export class TestBackupFileService implements IBackupFileService { }); } - public registerResourceForBackup(_resource: URI): Thenable { + public registerResourceForBackup(_resource: URI): Promise { return Promise.resolve(); } - public deregisterResourceForBackup(_resource: URI): Thenable { + public deregisterResourceForBackup(_resource: URI): Promise { return Promise.resolve(); } @@ -941,11 +941,11 @@ export class TestBackupFileService implements IBackupFileService { return null; } - public backupResource(_resource: URI, _content: ITextSnapshot): Thenable { + public backupResource(_resource: URI, _content: ITextSnapshot): Promise { return Promise.resolve(); } - public getWorkspaceFileBackups(): Thenable { + public getWorkspaceFileBackups(): Promise { return Promise.resolve([]); } @@ -956,15 +956,15 @@ export class TestBackupFileService implements IBackupFileService { return textBuffer.getValueInRange(range, EndOfLinePreference.TextDefined); } - public resolveBackupContent(_backup: URI): Thenable { + public resolveBackupContent(_backup: URI): Promise { return Promise.resolve(null); } - public discardResourceBackup(_resource: URI): Thenable { + public discardResourceBackup(_resource: URI): Promise { return Promise.resolve(); } - public discardAllWorkspaceBackups(): Thenable { + public discardAllWorkspaceBackups(): Promise { return Promise.resolve(); } } @@ -991,7 +991,7 @@ export class TestCodeEditorService implements ICodeEditorService { setTransientModelProperty(_model: ITextModel, _key: string, _value: any): void { } getTransientModelProperty(_model: ITextModel, _key: string) { } getActiveCodeEditor(): ICodeEditor { return null; } - openCodeEditor(_input: IResourceInput, _source: ICodeEditor, _sideBySide?: boolean): Thenable { return Promise.resolve(); } + openCodeEditor(_input: IResourceInput, _source: ICodeEditor, _sideBySide?: boolean): Promise { return Promise.resolve(); } } export class TestWindowService implements IWindowService { @@ -1003,11 +1003,11 @@ export class TestWindowService implements IWindowService { hasFocus = true; - isFocused(): Thenable { + isFocused(): Promise { return Promise.resolve(false); } - isMaximized(): Thenable { + isMaximized(): Promise { return Promise.resolve(false); } @@ -1019,111 +1019,111 @@ export class TestWindowService implements IWindowService { return 0; } - pickFileFolderAndOpen(_options: INativeOpenDialogOptions): Thenable { + pickFileFolderAndOpen(_options: INativeOpenDialogOptions): Promise { return Promise.resolve(); } - pickFileAndOpen(_options: INativeOpenDialogOptions): Thenable { + pickFileAndOpen(_options: INativeOpenDialogOptions): Promise { return Promise.resolve(); } - pickFolderAndOpen(_options: INativeOpenDialogOptions): Thenable { + pickFolderAndOpen(_options: INativeOpenDialogOptions): Promise { return Promise.resolve(); } - pickWorkspaceAndOpen(_options: INativeOpenDialogOptions): Thenable { + pickWorkspaceAndOpen(_options: INativeOpenDialogOptions): Promise { return Promise.resolve(); } - reloadWindow(): Thenable { + reloadWindow(): Promise { return Promise.resolve(); } - openDevTools(): Thenable { + openDevTools(): Promise { return Promise.resolve(); } - toggleDevTools(): Thenable { + toggleDevTools(): Promise { return Promise.resolve(); } - closeWorkspace(): Thenable { + closeWorkspace(): Promise { return Promise.resolve(); } - enterWorkspace(_path: string): Thenable { + enterWorkspace(_path: string): Promise { return Promise.resolve(); } - createAndEnterWorkspace(_folders?: IWorkspaceFolderCreationData[], _path?: string): Thenable { + createAndEnterWorkspace(_folders?: IWorkspaceFolderCreationData[], _path?: string): Promise { return Promise.resolve(); } - saveAndEnterWorkspace(_path: string): Thenable { + saveAndEnterWorkspace(_path: string): Promise { return Promise.resolve(); } - toggleFullScreen(): Thenable { + toggleFullScreen(): Promise { return Promise.resolve(); } - setRepresentedFilename(_fileName: string): Thenable { + setRepresentedFilename(_fileName: string): Promise { return Promise.resolve(); } - getRecentlyOpened(): Thenable { + getRecentlyOpened(): Promise { return Promise.resolve(); } - focusWindow(): Thenable { + focusWindow(): Promise { return Promise.resolve(); } - maximizeWindow(): Thenable { + maximizeWindow(): Promise { return Promise.resolve(); } - unmaximizeWindow(): Thenable { + unmaximizeWindow(): Promise { return Promise.resolve(); } - minimizeWindow(): Thenable { + minimizeWindow(): Promise { return Promise.resolve(); } - openWindow(_paths: URI[], _options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean }): Thenable { + openWindow(_paths: URI[], _options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean }): Promise { return Promise.resolve(); } - closeWindow(): Thenable { + closeWindow(): Promise { return Promise.resolve(); } - setDocumentEdited(_flag: boolean): Thenable { + setDocumentEdited(_flag: boolean): Promise { return Promise.resolve(); } - onWindowTitleDoubleClick(): Thenable { + onWindowTitleDoubleClick(): Promise { return Promise.resolve(); } - show(): Thenable { + show(): Promise { return Promise.resolve(); } - showMessageBox(_options: Electron.MessageBoxOptions): Thenable { + showMessageBox(_options: Electron.MessageBoxOptions): Promise { return Promise.resolve({ button: 0 }); } - showSaveDialog(_options: Electron.SaveDialogOptions): Thenable { + showSaveDialog(_options: Electron.SaveDialogOptions): Promise { return Promise.resolve(void 0); } - showOpenDialog(_options: Electron.OpenDialogOptions): Thenable { + showOpenDialog(_options: Electron.OpenDialogOptions): Promise { return Promise.resolve(void 0); } - updateTouchBar(_items: ISerializableCommandAction[][]): Thenable { + updateTouchBar(_items: ISerializableCommandAction[][]): Promise { return Promise.resolve(); } @@ -1143,7 +1143,7 @@ export class TestLifecycleService implements ILifecycleService { private _onWillShutdown = new Emitter(); private _onShutdown = new Emitter(); - when(): Thenable { + when(): Promise { return Promise.resolve(); } @@ -1184,211 +1184,211 @@ export class TestWindowsService implements IWindowsService { onWindowUnmaximize: Event; onRecentlyOpenedChange: Event; - isFocused(_windowId: number): Thenable { + isFocused(_windowId: number): Promise { return Promise.resolve(false); } - pickFileFolderAndOpen(_options: INativeOpenDialogOptions): Thenable { + pickFileFolderAndOpen(_options: INativeOpenDialogOptions): Promise { return Promise.resolve(); } - pickFileAndOpen(_options: INativeOpenDialogOptions): Thenable { + pickFileAndOpen(_options: INativeOpenDialogOptions): Promise { return Promise.resolve(); } - pickFolderAndOpen(_options: INativeOpenDialogOptions): Thenable { + pickFolderAndOpen(_options: INativeOpenDialogOptions): Promise { return Promise.resolve(); } - pickWorkspaceAndOpen(_options: INativeOpenDialogOptions): Thenable { + pickWorkspaceAndOpen(_options: INativeOpenDialogOptions): Promise { return Promise.resolve(); } - reloadWindow(_windowId: number): Thenable { + reloadWindow(_windowId: number): Promise { return Promise.resolve(); } - openDevTools(_windowId: number): Thenable { + openDevTools(_windowId: number): Promise { return Promise.resolve(); } - toggleDevTools(_windowId: number): Thenable { + toggleDevTools(_windowId: number): Promise { return Promise.resolve(); } - closeWorkspace(_windowId: number): Thenable { + closeWorkspace(_windowId: number): Promise { return Promise.resolve(); } - enterWorkspace(_windowId: number, _path: string): Thenable { + enterWorkspace(_windowId: number, _path: string): Promise { return Promise.resolve(); } - createAndEnterWorkspace(_windowId: number, _folders?: IWorkspaceFolderCreationData[], _path?: string): Thenable { + createAndEnterWorkspace(_windowId: number, _folders?: IWorkspaceFolderCreationData[], _path?: string): Promise { return Promise.resolve(); } - saveAndEnterWorkspace(_windowId: number, _path: string): Thenable { + saveAndEnterWorkspace(_windowId: number, _path: string): Promise { return Promise.resolve(); } - toggleFullScreen(_windowId: number): Thenable { + toggleFullScreen(_windowId: number): Promise { return Promise.resolve(); } - setRepresentedFilename(_windowId: number, _fileName: string): Thenable { + setRepresentedFilename(_windowId: number, _fileName: string): Promise { return Promise.resolve(); } - addRecentlyOpened(_files: URI[]): Thenable { + addRecentlyOpened(_files: URI[]): Promise { return Promise.resolve(); } - removeFromRecentlyOpened(_paths: URI[]): Thenable { + removeFromRecentlyOpened(_paths: URI[]): Promise { return Promise.resolve(); } - clearRecentlyOpened(): Thenable { + clearRecentlyOpened(): Promise { return Promise.resolve(); } - getRecentlyOpened(_windowId: number): Thenable { + getRecentlyOpened(_windowId: number): Promise { return Promise.resolve(); } - focusWindow(_windowId: number): Thenable { + focusWindow(_windowId: number): Promise { return Promise.resolve(); } - closeWindow(_windowId: number): Thenable { + closeWindow(_windowId: number): Promise { return Promise.resolve(); } - isMaximized(_windowId: number): Thenable { + isMaximized(_windowId: number): Promise { return Promise.resolve(); } - maximizeWindow(_windowId: number): Thenable { + maximizeWindow(_windowId: number): Promise { return Promise.resolve(); } - minimizeWindow(_windowId: number): Thenable { + minimizeWindow(_windowId: number): Promise { return Promise.resolve(); } - unmaximizeWindow(_windowId: number): Thenable { + unmaximizeWindow(_windowId: number): Promise { return Promise.resolve(); } - onWindowTitleDoubleClick(_windowId: number): Thenable { + onWindowTitleDoubleClick(_windowId: number): Promise { return Promise.resolve(); } - setDocumentEdited(_windowId: number, _flag: boolean): Thenable { + setDocumentEdited(_windowId: number, _flag: boolean): Promise { return Promise.resolve(); } - quit(): Thenable { + quit(): Promise { return Promise.resolve(); } - relaunch(_options: { addArgs?: string[], removeArgs?: string[] }): Thenable { + relaunch(_options: { addArgs?: string[], removeArgs?: string[] }): Promise { return Promise.resolve(); } - whenSharedProcessReady(): Thenable { + whenSharedProcessReady(): Promise { return Promise.resolve(); } - toggleSharedProcess(): Thenable { + toggleSharedProcess(): Promise { return Promise.resolve(); } // Global methods - openWindow(_windowId: number, _paths: URI[], _options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean }): Thenable { + openWindow(_windowId: number, _paths: URI[], _options?: { forceNewWindow?: boolean, forceReuseWindow?: boolean, forceOpenWorkspaceAsFile?: boolean }): Promise { return Promise.resolve(); } - openNewWindow(): Thenable { + openNewWindow(): Promise { return Promise.resolve(); } - showWindow(_windowId: number): Thenable { + showWindow(_windowId: number): Promise { return Promise.resolve(); } - getWindows(): Thenable<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]> { + getWindows(): Promise<{ id: number; workspace?: IWorkspaceIdentifier; folderUri?: ISingleFolderWorkspaceIdentifier; title: string; filename?: string; }[]> { return Promise.resolve(); } - getWindowCount(): Thenable { + getWindowCount(): Promise { return Promise.resolve(this.windowCount); } - log(_severity: string, ..._messages: string[]): Thenable { + log(_severity: string, ..._messages: string[]): Promise { return Promise.resolve(); } - showItemInFolder(_path: string): Thenable { + showItemInFolder(_path: string): Promise { return Promise.resolve(); } - newWindowTab(): Thenable { + newWindowTab(): Promise { return Promise.resolve(); } - showPreviousWindowTab(): Thenable { + showPreviousWindowTab(): Promise { return Promise.resolve(); } - showNextWindowTab(): Thenable { + showNextWindowTab(): Promise { return Promise.resolve(); } - moveWindowTabToNewWindow(): Thenable { + moveWindowTabToNewWindow(): Promise { return Promise.resolve(); } - mergeAllWindowTabs(): Thenable { + mergeAllWindowTabs(): Promise { return Promise.resolve(); } - toggleWindowTabsBar(): Thenable { + toggleWindowTabsBar(): Promise { return Promise.resolve(); } - updateTouchBar(_windowId: number, _items: ISerializableCommandAction[][]): Thenable { + updateTouchBar(_windowId: number, _items: ISerializableCommandAction[][]): Promise { return Promise.resolve(); } - getActiveWindowId(): Thenable { + getActiveWindowId(): Promise { return Promise.resolve(undefined); } // This needs to be handled from browser process to prevent // foreground ordering issues on Windows - openExternal(_url: string): Thenable { + openExternal(_url: string): Promise { return Promise.resolve(true); } // TODO: this is a bit backwards - startCrashReporter(_config: Electron.CrashReporterStartOptions): Thenable { + startCrashReporter(_config: Electron.CrashReporterStartOptions): Promise { return Promise.resolve(); } - showMessageBox(_windowId: number, _options: Electron.MessageBoxOptions): Thenable { + showMessageBox(_windowId: number, _options: Electron.MessageBoxOptions): Promise { return Promise.resolve(); } - showSaveDialog(_windowId: number, _options: Electron.SaveDialogOptions): Thenable { + showSaveDialog(_windowId: number, _options: Electron.SaveDialogOptions): Promise { return Promise.resolve(); } - showOpenDialog(_windowId: number, _options: Electron.OpenDialogOptions): Thenable { + showOpenDialog(_windowId: number, _options: Electron.OpenDialogOptions): Promise { return Promise.resolve(); } - openAboutDialog(): Thenable { + openAboutDialog(): Promise { return Promise.resolve(); }