diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 43cdb8f320ebc8370d0207c56a0b2a3ab83b3607..f031648f17c8191357e436600a701e114c3a496a 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -48,6 +48,7 @@ import { ITreeItem } from 'vs/workbench/parts/views/common/views'; import { ThemeColor } from 'vs/platform/theme/common/themeService'; export interface IEnvironment { + isExtensionDevelopmentDebug: boolean; enableProposedApiForAll: boolean; enableProposedApiFor: string | string[]; appSettingsHome: string; diff --git a/src/vs/workbench/electron-browser/extensionHost.ts b/src/vs/workbench/electron-browser/extensionHost.ts index 187a6018b891e93adb1c653a897ef3195052b66c..fea8c3c48de10be06953fdbd590a41382bc227c6 100644 --- a/src/vs/workbench/electron-browser/extensionHost.ts +++ b/src/vs/workbench/electron-browser/extensionHost.ts @@ -291,9 +291,10 @@ export class ExtensionHostProcessWorker { private createExtHostInitData(): TPromise { return TPromise.join([this.telemetryService.getTelemetryInfo(), this.extensionService.getExtensions()]).then(([telemetryInfo, extensionDescriptions]) => { - return { + let r: IInitData = { parentPid: process.pid, environment: { + isExtensionDevelopmentDebug: this.isExtensionDevelopmentDebug, appSettingsHome: this.environmentService.appSettingsHome, disableExtensions: this.environmentService.disableExtensions, userExtensionsHome: this.environmentService.extensionsPath, @@ -308,6 +309,7 @@ export class ExtensionHostProcessWorker { configuration: this.configurationService.getConfigurationData(), telemetryInfo }; + return r; }); } diff --git a/src/vs/workbench/node/extensionHostMain.ts b/src/vs/workbench/node/extensionHostMain.ts index 070e70b1d708bef722a512797458cc6cbf9c207f..c5f8cdb8a9c044a1dd1c02ebf21dc0b3f12e9963 100644 --- a/src/vs/workbench/node/extensionHostMain.ts +++ b/src/vs/workbench/node/extensionHostMain.ts @@ -54,7 +54,9 @@ export class ExtensionHostMain { errors.setUnexpectedErrorHandler(err => mainThreadErrors.onUnexpectedExtHostError(errors.transformErrorForSerialization(err))); // Configure the watchdog to kill our process if the JS event loop is unresponsive for more than 10s - watchdog.start(10000); + if (!initData.environment.isExtensionDevelopmentDebug) { + watchdog.start(10000); + } } public start(): TPromise {