diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 995d0b874c6..6f2066a45ce 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -659,7 +659,7 @@ export interface DocumentSymbol { */ export interface DocumentSymbolProvider { - extensionId?: string; + displayName?: string; /** * Provide symbol information for the given document. diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 998803ccd25..040e9578dcf 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -4886,7 +4886,7 @@ declare namespace monaco.languages { * the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_goto-symbol)-feature. */ export interface DocumentSymbolProvider { - extensionId?: string; + displayName?: string; /** * Provide symbol information for the given document. */ diff --git a/src/vs/workbench/api/electron-browser/mainThreadLanguageFeatures.ts b/src/vs/workbench/api/electron-browser/mainThreadLanguageFeatures.ts index 1125227d0b2..ba2cef0387a 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadLanguageFeatures.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadLanguageFeatures.ts @@ -97,9 +97,9 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha // --- outline - $registerOutlineSupport(handle: number, selector: ISerializedDocumentFilter[], extensionId: string): void { + $registerOutlineSupport(handle: number, selector: ISerializedDocumentFilter[], displayName: string): void { this._registrations[handle] = modes.DocumentSymbolProviderRegistry.register(typeConverters.LanguageSelector.from(selector), { - extensionId, + displayName, provideDocumentSymbols: (model: ITextModel, token: CancellationToken): Thenable => { return wireCancellationToken(token, this._proxy.$provideDocumentSymbols(handle, model.uri)); } diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 39be82bde52..2e7cc86e8db 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -289,7 +289,7 @@ export function createApiFactory( return extHostLanguageFeatures.registerRenameProvider(checkSelector(selector), provider); }, registerDocumentSymbolProvider(selector: vscode.DocumentSelector, provider: vscode.DocumentSymbolProvider): vscode.Disposable { - return extHostLanguageFeatures.registerDocumentSymbolProvider(checkSelector(selector), provider, extension.id); + return extHostLanguageFeatures.registerDocumentSymbolProvider(checkSelector(selector), provider, extension); }, registerWorkspaceSymbolProvider(provider: vscode.WorkspaceSymbolProvider): vscode.Disposable { return extHostLanguageFeatures.registerWorkspaceSymbolProvider(provider); diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index 053f23442c2..c07557aa79c 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -24,6 +24,7 @@ import { IRange, Range as EditorRange } from 'vs/editor/common/core/range'; import { isFalsyOrEmpty } from 'vs/base/common/arrays'; import { isObject } from 'vs/base/common/types'; import { ISelection, Selection } from 'vs/editor/common/core/selection'; +import { IExtensionDescription } from 'vs/workbench/services/extensions/common/extensions'; // --- adapter @@ -929,9 +930,9 @@ export class ExtHostLanguageFeatures implements ExtHostLanguageFeaturesShape { // --- outline - registerDocumentSymbolProvider(selector: vscode.DocumentSelector, provider: vscode.DocumentSymbolProvider, extensionId?: string): vscode.Disposable { + registerDocumentSymbolProvider(selector: vscode.DocumentSelector, provider: vscode.DocumentSymbolProvider, extension?: IExtensionDescription): vscode.Disposable { const handle = this._addNewAdapter(new OutlineAdapter(this._documents, provider)); - this._proxy.$registerOutlineSupport(handle, this._transformDocumentSelector(selector), extensionId); + this._proxy.$registerOutlineSupport(handle, this._transformDocumentSelector(selector), extension ? extension.displayName || extension.name : undefined); return this._createDisposable(handle); } diff --git a/src/vs/workbench/parts/outline/electron-browser/outlineTree.ts b/src/vs/workbench/parts/outline/electron-browser/outlineTree.ts index 7f7b0115d58..862555ac049 100644 --- a/src/vs/workbench/parts/outline/electron-browser/outlineTree.ts +++ b/src/vs/workbench/parts/outline/electron-browser/outlineTree.ts @@ -15,7 +15,6 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IDataSource, IFilter, IRenderer, ISorter, ITree } from 'vs/base/parts/tree/browser/tree'; import { Range } from 'vs/editor/common/core/range'; import { symbolKindToCssClass, SymbolKind } from 'vs/editor/common/modes'; -import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { OutlineElement, OutlineGroup, OutlineModel, TreeElement } from 'vs/editor/contrib/documentSymbols/outlineModel'; import { localize } from 'vs/nls'; import { WorkbenchTreeController } from 'vs/platform/list/browser/listService'; @@ -125,7 +124,6 @@ export interface OutlineTemplate { export class OutlineRenderer implements IRenderer { constructor( - @IExtensionService readonly _extensionService: IExtensionService, @IThemeService readonly _themeService: IThemeService, @IConfigurationService readonly _configurationService: IConfigurationService ) { @@ -169,18 +167,7 @@ export class OutlineRenderer implements IRenderer { } if (element instanceof OutlineGroup) { - this._extensionService.getExtensions().then(all => { - let found = false; - for (let i = 0; !found && i < all.length; i++) { - const extension = all[i]; - if (extension.id === element.provider.extensionId) { - template.label.set(extension.displayName); - break; - } - } - }, _err => { - template.label.set(element.provider.extensionId); - }); + template.label.set(element.provider.displayName || localize('provider', "Outline Provider")); } }