From dbafc793da6a48579daa454b1651f56440e8e8f6 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 17 May 2019 23:41:26 -0700 Subject: [PATCH] Move Marker to core --- src/Buffer.ts | 31 +------------------------------ src/core/Types.ts | 8 ++++++++ src/core/buffer/Marker.ts | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 30 deletions(-) create mode 100644 src/core/buffer/Marker.ts diff --git a/src/Buffer.ts b/src/Buffer.ts index 14fe8acb..37d61d88 100644 --- a/src/Buffer.ts +++ b/src/Buffer.ts @@ -6,11 +6,9 @@ import { CircularList, IInsertEvent } from './common/CircularList'; import { ITerminal, IBuffer, BufferIndex, IBufferStringIterator, IBufferStringIteratorResult } from './Types'; import { IBufferLine, ICellData, IAttributeData } from './core/Types'; -import { IMarker } from 'xterm'; import { BufferLine, CellData, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE, WHITESPACE_CELL_CHAR, WHITESPACE_CELL_WIDTH, WHITESPACE_CELL_CODE, CHAR_DATA_WIDTH_INDEX, CHAR_DATA_CHAR_INDEX, DEFAULT_ATTR_DATA } from './core/buffer/BufferLine'; import { reflowLargerApplyNewLayout, reflowLargerCreateNewLayout, reflowLargerGetLinesToRemove, reflowSmallerGetNewLineLengths, getWrappedLineTrimmedLength } from './core/buffer/BufferReflow'; -import { EventEmitter2, IEvent } from './common/EventEmitter2'; -import { Disposable } from './common/Lifecycle'; +import { Marker } from './core/buffer/Marker'; export const MAX_BUFFER_SIZE = 4294967295; // 2^32 - 1 @@ -603,33 +601,6 @@ export class Buffer implements IBuffer { } } -export class Marker extends Disposable implements IMarker { - private static _nextId = 1; - - private _id: number = Marker._nextId++; - public isDisposed: boolean = false; - - public get id(): number { return this._id; } - - private _onDispose = new EventEmitter2(); - public get onDispose(): IEvent { return this._onDispose.event; } - - constructor( - public line: number - ) { - super(); - } - - public dispose(): void { - if (this.isDisposed) { - return; - } - this.isDisposed = true; - // Emit before super.dispose such that dispose listeners get a change to react - this._onDispose.fire(); - } -} - /** * Iterator to get unwrapped content strings from the buffer. * The iterator returns at least the string data between the borders diff --git a/src/core/Types.ts b/src/core/Types.ts index ae9274b8..5b97f249 100644 --- a/src/core/Types.ts +++ b/src/core/Types.ts @@ -3,6 +3,8 @@ * @license MIT */ +import { IDisposable } from '../common/Types'; + export const enum KeyboardResultType { SEND_KEY, SELECT_ALL, @@ -98,3 +100,9 @@ export interface IBufferLine { isCombined(index: number): number; getString(index: number): string; } + +export interface IMarker extends IDisposable { + readonly id: number; + readonly isDisposed: boolean; + readonly line: number; +} diff --git a/src/core/buffer/Marker.ts b/src/core/buffer/Marker.ts new file mode 100644 index 00000000..26de0dfe --- /dev/null +++ b/src/core/buffer/Marker.ts @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2018 The xterm.js authors. All rights reserved. + * @license MIT + */ + +import { EventEmitter2, IEvent } from '../../common/EventEmitter2'; +import { Disposable } from '../../common/Lifecycle'; +import { IMarker } from '../Types'; + +export class Marker extends Disposable implements IMarker { + private static _nextId = 1; + + private _id: number = Marker._nextId++; + public isDisposed: boolean = false; + + public get id(): number { return this._id; } + + private _onDispose = new EventEmitter2(); + public get onDispose(): IEvent { return this._onDispose.event; } + + constructor( + public line: number + ) { + super(); + } + + public dispose(): void { + if (this.isDisposed) { + return; + } + this.isDisposed = true; + // Emit before super.dispose such that dispose listeners get a change to react + this._onDispose.fire(); + } +}