提交 aeaec811 编写于 作者: K Kai Wood

Refactor terminals configuration concerns

上级 529a0cda
......@@ -18,7 +18,7 @@ import { IContextKey } from 'vs/platform/contextkey/common/contextkey';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
import { IMessageService, Severity } from 'vs/platform/message/common/message';
import { IStringDictionary } from 'vs/base/common/collections';
import { ITerminalInstance, IShell } from 'vs/workbench/parts/terminal/common/terminal';
import { ITerminalService, ITerminalInstance, IShell } from 'vs/workbench/parts/terminal/common/terminal';
import { IWorkspace } from 'vs/platform/workspace/common/workspace';
import { Keybinding } from 'vs/base/common/keybinding';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
......@@ -65,7 +65,8 @@ export class TerminalInstance implements ITerminalInstance {
name: string,
shell: IShell,
@IKeybindingService private _keybindingService: IKeybindingService,
@IMessageService private _messageService: IMessageService
@IMessageService private _messageService: IMessageService,
@ITerminalService private _terminalService: ITerminalService
) {
this._toDispose = [];
this._skipTerminalKeybindings = [];
......@@ -168,6 +169,9 @@ export class TerminalInstance implements ITerminalInstance {
const height = parseInt(computedStyle.getPropertyValue('height').replace('px', ''), 10);
this.layout(new Dimension(width, height));
this.setVisible(this._isVisible);
this.setCursorBlink(this._terminalService.configHelper.getCursorBlink());
this.setCommandsToSkipShell(this._terminalService.configHelper.getCommandsToSkipShell());
this.setScrollback(this._terminalService.configHelper.getScrollback());
}
public copySelection(): void {
......
......@@ -66,7 +66,6 @@ export class TerminalPanel extends Panel {
this._register(this._configurationService.onDidUpdateConfiguration(this._updateFont.bind(this)));
this._updateFont();
this._updateTheme();
this._terminalService.updateConfig();
// Force another layout (first is setContainers) since config has changed
this.layout(new Dimension(this._terminalContainer.offsetWidth, this._terminalContainer.offsetHeight));
......@@ -85,13 +84,11 @@ export class TerminalPanel extends Panel {
public setVisible(visible: boolean): TPromise<void> {
if (visible) {
if (this._terminalService.terminalInstances.length > 0) {
this._terminalService.updateConfig();
this._updateFont();
this._updateTheme();
} else {
return super.setVisible(visible).then(() => {
this._terminalService.createInstance();
this._terminalService.updateConfig();
this._updateFont();
this._updateTheme();
});
......
......@@ -83,9 +83,6 @@ export class TerminalService implements ITerminalService {
this.setActiveInstanceByIndex(0);
}
this._onInstancesChanged.fire();
this._updateCursorBlink(terminalInstance);
this._updateCommandsToSkipShell(terminalInstance);
this._updateScrollback(terminalInstance);
return terminalInstance;
}
......@@ -208,22 +205,10 @@ export class TerminalService implements ITerminalService {
}
public updateConfig(): void {
this.terminalInstances.forEach((instance) => {
this._updateCursorBlink(instance);
this._updateCommandsToSkipShell(instance);
this._updateScrollback(instance);
this.terminalInstances.forEach((terminalInstance) => {
terminalInstance.setCursorBlink(this.configHelper.getCursorBlink());
terminalInstance.setCommandsToSkipShell(this.configHelper.getCommandsToSkipShell());
terminalInstance.setScrollback(this.configHelper.getScrollback());
});
}
private _updateCursorBlink(terminalInstance): void {
terminalInstance.setCursorBlink(this.configHelper.getCursorBlink());
}
private _updateCommandsToSkipShell(terminalInstance): void {
terminalInstance.setCommandsToSkipShell(this.configHelper.getCommandsToSkipShell());
}
private _updateScrollback(terminalInstance): void {
terminalInstance.setScrollback(this.configHelper.getScrollback());
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册