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

Refactor terminals configuration concerns

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