Move WriteBuffer into CoreTerminal

This commit is contained in:
Daniel Imms
2020-04-26 09:38:34 -07:00
parent b9dee59900
commit 46e7fc61cc
2 changed files with 17 additions and 18 deletions
-14
View File
@@ -50,7 +50,6 @@ import { CharSizeService } from 'browser/services/CharSizeService';
import { IBuffer } from 'common/buffer/Types';
import { MouseService } from 'browser/services/MouseService';
import { ILinkifier, IMouseZoneManager, LinkMatcherHandler, ILinkMatcherOptions, IViewport, ILinkifier2 } from 'browser/Types';
import { WriteBuffer } from 'common/input/WriteBuffer';
import { Linkifier2 } from 'browser/Linkifier2';
import { CoreBrowserService } from 'browser/services/CoreBrowserService';
import { CoreTerminal } from 'common/CoreTerminal';
@@ -86,9 +85,6 @@ export class Terminal extends CoreTerminal implements ITerminal {
private _selectionService: ISelectionService;
private _soundService: ISoundService;
// write buffer
private _writeBuffer: WriteBuffer;
// Store if user went browsing history in scrollback
private _userScrolling: boolean;
@@ -164,8 +160,6 @@ export class Terminal extends CoreTerminal implements ITerminal {
// Setup listeners
this._bufferService.onResize(e => this._afterResize(e.cols, e.rows));
this._writeBuffer = new WriteBuffer(data => this._inputHandler.parse(data));
}
public dispose(): void {
@@ -1364,14 +1358,6 @@ export class Terminal extends CoreTerminal implements ITerminal {
// return this.options.bellStyle === 'sound' ||
// this.options.bellStyle === 'both';
}
public write(data: string | Uint8Array, callback?: () => void): void {
this._writeBuffer.write(data, callback);
}
public writeSync(data: string | Uint8Array): void {
this._writeBuffer.writeSync(data);
}
}
/**
+17 -4
View File
@@ -38,6 +38,7 @@ import { updateWindowsModeWrappedState } from 'common/WindowsMode';
import { IFunctionIdentifier, IParams } from 'common/parser/Types';
import { IBufferSet } from 'common/buffer/Types';
import { InputHandler } from 'common/InputHandler';
import { WriteBuffer } from 'common/input/WriteBuffer';
export abstract class CoreTerminal extends Disposable {
protected readonly _instantiationService: IInstantiationService;
@@ -52,6 +53,7 @@ export abstract class CoreTerminal extends Disposable {
public readonly optionsService: IOptionsService;
protected _inputHandler: InputHandler;
private _writeBuffer: WriteBuffer;
private _windowsMode: IDisposable | undefined;
private _onBinary = new EventEmitter<string>();
@@ -91,16 +93,19 @@ export abstract class CoreTerminal extends Disposable {
this._charsetService = this._instantiationService.createInstance(CharsetService);
this._instantiationService.setService(ICharsetService, this._charsetService);
// Register input handler and handle/forward events
this._inputHandler = new InputHandler(this._bufferService, this._charsetService, this._coreService, this._dirtyRowService, this._logService, this.optionsService, this._coreMouseService, this.unicodeService);
this.register(forwardEvent(this._inputHandler.onLineFeed, this._onLineFeed));
this.register(this._inputHandler);
// Setup listeners
this.register(forwardEvent(this._bufferService.onResize, this._onResize));
this.register(forwardEvent(this._coreService.onData, this._onData));
this.register(forwardEvent(this._coreService.onBinary, this._onBinary));
this.register(this.optionsService.onOptionChange(key => this._updateOptions(key)));
// Register input handler and handle/forward events
this._inputHandler = new InputHandler(this._bufferService, this._charsetService, this._coreService, this._dirtyRowService, this._logService, this.optionsService, this._coreMouseService, this.unicodeService);
this.register(forwardEvent(this._inputHandler.onLineFeed, this._onLineFeed));
this.register(this._inputHandler);
// Setup WriteBuffer
this._writeBuffer = new WriteBuffer(data => this._inputHandler.parse(data));
}
public dispose(): void {
@@ -112,6 +117,14 @@ export abstract class CoreTerminal extends Disposable {
this._windowsMode = undefined;
}
public write(data: string | Uint8Array, callback?: () => void): void {
this._writeBuffer.write(data, callback);
}
public writeSync(data: string | Uint8Array): void {
this._writeBuffer.writeSync(data);
}
public resize(x: number, y: number): void {
if (isNaN(x) || isNaN(y)) {
return;