From d319d356bd0c46a5cb3494cb2ddb56f80df82ec7 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Tue, 7 Nov 2017 16:48:38 -0800 Subject: [PATCH] Don't register a new TypeScriptWorkspaceSymbolProvider for each mode, only for each language --- .../typescript/src/features/workspaceSymbolProvider.ts | 7 ++++--- extensions/typescript/src/typescriptMain.ts | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/extensions/typescript/src/features/workspaceSymbolProvider.ts b/extensions/typescript/src/features/workspaceSymbolProvider.ts index a25f2a9e3a2..b344f5498ce 100644 --- a/extensions/typescript/src/features/workspaceSymbolProvider.ts +++ b/extensions/typescript/src/features/workspaceSymbolProvider.ts @@ -24,7 +24,8 @@ function getSymbolKind(item: Proto.NavtoItem): SymbolKind { export default class TypeScriptWorkspaceSymbolProvider implements WorkspaceSymbolProvider { public constructor( private client: ITypeScriptServiceClient, - private modeId: string) { } + private modeIds: string[] + ) { } public async provideWorkspaceSymbols(search: string, token: CancellationToken): Promise { // typescript wants to have a resource even when asking @@ -34,14 +35,14 @@ export default class TypeScriptWorkspaceSymbolProvider implements WorkspaceSymbo const editor = window.activeTextEditor; if (editor) { const document = editor.document; - if (document && document.languageId === this.modeId) { + if (document && this.modeIds.indexOf(document.languageId) >= 0) { uri = document.uri; } } if (!uri) { const documents = workspace.textDocuments; for (const document of documents) { - if (document.languageId === this.modeId) { + if (this.modeIds.indexOf(document.languageId) >= 0) { uri = document.uri; break; } diff --git a/extensions/typescript/src/typescriptMain.ts b/extensions/typescript/src/typescriptMain.ts index a901e51fb09..91f6780b2cd 100644 --- a/extensions/typescript/src/typescriptMain.ts +++ b/extensions/typescript/src/typescriptMain.ts @@ -334,10 +334,10 @@ class LanguageProvider { this.toUpdateOnConfigurationChanged.push(implementationCodeLensProvider); this.disposables.push(languages.registerCodeLensProvider(selector, implementationCodeLensProvider)); - for (const modeId of this.description.modeIds) { - this.disposables.push(languages.registerWorkspaceSymbolProvider(new (await import('./features/workspaceSymbolProvider')).default(client, modeId))); + this.disposables.push(languages.registerWorkspaceSymbolProvider(new (await import('./features/workspaceSymbolProvider')).default(client, this.description.modeIds))); - if (!this.description.isExternal) { + if (!this.description.isExternal) { + for (const modeId of this.description.modeIds) { this.disposables.push(languages.setLanguageConfiguration(modeId, { indentationRules: { // ^(.*\*/)?\s*\}.*$