diff --git a/src/vs/workbench/api/electron-browser/mainThreadDecorations.ts b/src/vs/workbench/api/electron-browser/mainThreadDecorations.ts index 98c247443d3fb6a6e2e3aaff80b690539bb7b16f..6d43cc159d36143228588896a363c4ca71af579d 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadDecorations.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadDecorations.ts @@ -50,7 +50,7 @@ class DecorationRequestsQueue { // make request const requests = this._requests; const resolver = this._resolver; - this._proxy.$provideDecorations(values(requests)).then(data => { + this._proxy.$provideDecorations(values(requests), CancellationToken.None).then(data => { for (const id in resolver) { resolver[id](data[id]); } diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index c90c1b2b6c046b3dfa27d6cc361f195d677fdcda..1b0d1fb485a062941f8e6b4557b7afa3ff4b764e 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -971,7 +971,7 @@ export type DecorationData = [number, boolean, string, string, ThemeColor, strin export type DecorationReply = { [id: number]: DecorationData }; export interface ExtHostDecorationsShape { - $provideDecorations(requests: DecorationRequest[]): Thenable; + $provideDecorations(requests: DecorationRequest[], token: CancellationToken): Thenable; } export interface ExtHostWindowShape { diff --git a/src/vs/workbench/api/node/extHostDecorations.ts b/src/vs/workbench/api/node/extHostDecorations.ts index 85641cf92b13ae850c3f9c76ab6e30d45513d496..0e402fd31b36f133f4aca51fa3b02b0e23965049 100644 --- a/src/vs/workbench/api/node/extHostDecorations.ts +++ b/src/vs/workbench/api/node/extHostDecorations.ts @@ -9,7 +9,7 @@ import { URI } from 'vs/base/common/uri'; import { MainContext, IMainContext, ExtHostDecorationsShape, MainThreadDecorationsShape, DecorationData, DecorationRequest, DecorationReply } from 'vs/workbench/api/node/extHost.protocol'; import { TPromise } from 'vs/base/common/winjs.base'; import { Disposable } from 'vs/workbench/api/node/extHostTypes'; -import { asWinJsPromise } from 'vs/base/common/async'; +import { CancellationToken } from 'vs/base/common/cancellation'; interface ProviderData { provider: vscode.DecorationProvider; @@ -43,7 +43,7 @@ export class ExtHostDecorations implements ExtHostDecorationsShape { }); } - $provideDecorations(requests: DecorationRequest[]): TPromise { + $provideDecorations(requests: DecorationRequest[], token: CancellationToken): Thenable { const result: DecorationReply = Object.create(null); return TPromise.join(requests.map(request => { const { handle, uri, id } = request; @@ -52,7 +52,7 @@ export class ExtHostDecorations implements ExtHostDecorationsShape { return void 0; } const { provider, extensionId } = this._provider.get(handle); - return asWinJsPromise(token => provider.provideDecoration(URI.revive(uri), token)).then(data => { + return Promise.resolve(provider.provideDecoration(URI.revive(uri), token)).then(data => { if (data && data.letter && data.letter.length !== 1) { console.warn(`INVALID decoration from extension '${extensionId}'. The 'letter' must be set and be one character, not '${data.letter}'.`); }