diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 46e58254ba8af5c1cc861a3343ee67bc312e7d06..21ced8c4a218d6fa2eedd497261159d27c123b75 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -173,7 +173,6 @@ export interface IConfig { preLaunchTask?: string; externalConsole?: boolean; debugServer?: number; - extensionHostData?: any; } export interface IRawEnvAdapter { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 962b9667b97678ea170f812be864c11a5f3386bf..c8e4b10f56ba4595a2f2c14786ac6a3dce07898e 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -270,12 +270,7 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService })); this.toDispose.push(this.session.addListener2(debug.SessionEvents.DEBUGEE_TERMINATED, (event: DebugProtocol.TerminatedEvent) => { - // if there is some opaque data in the body of the terminate event, just pass it to the next launch request - let extensionHostData = event.body ? event.body.extensionHost : undefined; - - if (extensionHostData) { - this.restartSession(extensionHostData).done(null, errors.onUnexpectedError); - } else if (this.session) { + if (this.session) { this.session.disconnect().done(null, errors.onUnexpectedError); } })); @@ -474,13 +469,11 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService this.model.clearWatchExpressions(id); } - public createSession(extensionHostData?: any, openViewlet = true): Promise { + public createSession(openViewlet = true): Promise { this.textFileService.saveAll().done(null, errors.onUnexpectedError); - if (!extensionHostData) { - this.clearReplExpressions(); - } + this.clearReplExpressions(); - return this.pluginService.onReady().then(() => this.configurationManager.setConfiguration(this.configurationManager.getConfigurationName(), extensionHostData)).then(() => { + return this.pluginService.onReady().then(() => this.configurationManager.setConfiguration(this.configurationManager.getConfigurationName())).then(() => { const configuration = this.configurationManager.getConfiguration(); if (!configuration) { return this.configurationManager.openConfigFile(false).then(openend => { @@ -530,8 +523,7 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService } private runPreLaunchTask(config: debug.IConfig): Promise { - // Only run the task if we are not reattaching (extensionHostData is defined). - if (!config.preLaunchTask || config.extensionHostData) { + if (!config.preLaunchTask) { return Promise.as(true); } @@ -582,14 +574,14 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService }, true); } - public restartSession(extensionHostData?: any): Promise { - return this.session ? this.session.disconnect(true).then(() => { + public restartSession(): Promise { + return this.session ? this.session.disconnect().then(() => { new Promise(c => { setTimeout(() => { - this.createSession(extensionHostData, false).then(() => c(true)); + this.createSession(false).then(() => c(true)); }, 300); }); - }) : this.createSession(extensionHostData, false); + }) : this.createSession(false); } public getActiveSession(): debug.IRawDebugSession { diff --git a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts index 35227ba197cddea58c670225764339edbb40721d..7ac928392c6b63d6b9cc3e6b07d3dfebb9833f51 100644 --- a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts @@ -218,7 +218,7 @@ export class ConfigurationManager { return this.adapters.filter(adapter => adapter.type === this.configuration.type).pop(); } - public setConfiguration(name: string, extensionHostData: any = null): Promise { + public setConfiguration(name: string): Promise { return this.loadLaunchConfig().then(config => { if (!config || !config.configurations) { this.configuration = null; @@ -242,8 +242,6 @@ export class ConfigurationManager { this.configuration.runtimeExecutable = this.resolvePath(this.systemVariables.resolve(this.configuration.runtimeExecutable)); this.configuration.runtimeArgs = this.configuration.runtimeArgs && this.configuration.runtimeArgs.length > 0 ? this.systemVariables.resolve(this.configuration.runtimeArgs) : null; this.configuration.outDir = this.resolvePath(this.configuration.outDir); - // send opaque data back as part of the (undocumented) arguments of the launch request. - this.configuration.extensionHostData = extensionHostData; } }); } diff --git a/src/vs/workbench/parts/debug/node/rawDebugSession.ts b/src/vs/workbench/parts/debug/node/rawDebugSession.ts index fec35edf41b5ed28e093b104d4cb5ac465294dc2..4555f19383b35c5c186929f60f99f108c6997ca7 100644 --- a/src/vs/workbench/parts/debug/node/rawDebugSession.ts +++ b/src/vs/workbench/parts/debug/node/rawDebugSession.ts @@ -116,14 +116,11 @@ export class RawDebugSession extends v8.V8Protocol implements debug.IRawDebugSes return this.send('pause', args); } - public disconnect(restart = false): TPromise { + public disconnect(): TPromise { if ((this.serverProcess || this.socket) && !this.stopServerPending) { - this.stopServerPending = true; // point of no return: from now on don't report any errors - return this.send('disconnect', { extensionHostData: { restart: restart } }).then(() => { - return this.stopServer(); - }, () => { - return this.stopServer(); - }); + // point of no return: from now on don't report any errors + this.stopServerPending = true; + return this.stopServer(); } return Promise.as(null);