diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index ec999b36e46..a6ba7257639 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -246,11 +246,11 @@ export function createApiFactory( get appRoot() { return initData.environment.appRoot.fsPath; }, get logLevel() { checkProposedApiEnabled(extension); - return typeConverters.LogLevel.fromMainLogLevel(extHostLogService.getLevel()); + return typeConverters.LogLevel.to(extHostLogService.getLevel()); }, get onDidChangeLogLevel() { checkProposedApiEnabled(extension); - return mapEvent(extHostLogService.onDidChangeLogLevel, l => typeConverters.LogLevel.fromMainLogLevel(l)); + return mapEvent(extHostLogService.onDidChangeLogLevel, l => typeConverters.LogLevel.to(l)); }, get clipboard(): vscode.Clipboard { return extHostClipboard; diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index 8cf7f76930d..7cc4c9f0761 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -970,11 +970,49 @@ export namespace LanguageSelector { } export namespace LogLevel { - export function fromMainLogLevel(mainLevel: _MainLogLevel): types.LogLevel { - return mainLevel + 1; + export function from(extLevel: types.LogLevel): _MainLogLevel { + switch (extLevel) { + case types.LogLevel.Trace: + return _MainLogLevel.Trace; + case types.LogLevel.Debug: + return _MainLogLevel.Debug; + case types.LogLevel.Info: + return _MainLogLevel.Info; + case types.LogLevel.Warning: + return _MainLogLevel.Warning; + case types.LogLevel.Error: + return _MainLogLevel.Error; + case types.LogLevel.Critical: + return _MainLogLevel.Critical; + case types.LogLevel.Critical: + return _MainLogLevel.Critical; + case types.LogLevel.Off: + return _MainLogLevel.Off; + } + + return _MainLogLevel.Info; } - export function toMainLogLevel(extLevel: types.LogLevel): _MainLogLevel { - return extLevel - 1; + export function to(mainLevel: _MainLogLevel): types.LogLevel { + switch (mainLevel) { + case _MainLogLevel.Trace: + return types.LogLevel.Trace; + case _MainLogLevel.Debug: + return types.LogLevel.Debug; + case _MainLogLevel.Info: + return types.LogLevel.Info; + case _MainLogLevel.Warning: + return types.LogLevel.Warning; + case _MainLogLevel.Error: + return types.LogLevel.Error; + case _MainLogLevel.Critical: + return types.LogLevel.Critical; + case _MainLogLevel.Critical: + return types.LogLevel.Critical; + case _MainLogLevel.Off: + return types.LogLevel.Off; + } + + return types.LogLevel.Info; } } diff --git a/src/vs/workbench/test/electron-browser/api/extHostTypeConverter.test.ts b/src/vs/workbench/test/electron-browser/api/extHostTypeConverter.test.ts index 3b217231a5f..7f67a1cea9d 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostTypeConverter.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostTypeConverter.test.ts @@ -5,9 +5,11 @@ import * as assert from 'assert'; -import { MarkdownString } from 'vs/workbench/api/node/extHostTypeConverters'; +import { MarkdownString, LogLevel } from 'vs/workbench/api/node/extHostTypeConverters'; import { isEmptyObject } from 'vs/base/common/types'; import { size } from 'vs/base/common/collections'; +import * as types from 'vs/workbench/api/node/extHostTypes'; +import { LogLevel as _MainLogLevel } from 'vs/platform/log/common/log'; suite('ExtHostTypeConverter', function () { @@ -56,4 +58,14 @@ suite('ExtHostTypeConverter', function () { assert.ok(!!data.uris['file:///somepath/here']); assert.ok(!!data.uris['file:///somepath/here2']); }); + + test('LogLevel', () => { + assert.equal(LogLevel.from(types.LogLevel.Error), _MainLogLevel.Error); + assert.equal(LogLevel.from(types.LogLevel.Info), _MainLogLevel.Info); + assert.equal(LogLevel.from(types.LogLevel.Off), _MainLogLevel.Off); + + assert.equal(LogLevel.to(_MainLogLevel.Error), types.LogLevel.Error); + assert.equal(LogLevel.to(_MainLogLevel.Info), types.LogLevel.Info); + assert.equal(LogLevel.to(_MainLogLevel.Off), types.LogLevel.Off); + }); });