diff --git a/extensions/typescript-language-features/src/features/semanticColoring.ts b/extensions/typescript-language-features/src/features/semanticColoring.ts index 950e8265f0cd708a112c9bcb87a0e6c313a3529b..71da3a8bb51de62401cfb2f32a2a0379e355f9b1 100644 --- a/extensions/typescript-language-features/src/features/semanticColoring.ts +++ b/extensions/typescript-language-features/src/features/semanticColoring.ts @@ -112,5 +112,6 @@ export function register( selector: vscode.DocumentSelector, client: ITypeScriptServiceClient ) { - return vscode.languages.registerSemanticColoringProvider(selector, new SemanticColoringProvider(client)); + const provider = new SemanticColoringProvider(client); + return vscode.languages.registerSemanticColoringProvider(selector, provider, provider.getLegend()); } diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index fa5dae3a6d92c59e1dff005ff72eacb74fc75c95..a3eb3e05f5fe166ce0abb765befcd9ac607c9494 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -110,8 +110,6 @@ declare module 'vscode' { */ export interface SemanticColoringProvider { - getLegend(): SemanticColoringLegend; - provideSemanticColoring(document: TextDocument, token: CancellationToken): ProviderResult; } @@ -127,7 +125,7 @@ declare module 'vscode' { * @param provider A semantic coloring provider. * @return A [disposable](#Disposable) that unregisters this provider when being disposed. */ - export function registerSemanticColoringProvider(selector: DocumentSelector, provider: SemanticColoringProvider): Disposable; + export function registerSemanticColoringProvider(selector: DocumentSelector, provider: SemanticColoringProvider, legend: SemanticColoringLegend): Disposable; } //#endregion diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts index 56d1d7a436c51f00999c446de14672b8eb7109ac..2de32bbf23dcf53fe0cb5b766132e4fe1650edc2 100644 --- a/src/vs/workbench/api/common/extHost.api.impl.ts +++ b/src/vs/workbench/api/common/extHost.api.impl.ts @@ -352,9 +352,9 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I registerOnTypeFormattingEditProvider(selector: vscode.DocumentSelector, provider: vscode.OnTypeFormattingEditProvider, firstTriggerCharacter: string, ...moreTriggerCharacters: string[]): vscode.Disposable { return extHostLanguageFeatures.registerOnTypeFormattingEditProvider(extension, checkSelector(selector), provider, [firstTriggerCharacter].concat(moreTriggerCharacters)); }, - registerSemanticColoringProvider(selector: vscode.DocumentSelector, provider: vscode.SemanticColoringProvider): vscode.Disposable { + registerSemanticColoringProvider(selector: vscode.DocumentSelector, provider: vscode.SemanticColoringProvider, legend: vscode.SemanticColoringLegend): vscode.Disposable { checkProposedApiEnabled(extension); - return extHostLanguageFeatures.registerSemanticColoringProvider(extension, checkSelector(selector), provider); + return extHostLanguageFeatures.registerSemanticColoringProvider(extension, checkSelector(selector), provider, legend); }, registerSignatureHelpProvider(selector: vscode.DocumentSelector, provider: vscode.SignatureHelpProvider, firstItem?: string | vscode.SignatureHelpProviderMetadata, ...remaining: string[]): vscode.Disposable { if (typeof firstItem === 'object') { diff --git a/src/vs/workbench/api/common/extHostLanguageFeatures.ts b/src/vs/workbench/api/common/extHostLanguageFeatures.ts index fc55f9018b47b5cf51d6d028221ae53a944bd7e4..4e34ccc61046cc7a6e76e6b21c6bd4e3920a80c4 100644 --- a/src/vs/workbench/api/common/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/common/extHostLanguageFeatures.ts @@ -1532,9 +1532,9 @@ export class ExtHostLanguageFeatures implements extHostProtocol.ExtHostLanguageF //#region semantic coloring - registerSemanticColoringProvider(extension: IExtensionDescription, selector: vscode.DocumentSelector, provider: vscode.SemanticColoringProvider): vscode.Disposable { + registerSemanticColoringProvider(extension: IExtensionDescription, selector: vscode.DocumentSelector, provider: vscode.SemanticColoringProvider, legend: vscode.SemanticColoringLegend): vscode.Disposable { const handle = this._addNewAdapter(new SemanticColoringAdapter(this._documents, provider), extension); - this._proxy.$registerSemanticColoringProvider(handle, this._transformDocumentSelector(selector), provider.getLegend()); + this._proxy.$registerSemanticColoringProvider(handle, this._transformDocumentSelector(selector), legend); return this._createDisposable(handle); }