diff --git a/src/vs/base/common/platform.ts b/src/vs/base/common/platform.ts index 277929ed5d02284c4e3e3de3c755086c00b03837..fc6b2c285bd222d28e18eb2f7d3b9e28a5d3b9f7 100644 --- a/src/vs/base/common/platform.ts +++ b/src/vs/base/common/platform.ts @@ -71,12 +71,20 @@ if (typeof process === 'object' && typeof process.nextTick === 'function' && typ _language = _locale; } -export enum Platform { +export const enum Platform { Web, Mac, Linux, Windows } +export function PlatformToString(platform: Platform) { + switch (platform) { + case Platform.Web: return 'Web'; + case Platform.Mac: return 'Mac'; + case Platform.Linux: return 'Linux'; + case Platform.Windows: return 'Windows'; + } +} let _platform: Platform = Platform.Web; if (_isNative) { diff --git a/src/vs/platform/configuration/common/configuration.ts b/src/vs/platform/configuration/common/configuration.ts index a6b4f1fdf388e2034fdb35ac2db4417d34f021ef..13f6cdf5146a366d1b004d23d47bb7b7e0a2e5fb 100644 --- a/src/vs/platform/configuration/common/configuration.ts +++ b/src/vs/platform/configuration/common/configuration.ts @@ -28,13 +28,22 @@ export interface IConfigurationOverrides { resource?: URI; } -export enum ConfigurationTarget { +export const enum ConfigurationTarget { USER = 1, WORKSPACE, WORKSPACE_FOLDER, DEFAULT, MEMORY } +export function ConfigurationTargetToString(configurationTarget: ConfigurationTarget) { + switch (configurationTarget) { + case ConfigurationTarget.USER: return 'USER'; + case ConfigurationTarget.WORKSPACE: return 'WORKSPACE'; + case ConfigurationTarget.WORKSPACE_FOLDER: return 'WORKSPACE_FOLDER'; + case ConfigurationTarget.DEFAULT: return 'DEFAULT'; + case ConfigurationTarget.MEMORY: return 'MEMORY'; + } +} export interface IConfigurationChangeEvent { diff --git a/src/vs/platform/lifecycle/common/lifecycle.ts b/src/vs/platform/lifecycle/common/lifecycle.ts index 8b9393df9cd191991badf870e8e4ff36e8e52946..c0a663e258e85fd755f3801ef0cdce22899906f4 100644 --- a/src/vs/platform/lifecycle/common/lifecycle.ts +++ b/src/vs/platform/lifecycle/common/lifecycle.ts @@ -47,18 +47,33 @@ export const enum ShutdownReason { LOAD = 4 } -export enum StartupKind { +export const enum StartupKind { NewWindow = 1, ReloadedWindow = 3, ReopenedWindow = 4, } +export function StartupKindToString(startupKind: StartupKind): string { + switch (startupKind) { + case StartupKind.NewWindow: return 'NewWindow'; + case StartupKind.ReloadedWindow: return 'ReloadedWindow'; + case StartupKind.ReopenedWindow: return 'ReopenedWindow'; + } +} -export enum LifecyclePhase { +export const enum LifecyclePhase { Starting = 1, Restoring = 2, Running = 3, Eventually = 4 } +export function LifecyclePhaseToString(phase: LifecyclePhase) { + switch (phase) { + case LifecyclePhase.Starting: return 'Starting'; + case LifecyclePhase.Restoring: return 'Restoring'; + case LifecyclePhase.Running: return 'Running'; + case LifecyclePhase.Eventually: return 'Eventually'; + } +} /** * A lifecycle service informs about lifecycle events of the diff --git a/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts b/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts index a1d2d92cea030badbbb6c818de02fa15d2620a4a..d75d974b7610c822e3151d9a7245344fa8e4a265 100644 --- a/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts +++ b/src/vs/platform/lifecycle/electron-browser/lifecycleService.ts @@ -6,7 +6,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { toErrorMessage } from 'vs/base/common/errorMessage'; -import { ILifecycleService, ShutdownEvent, ShutdownReason, StartupKind, LifecyclePhase, handleVetos } from 'vs/platform/lifecycle/common/lifecycle'; +import { ILifecycleService, ShutdownEvent, ShutdownReason, StartupKind, LifecyclePhase, handleVetos, LifecyclePhaseToString } from 'vs/platform/lifecycle/common/lifecycle'; import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; import { ipcRenderer as ipc } from 'electron'; import { Event, Emitter } from 'vs/base/common/event'; @@ -111,7 +111,7 @@ export class LifecycleService implements ILifecycleService { this._logService.trace(`lifecycle: phase changed (value: ${value})`); this._phase = value; - mark(`LifecyclePhase/${LifecyclePhase[value]}`); + mark(`LifecyclePhase/${LifecyclePhaseToString(value)}`); if (this._phaseWhen.has(this._phase)) { this._phaseWhen.get(this._phase).open(); diff --git a/src/vs/platform/telemetry/common/telemetryUtils.ts b/src/vs/platform/telemetry/common/telemetryUtils.ts index 9446d79b7458edd9ac685cd69c427b2815772390..a098c7723c15f311db44882d3ac848acd35c8756 100644 --- a/src/vs/platform/telemetry/common/telemetryUtils.ts +++ b/src/vs/platform/telemetry/common/telemetryUtils.ts @@ -9,7 +9,7 @@ import { IDisposable } from 'vs/base/common/lifecycle'; import { guessMimeTypes } from 'vs/base/common/mime'; import * as paths from 'vs/base/common/paths'; import { URI } from 'vs/base/common/uri'; -import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; +import { IConfigurationService, ConfigurationTarget, ConfigurationTargetToString } from 'vs/platform/configuration/common/configuration'; import { IKeybindingService, KeybindingSource } from 'vs/platform/keybinding/common/keybinding'; import { ITelemetryService, ITelemetryInfo, ITelemetryData } from 'vs/platform/telemetry/common/telemetry'; import { ILogService } from 'vs/platform/log/common/log'; @@ -200,7 +200,7 @@ export function configurationTelemetry(telemetryService: ITelemetryService, conf } */ telemetryService.publicLog('updateConfiguration', { - configurationSource: ConfigurationTarget[event.source], + configurationSource: ConfigurationTargetToString(event.source), configurationKeys: flattenKeys(event.sourceConfig) }); /* __GDPR__ @@ -210,7 +210,7 @@ export function configurationTelemetry(telemetryService: ITelemetryService, conf } */ telemetryService.publicLog('updateConfigurationValues', { - configurationSource: ConfigurationTarget[event.source], + configurationSource: ConfigurationTargetToString(event.source), configurationValues: flattenValues(event.sourceConfig, configurationValueWhitelist) }); } diff --git a/src/vs/platform/telemetry/node/commonProperties.ts b/src/vs/platform/telemetry/node/commonProperties.ts index e997435d9c1863ab21772c3faaeb6af61f5bea4e..d02cd24f2de5f9e52c46f400e139c1573ad2b15d 100644 --- a/src/vs/platform/telemetry/node/commonProperties.ts +++ b/src/vs/platform/telemetry/node/commonProperties.ts @@ -22,7 +22,7 @@ export function resolveCommonProperties(commit: string, version: string, machine // __GDPR__COMMON__ "common.platformVersion" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } result['common.platformVersion'] = (os.release() || '').replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/, '$1$2$3'); // __GDPR__COMMON__ "common.platform" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } - result['common.platform'] = Platform.Platform[Platform.platform]; + result['common.platform'] = Platform.PlatformToString(Platform.platform); // __GDPR__COMMON__ "common.nodePlatform" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } result['common.nodePlatform'] = process.platform; // __GDPR__COMMON__ "common.nodeArch" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } diff --git a/src/vs/workbench/common/contributions.ts b/src/vs/workbench/common/contributions.ts index beaec28f4c46f3679419bc7ceec5d9347c70702b..46d05c51c777e50d306c6aa46a05e1a82e325eda 100644 --- a/src/vs/workbench/common/contributions.ts +++ b/src/vs/workbench/common/contributions.ts @@ -6,7 +6,7 @@ import { Registry } from 'vs/platform/registry/common/platform'; import { IInstantiationService, IConstructorSignature0 } from 'vs/platform/instantiation/common/instantiation'; -import { ILifecycleService, LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle'; +import { ILifecycleService, LifecyclePhase, LifecyclePhaseToString } from 'vs/platform/lifecycle/common/lifecycle'; import { mark } from 'vs/base/common/performance'; // --- Workbench Contribution Registry @@ -90,7 +90,7 @@ export class WorkbenchContributionsRegistry implements IWorkbenchContributionsRe } private doInstantiateByPhase(instantiationService: IInstantiationService, phase: LifecyclePhase): void { - mark(`LifecyclePhase/${LifecyclePhase[phase]}/createContrib:start`); + mark(`LifecyclePhase/${LifecyclePhaseToString(phase)}/createContrib:start`); const toBeInstantiated = this.toBeInstantiated.get(phase); if (toBeInstantiated) { while (toBeInstantiated.length > 0) { @@ -98,7 +98,7 @@ export class WorkbenchContributionsRegistry implements IWorkbenchContributionsRe instantiationService.createInstance(ctor); } } - mark(`LifecyclePhase/${LifecyclePhase[phase]}/createContrib:end`); + mark(`LifecyclePhase/${LifecyclePhaseToString(phase)}/createContrib:end`); } } diff --git a/src/vs/workbench/electron-browser/workbench.ts b/src/vs/workbench/electron-browser/workbench.ts index 14b0acd12034e5353b07ad2be691a35825809a39..800b28e2aead603744296bbe08e6f82cebfe4648 100644 --- a/src/vs/workbench/electron-browser/workbench.ts +++ b/src/vs/workbench/electron-browser/workbench.ts @@ -37,7 +37,7 @@ import { QuickOpenController } from 'vs/workbench/browser/parts/quickopen/quickO import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput'; import { QuickInputService } from 'vs/workbench/browser/parts/quickinput/quickInput'; import { getServices } from 'vs/platform/instantiation/common/extensions'; -import { Position, Parts, IPartService, ILayoutOptions, IDimension } from 'vs/workbench/services/part/common/partService'; +import { Position, Parts, IPartService, ILayoutOptions, IDimension, PositionToString } from 'vs/workbench/services/part/common/partService'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; import { ContextMenuService as NativeContextMenuService } from 'vs/workbench/services/contextview/electron-browser/contextmenuService'; @@ -1489,7 +1489,7 @@ export class Workbench extends Disposable implements IPartService { const newPositionValue = (position === Position.BOTTOM) ? 'bottom' : 'right'; const oldPositionValue = (this.panelPosition === Position.BOTTOM) ? 'bottom' : 'right'; this.panelPosition = position; - this.storageService.store(Workbench.panelPositionStorageKey, Position[this.panelPosition].toLowerCase(), StorageScope.WORKSPACE); + this.storageService.store(Workbench.panelPositionStorageKey, PositionToString(this.panelPosition).toLowerCase(), StorageScope.WORKSPACE); // Adjust CSS DOM.removeClass(this.panelPart.getContainer(), oldPositionValue); diff --git a/src/vs/workbench/parts/performance/electron-browser/actions.ts b/src/vs/workbench/parts/performance/electron-browser/actions.ts index 178a2e15d7eb8b98341fcdcba0ff30b48f0322d2..3b83b5a6287e7a48910c97a7622ea87b769ca40f 100644 --- a/src/vs/workbench/parts/performance/electron-browser/actions.ts +++ b/src/vs/workbench/parts/performance/electron-browser/actions.ts @@ -18,7 +18,7 @@ import * as os from 'os'; import { IExtensionService, ActivationTimes } from 'vs/workbench/services/extensions/common/extensions'; import { getEntries } from 'vs/base/common/performance'; import { timeout } from 'vs/base/common/async'; -import { StartupKind } from 'vs/platform/lifecycle/common/lifecycle'; +import { StartupKindToString } from 'vs/platform/lifecycle/common/lifecycle'; import { Registry } from 'vs/platform/registry/common/platform'; import { IWorkbenchActionRegistry, Extensions } from 'vs/workbench/common/actions'; import { SyncActionDescriptor } from 'vs/platform/actions/common/actions'; @@ -34,7 +34,7 @@ class Info { table['nls:start => nls:end'] = new Info(metrics.timers.ellapsedNlsGeneration, '[main]', metrics.initialStartup); table['app.isReady => window.loadUrl()'] = new Info(metrics.timers.ellapsedWindowLoad, '[main]', metrics.initialStartup); - table['window.loadUrl() => begin to require(workbench.main.js)'] = new Info(metrics.timers.ellapsedWindowLoadToRequire, '[main->renderer]', StartupKind[metrics.windowKind]); + table['window.loadUrl() => begin to require(workbench.main.js)'] = new Info(metrics.timers.ellapsedWindowLoadToRequire, '[main->renderer]', StartupKindToString(metrics.windowKind)); table['require(workbench.main.js)'] = new Info(metrics.timers.ellapsedRequire, '[renderer]', `cached data: ${(metrics.didUseCachedData ? 'YES' : 'NO')}${nodeModuleLoadTime ? `, node_modules took ${nodeModuleLoadTime}ms` : ''}`); table['register extensions & spawn extension host'] = new Info(metrics.timers.ellapsedExtensions, '[renderer]'); diff --git a/src/vs/workbench/services/part/common/partService.ts b/src/vs/workbench/services/part/common/partService.ts index aabd2ea81f93e775c4d2fa38ef24d8ee0e206eb7..a768e4c160a99346d9e256e12c54b47649a3c1cc 100644 --- a/src/vs/workbench/services/part/common/partService.ts +++ b/src/vs/workbench/services/part/common/partService.ts @@ -19,11 +19,18 @@ export const enum Parts { MENUBAR_PART } -export enum Position { +export const enum Position { LEFT, RIGHT, BOTTOM } +export function PositionToString(position: Position): string { + switch (position) { + case Position.LEFT: return 'LEFT'; + case Position.RIGHT: return 'RIGHT'; + case Position.BOTTOM: return 'BOTTOM'; + } +} export interface ILayoutOptions { toggleMaximizedPanel?: boolean;