Move extension logger to extension context

This commit is contained in:
Rob Lourens
2017-12-12 19:23:24 -08:00
parent daa3a0ec2e
commit b3fde70cb4
4 changed files with 15 additions and 15 deletions

View File

@@ -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

View File

@@ -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>(void 0);
@@ -26,6 +27,7 @@ export interface IExtensionContext {
extensionPath: string;
storagePath: string;
asAbsolutePath(relativePath: string): string;
logger: ExtHostLogger;
}
/**

View File

@@ -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<TernarySearchTree<IExtensionDescription>>;
/**
@@ -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(<IExtensionContext>{
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); }
});
});
}