提交 ec6b7a75 编写于 作者: I isidor

React on terminal disposed and check if that is the debug terminal

fixes #12956
上级 2d1c94ab
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
import nls = require('vs/nls'); import nls = require('vs/nls');
import platform = require('vs/base/common/platform'); import platform = require('vs/base/common/platform');
import {IDisposable} from 'vs/base/common/lifecycle';
import {TPromise} from 'vs/base/common/winjs.base'; import {TPromise} from 'vs/base/common/winjs.base';
import {ITerminalService, ITerminalInstance} from 'vs/workbench/parts/terminal/electron-browser/terminal'; import {ITerminalService, ITerminalInstance} from 'vs/workbench/parts/terminal/electron-browser/terminal';
import {ITerminalService as IExternalTerminalService} from 'vs/workbench/parts/execution/common/execution'; import {ITerminalService as IExternalTerminalService} from 'vs/workbench/parts/execution/common/execution';
...@@ -26,6 +27,7 @@ export interface IIntegratedTerminalConfiguration { ...@@ -26,6 +27,7 @@ export interface IIntegratedTerminalConfiguration {
export class TerminalSupport { export class TerminalSupport {
private static integratedTerminalInstance: ITerminalInstance; private static integratedTerminalInstance: ITerminalInstance;
private static terminalDisposedListener: IDisposable;
public static runInTerminal(terminalService: ITerminalService, nativeTerminalService: IExternalTerminalService, configurationService: IConfigurationService, args: DebugProtocol.RunInTerminalRequestArguments, response: DebugProtocol.RunInTerminalResponse): TPromise<void> { public static runInTerminal(terminalService: ITerminalService, nativeTerminalService: IExternalTerminalService, configurationService: IConfigurationService, args: DebugProtocol.RunInTerminalRequestArguments, response: DebugProtocol.RunInTerminalResponse): TPromise<void> {
...@@ -38,6 +40,14 @@ export class TerminalSupport { ...@@ -38,6 +40,14 @@ export class TerminalSupport {
TerminalSupport.integratedTerminalInstance = terminalService.createInstance(args.title || nls.localize('debuggee', "debuggee")); TerminalSupport.integratedTerminalInstance = terminalService.createInstance(args.title || nls.localize('debuggee', "debuggee"));
delay = 2000; // delay sendText so that the newly created terminal is ready. delay = 2000; // delay sendText so that the newly created terminal is ready.
} }
if (!TerminalSupport.terminalDisposedListener) {
// React on terminal disposed and check if that is the debug terminal #12956
TerminalSupport.terminalDisposedListener = terminalService.onInstanceDisposed(terminal => {
if (TerminalSupport.integratedTerminalInstance && TerminalSupport.integratedTerminalInstance.id === terminal.id) {
TerminalSupport.integratedTerminalInstance = null;
}
});
}
terminalService.setActiveInstance(TerminalSupport.integratedTerminalInstance); terminalService.setActiveInstance(TerminalSupport.integratedTerminalInstance);
terminalService.showPanel(true); terminalService.showPanel(true);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册