From b3fde70cb49072334d6db70262b168a2d86f2c7c Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Tue, 12 Dec 2017 19:23:24 -0800 Subject: [PATCH] Move extension logger to extension context --- src/vs/vscode.d.ts | 12 +++++------- src/vs/workbench/api/node/extHost.api.impl.ts | 7 +------ .../workbench/api/node/extHostExtensionActivator.ts | 2 ++ src/vs/workbench/api/node/extHostExtensionService.ts | 9 +++++++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 65354174c44..4b45a1d37c9 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -3930,6 +3930,11 @@ declare module 'vscode' { * [`globalState`](#ExtensionContext.globalState) to store key value data. */ storagePath: string | undefined; + + /** + * A logger + */ + logger: ILogger; } /** @@ -4388,13 +4393,6 @@ declare module 'vscode' { * @readonly */ export let sessionId: string; - - /** - * Something - * - * @readonly - */ - export let logger: ILogger; } /** diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 6c3cdb9f832..4647ecd9814 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -59,8 +59,6 @@ import { toGlobPattern, toLanguageSelector } from 'vs/workbench/api/node/extHost import { ExtensionActivatedByAPI } from 'vs/workbench/api/node/extHostExtensionActivator'; import { isFalsyOrEmpty } from 'vs/base/common/arrays'; import { ILogService } from 'vs/platform/log/common/log'; -import { ExtHostLogService } from 'vs/workbench/api/node/extHostLogService'; -import { IEnvironmentService } from 'vs/platform/environment/common/environment'; export interface IExtensionApiFactory { (extension: IExtensionDescription): typeof vscode; @@ -85,8 +83,7 @@ export function createApiFactory( extHostWorkspace: ExtHostWorkspace, extHostConfiguration: ExtHostConfiguration, extensionService: ExtHostExtensionService, - logService: ILogService, - environmentService: IEnvironmentService + logService: ILogService ): IExtensionApiFactory { // Addressable instances @@ -124,7 +121,6 @@ export function createApiFactory( const extHostProgress = new ExtHostProgress(threadService.get(MainContext.MainThreadProgress)); const extHostOutputService = new ExtHostOutputService(threadService); const extHostLanguages = new ExtHostLanguages(threadService); - const extHostLogService = new ExtHostLogService(environmentService); // Register API-ish commands ExtHostApiCommands.register(extHostCommands); @@ -206,7 +202,6 @@ export function createApiFactory( get language() { return Platform.language; }, get appName() { return product.nameLong; }, get appRoot() { return initData.environment.appRoot; }, - get logger() { return extHostLogService.getExtLogger(extension.id); }, }); // namespace: extensions diff --git a/src/vs/workbench/api/node/extHostExtensionActivator.ts b/src/vs/workbench/api/node/extHostExtensionActivator.ts index 5038d467d3b..b0949051e4f 100644 --- a/src/vs/workbench/api/node/extHostExtensionActivator.ts +++ b/src/vs/workbench/api/node/extHostExtensionActivator.ts @@ -10,6 +10,7 @@ import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/node/extensionDescriptionRegistry'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; +import { ExtHostLogger } from 'vs/workbench/api/node/extHostLogService'; const hasOwnProperty = Object.hasOwnProperty; const NO_OP_VOID_PROMISE = TPromise.wrap(void 0); @@ -26,6 +27,7 @@ export interface IExtensionContext { extensionPath: string; storagePath: string; asAbsolutePath(relativePath: string): string; + logger: ExtHostLogger; } /** diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index 321b24b8f2b..92f57ca8706 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -22,6 +22,7 @@ import { TernarySearchTree } from 'vs/base/common/map'; import { Barrier } from 'vs/base/common/async'; import { ILogService } from 'vs/platform/log/common/log'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; +import { ExtHostLogService } from 'vs/workbench/api/node/extHostLogService'; class ExtensionMemento implements IExtensionMemento { @@ -119,6 +120,7 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { private readonly _storagePath: ExtensionStoragePath; private readonly _proxy: MainThreadExtensionServiceShape; private readonly _logService: ILogService; + private readonly _extHostLogService: ExtHostLogService; private _activator: ExtensionsActivator; private _extensionPathIndex: TPromise>; /** @@ -140,9 +142,10 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { this._storagePath = new ExtensionStoragePath(initData.workspace, initData.environment); this._proxy = this._threadService.get(MainContext.MainThreadExtensionService); this._activator = null; + this._extHostLogService = new ExtHostLogService(environmentService); // initialize API first (i.e. do not release barrier until the API is initialized) - const apiFactory = createApiFactory(initData, threadService, extHostWorkspace, extHostConfiguration, this, logService, environmentService); + const apiFactory = createApiFactory(initData, threadService, extHostWorkspace, extHostConfiguration, this, logService); initializeExtensionApi(this, apiFactory).then(() => { @@ -334,13 +337,15 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { workspaceState.whenReady, this._storagePath.whenReady ]).then(() => { + const that = this; return Object.freeze({ globalState, workspaceState, subscriptions: [], get extensionPath() { return extensionDescription.extensionFolderPath; }, storagePath: this._storagePath.value(extensionDescription), - asAbsolutePath: (relativePath: string) => { return join(extensionDescription.extensionFolderPath, relativePath); } + asAbsolutePath: (relativePath: string) => { return join(extensionDescription.extensionFolderPath, relativePath); }, + get logger() { return that._extHostLogService.getExtLogger(extensionDescription.id); } }); }); }