提交 7f3f77b5 编写于 作者: D Daniel Imms

Move terminal ipc handling to service to fix unit test debugging

上级 2e379b2d
......@@ -28,9 +28,6 @@ import { PANEL_BACKGROUND, PANEL_BORDER } from 'vs/workbench/common/theme';
import { TERMINAL_BACKGROUND_COLOR, TERMINAL_BORDER_COLOR } from 'vs/workbench/parts/terminal/electron-browser/terminalColorRegistry';
import { DataTransfers } from 'vs/base/browser/dnd';
import { ILifecycleService, LifecyclePhase } from 'vs/platform/lifecycle/common/lifecycle';
import { ipcRenderer as ipc } from 'electron';
import { IOpenFileRequest } from 'vs/platform/windows/common/windows';
import { whenDeleted } from 'vs/base/node/pfs';
export class TerminalPanel extends Panel {
......@@ -86,15 +83,6 @@ export class TerminalPanel extends Panel {
this._updateFont();
this._updateTheme();
ipc.on('vscode:openFiles', (_event: any, request: IOpenFileRequest) => {
// if the request to open files is coming in from the integrated terminal (identified though
// the termProgram variable) and we are instructed to wait for editors close, wait for the
// marker file to get deleted and then focus back to the integrated terminal.
if (request.termProgram === 'vscode' && request.filesToWait) {
whenDeleted(request.filesToWait.waitMarkerFilePath).then(() => this.focus());
}
});
// Force another layout (first is setContainers) since config has changed
this.layout(new Dimension(this._terminalContainer.offsetWidth, this._terminalContainer.offsetHeight));
return TPromise.as(void 0);
......
......@@ -24,6 +24,8 @@ import { TerminalPanel } from 'vs/workbench/parts/terminal/electron-browser/term
import { TerminalTab } from 'vs/workbench/parts/terminal/electron-browser/terminalTab';
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
import { INotificationService, PromptOption } from 'vs/platform/notification/common/notification';
import { ipcRenderer as ipc } from 'electron';
import { IOpenFileRequest } from 'vs/platform/windows/common/windows';
export class TerminalService extends AbstractTerminalService implements ITerminalService {
private _configHelper: TerminalConfigHelper;
......@@ -50,6 +52,19 @@ export class TerminalService extends AbstractTerminalService implements ITermina
this._terminalTabs = [];
this._configHelper = this._instantiationService.createInstance(TerminalConfigHelper);
ipc.on('vscode:openFiles', (_event: any, request: IOpenFileRequest) => {
// if the request to open files is coming in from the integrated terminal (identified though
// the termProgram variable) and we are instructed to wait for editors close, wait for the
// marker file to get deleted and then focus back to the integrated terminal.
if (request.termProgram === 'vscode' && request.filesToWait) {
pfs.whenDeleted(request.filesToWait.waitMarkerFilePath).then(() => {
if (this.terminalInstances.length > 0) {
this.getActiveInstance().focus();
}
});
}
});
}
public createInstance(shell: IShellLaunchConfig = {}, wasNewTerminalAction?: boolean): ITerminalInstance {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册