From eacf90b2b74a7706785ba72fbf5259d7d054d8f9 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 30 May 2026 17:32:03 +0000 Subject: [PATCH] Split common into composite subprojects with project references - common/tsconfig.json is a solution root referencing layer tsconfigs - Each layer has composite tsconfig with correct references and outDir - Break buffer/services cycle via buffer-local service interfaces - Move cell types, keyboard/unicode types, TaskQueue, and TerminalOptions - Exclude *.test.ts from composite builds; fix parser IDisposable imports Co-authored-by: Daniel Imms --- addons/addon-webgl/src/TextureAtlas.ts | 2 +- src/browser/services/RenderService.ts | 2 +- src/common/REARCHITECTURE.md | 7 +- src/common/{services => base}/TaskQueue.ts | 10 +- src/common/base/TerminalOptions.ts | 13 + src/common/base/tsconfig.json | 15 +- src/common/buffer/AttributeData.ts | 2 +- src/common/buffer/Buffer.ts | 13 +- src/common/buffer/BufferLine.test.ts | 2 +- src/common/buffer/BufferLine.ts | 2 +- src/common/buffer/BufferLog.ts | 8 + src/common/buffer/BufferOptions.ts | 15 ++ src/common/buffer/BufferReflow.ts | 2 +- src/common/buffer/BufferService.ts | 31 +++ src/common/buffer/BufferSet.ts | 10 +- src/common/buffer/CellData.ts | 2 +- src/common/buffer/CellTypes.ts | 120 +++++++++ src/common/buffer/Marker.ts | 3 +- src/common/buffer/Types.ts | 4 +- src/common/buffer/tsconfig.json | 26 +- src/common/data/tsconfig.json | 19 +- src/common/encoding/tsconfig.json | 19 +- src/common/input/Keyboard.test.ts | 2 +- src/common/input/Keyboard.ts | 2 +- src/common/input/KeyboardTypes.d.ts | 22 ++ src/common/input/KeyboardTypes.d.ts.map | 1 + src/common/input/KeyboardTypes.js | 3 + src/common/input/KeyboardTypes.js.map | 1 + src/common/input/KeyboardTypes.ts | 32 +++ src/common/input/KittyKeyboard.test.ts | 2 +- src/common/input/KittyKeyboard.ts | 2 +- src/common/input/UnicodeProperties.d.ts.map | 1 + src/common/input/UnicodeProperties.ts | 22 ++ src/common/input/UnicodeTypes.d.ts | 8 + src/common/input/UnicodeTypes.d.ts.map | 1 + src/common/input/UnicodeTypes.js | 3 + src/common/input/UnicodeTypes.js.map | 1 + src/common/input/UnicodeTypes.ts | 24 ++ src/common/input/UnicodeV6.d.ts.map | 1 + src/common/input/UnicodeV6.ts | 8 +- src/common/input/Win32InputMode.test.ts | 2 +- src/common/input/Win32InputMode.ts | 2 +- src/common/input/tsconfig.json | 28 +- src/common/parser/ApcParser.ts | 2 +- src/common/parser/Constants.d.ts.map | 1 + src/common/parser/DcsParser.ts | 2 +- .../parser/EscapeSequenceParser.test.ts | 2 +- src/common/parser/EscapeSequenceParser.ts | 2 +- src/common/parser/OscParser.ts | 2 +- src/common/parser/Types.d.ts.map | 1 + src/common/parser/Types.ts | 2 +- src/common/parser/tsconfig.json | 22 +- src/common/public/tsconfig.json | 32 ++- src/common/services/OptionsService.d.ts.map | 1 + src/common/services/ServiceRegistry.d.ts | 9 + src/common/services/ServiceRegistry.d.ts.map | 1 + src/common/services/ServiceRegistry.js | 33 +++ src/common/services/ServiceRegistry.js.map | 1 + src/common/services/Services.d.ts | 230 ++++++++++++++++ src/common/services/Services.d.ts.map | 1 + src/common/services/Services.js | 24 ++ src/common/services/Services.js.map | 1 + src/common/services/Services.ts | 55 +--- src/common/services/SortedList.ts | 2 +- src/common/services/Types.d.ts | 254 ++++++++++++++++++ src/common/services/Types.d.ts.map | 1 + src/common/services/Types.js | 3 + src/common/services/Types.js.map | 1 + src/common/services/Types.ts | 195 +------------- src/common/services/UnicodeService.d.ts.map | 1 + src/common/services/UnicodeService.ts | 20 +- src/common/services/tsconfig.json | 35 ++- src/common/terminal/TestUtils.test.d.ts.map | 1 + src/common/terminal/tsconfig.json | 38 ++- src/common/tsconfig.compiler.json | 28 ++ src/common/tsconfig.json | 49 +--- 76 files changed, 1192 insertions(+), 355 deletions(-) rename src/common/{services => base}/TaskQueue.ts (95%) create mode 100644 src/common/base/TerminalOptions.ts create mode 100644 src/common/buffer/BufferLog.ts create mode 100644 src/common/buffer/BufferOptions.ts create mode 100644 src/common/buffer/BufferService.ts create mode 100644 src/common/buffer/CellTypes.ts create mode 100644 src/common/input/KeyboardTypes.d.ts create mode 100644 src/common/input/KeyboardTypes.d.ts.map create mode 100644 src/common/input/KeyboardTypes.js create mode 100644 src/common/input/KeyboardTypes.js.map create mode 100644 src/common/input/KeyboardTypes.ts create mode 100644 src/common/input/UnicodeProperties.d.ts.map create mode 100644 src/common/input/UnicodeProperties.ts create mode 100644 src/common/input/UnicodeTypes.d.ts create mode 100644 src/common/input/UnicodeTypes.d.ts.map create mode 100644 src/common/input/UnicodeTypes.js create mode 100644 src/common/input/UnicodeTypes.js.map create mode 100644 src/common/input/UnicodeTypes.ts create mode 100644 src/common/input/UnicodeV6.d.ts.map create mode 100644 src/common/parser/Constants.d.ts.map create mode 100644 src/common/parser/Types.d.ts.map create mode 100644 src/common/services/OptionsService.d.ts.map create mode 100644 src/common/services/ServiceRegistry.d.ts create mode 100644 src/common/services/ServiceRegistry.d.ts.map create mode 100644 src/common/services/ServiceRegistry.js create mode 100644 src/common/services/ServiceRegistry.js.map create mode 100644 src/common/services/Services.d.ts create mode 100644 src/common/services/Services.d.ts.map create mode 100644 src/common/services/Services.js create mode 100644 src/common/services/Services.js.map create mode 100644 src/common/services/Types.d.ts create mode 100644 src/common/services/Types.d.ts.map create mode 100644 src/common/services/Types.js create mode 100644 src/common/services/Types.js.map create mode 100644 src/common/services/UnicodeService.d.ts.map create mode 100644 src/common/terminal/TestUtils.test.d.ts.map create mode 100644 src/common/tsconfig.compiler.json diff --git a/addons/addon-webgl/src/TextureAtlas.ts b/addons/addon-webgl/src/TextureAtlas.ts index 21ac8d838..a185d4ff1 100644 --- a/addons/addon-webgl/src/TextureAtlas.ts +++ b/addons/addon-webgl/src/TextureAtlas.ts @@ -10,7 +10,7 @@ import { computeNextVariantOffset, treatGlyphAsBackgroundColor, isPowerlineGlyph import { IBoundingBox, ICharAtlasConfig, IRasterizedGlyph, ITextureAtlas } from './Types'; import { NULL_COLOR, channels, color, rgba } from 'common/services/Color'; import { FourKeyMap } from 'common/base/MultiKeyMap'; -import { IdleTaskQueue } from 'common/services/TaskQueue'; +import { IdleTaskQueue } from 'common/base/TaskQueue'; import { IColor } from 'common/services/Types'; import { AttributeData } from 'common/buffer/AttributeData'; import { Attributes, DEFAULT_COLOR, DEFAULT_EXT, UnderlineStyle } from 'common/buffer/Constants'; diff --git a/src/browser/services/RenderService.ts b/src/browser/services/RenderService.ts index e460c3d76..0916ef6bb 100644 --- a/src/browser/services/RenderService.ts +++ b/src/browser/services/RenderService.ts @@ -8,7 +8,7 @@ import { IRenderDebouncerWithCallback } from 'browser/Types'; import { IRenderDimensions, IRenderer } from 'browser/renderer/shared/Types'; import { ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services'; import { Disposable, MutableDisposable, toDisposable } from 'common/base/Lifecycle'; -import { DebouncedIdleTask } from 'common/services/TaskQueue'; +import { DebouncedIdleTask } from 'common/base/TaskQueue'; import { IBufferService, ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services'; import { Emitter } from 'common/base/Event'; diff --git a/src/common/REARCHITECTURE.md b/src/common/REARCHITECTURE.md index 047b54555..b11b5a36e 100644 --- a/src/common/REARCHITECTURE.md +++ b/src/common/REARCHITECTURE.md @@ -54,7 +54,8 @@ flowchart BT ## TypeScript projects -- **`common/tsconfig.json`** — composite build for all layers (resolves existing `buffer` ↔ `services` imports). -- **`common//tsconfig.json`** — per-layer config extending the root (`noEmit`) for tooling and future split into referenced composite projects. +- **`common/tsconfig.json`** — solution root; references each layer project (no sources). +- **`common/tsconfig.compiler.json`** — shared `lib`, `paths`, and `types` for layer projects. +- **`common//tsconfig.json`** — composite project with `references` matching the dependency graph above. Test files (`**/*.test.ts`) are excluded from composite builds; unit tests compile via esbuild. -Enforcing one-way project references at compile time (separate `out` per layer) is follow-up work once `Types` and buffer service interfaces are decoupled. +Buffer-layer code depends on `buffer/BufferService`, `buffer/BufferOptions`, and `buffer/BufferLog` instead of `services` so the `buffer` project does not reference `services`. diff --git a/src/common/services/TaskQueue.ts b/src/common/base/TaskQueue.ts similarity index 95% rename from src/common/services/TaskQueue.ts rename to src/common/base/TaskQueue.ts index 77f9aea55..2dc89c3ec 100644 --- a/src/common/services/TaskQueue.ts +++ b/src/common/base/TaskQueue.ts @@ -3,7 +3,9 @@ * @license MIT */ -import type { ILogService } from 'common/services/Services'; +export interface ITaskQueueLogService { + warn(message: any, ...optionalParams: any[]): void; +} interface ITaskQueue { /** @@ -34,9 +36,9 @@ abstract class TaskQueue implements ITaskQueue { private _tasks: (() => boolean | void)[] = []; private _idleCallback?: number; private _i = 0; - protected readonly _logService: ILogService; + protected readonly _logService: ITaskQueueLogService; - constructor(logService: ILogService) { + constructor(logService: ITaskQueueLogService) { this._logService = logService; } @@ -156,7 +158,7 @@ export const IdleTaskQueue = ('requestIdleCallback' in globalThis) ? IdleTaskQue export class DebouncedIdleTask { private _queue: ITaskQueue; - constructor(logService: ILogService) { + constructor(logService: ITaskQueueLogService) { this._queue = new IdleTaskQueue(logService); } diff --git a/src/common/base/TerminalOptions.ts b/src/common/base/TerminalOptions.ts new file mode 100644 index 000000000..41570b6c0 --- /dev/null +++ b/src/common/base/TerminalOptions.ts @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2018 The xterm.js authors. All rights reserved. + * @license MIT + */ + +import { ITerminalOptions as IPublicTerminalOptions } from '@xterm/xterm'; + +// TODO: The options that are not in the public API should be reviewed +export interface ITerminalOptions extends IPublicTerminalOptions { + [key: string]: any; + convertEol?: boolean; + termName?: string; +} diff --git a/src/common/base/tsconfig.json b/src/common/base/tsconfig.json index 3d38b2d18..c1b9a7e80 100644 --- a/src/common/base/tsconfig.json +++ b/src/common/base/tsconfig.json @@ -1,8 +1,17 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/base", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*", + "../../../typings/xterm.d.ts" + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/buffer/AttributeData.ts b/src/common/buffer/AttributeData.ts index 598854387..8d94cc052 100644 --- a/src/common/buffer/AttributeData.ts +++ b/src/common/buffer/AttributeData.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IAttributeData, IColorRGB, IExtendedAttrs } from 'common/services/Types'; +import { IAttributeData, IColorRGB, IExtendedAttrs } from 'common/buffer/CellTypes'; import { Attributes, FgFlags, BgFlags, UnderlineStyle, ExtFlags } from 'common/buffer/Constants'; export class AttributeData implements IAttributeData { diff --git a/src/common/buffer/Buffer.ts b/src/common/buffer/Buffer.ts index a466f6671..67082f96f 100644 --- a/src/common/buffer/Buffer.ts +++ b/src/common/buffer/Buffer.ts @@ -5,8 +5,12 @@ import { CircularList, IInsertEvent } from 'common/base/CircularList'; import { Disposable, toDisposable } from 'common/base/Lifecycle'; -import { IdleTaskQueue } from 'common/services/TaskQueue'; -import { IAttributeData, IBufferLine, ICellData, ICharset } from 'common/services/Types'; +import { IdleTaskQueue } from 'common/base/TaskQueue'; +import type { IAttributeData, IBufferLine, ICellData } from 'common/buffer/CellTypes'; +import type { ICharset } from 'common/data/Charsets'; +import type { IBufferService } from 'common/buffer/BufferService'; +import type { IBufferOptionsService } from 'common/buffer/BufferOptions'; +import type { IBufferLogService } from 'common/buffer/BufferLog'; import { ExtendedAttrs } from 'common/buffer/AttributeData'; import { BufferLine, DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine'; import { BufferLineStringCache } from 'common/buffer/BufferLineStringCache'; @@ -16,7 +20,6 @@ import { NULL_CELL_CHAR, NULL_CELL_CODE, NULL_CELL_WIDTH, WHITESPACE_CELL_CHAR, import { Marker } from 'common/buffer/Marker'; import { IBuffer } from 'common/buffer/Types'; import { DEFAULT_CHARSET } from 'common/data/Charsets'; -import { IBufferService, ILogService, IOptionsService } from 'common/services/Services'; export const MAX_BUFFER_SIZE = 4294967295; // 2^32 - 1 @@ -56,9 +59,9 @@ export class Buffer extends Disposable implements IBuffer { constructor( private _hasScrollback: boolean, - private _optionsService: IOptionsService, + private _optionsService: IBufferOptionsService, private _bufferService: IBufferService, - private readonly _logService: ILogService + private readonly _logService: IBufferLogService ) { super(); this._cols = this._bufferService.cols; diff --git a/src/common/buffer/BufferLine.test.ts b/src/common/buffer/BufferLine.test.ts index 656865733..d5a29b191 100644 --- a/src/common/buffer/BufferLine.test.ts +++ b/src/common/buffer/BufferLine.test.ts @@ -6,7 +6,7 @@ import { NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE, DEFAULT_ATTR, Content, import { BufferLine } from 'common/buffer/BufferLine'; import { BufferLineStringCache } from 'common/buffer/BufferLineStringCache'; import { CellData } from 'common/buffer/CellData'; -import { CharData, IBufferLine, ICellData } from 'common/services/Types'; +import { CharData, IBufferLine, ICellData } from 'common/buffer/CellTypes'; import { assert } from 'chai'; import { AttributeData } from 'common/buffer/AttributeData'; import { createCellData, NULL_CELL_DATA, extendedAttributes } from 'common/terminal/TestUtils.test'; diff --git a/src/common/buffer/BufferLine.ts b/src/common/buffer/BufferLine.ts index 8b08b7f36..0de3dbe20 100644 --- a/src/common/buffer/BufferLine.ts +++ b/src/common/buffer/BufferLine.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { CharData, IAttributeData, IBufferLine, ICellData, IExtendedAttrs } from 'common/services/Types'; +import { CharData, IAttributeData, IBufferLine, ICellData, IExtendedAttrs } from 'common/buffer/CellTypes'; import { AttributeData } from 'common/buffer/AttributeData'; import { CellData } from 'common/buffer/CellData'; import { Attributes, BgFlags, CHAR_DATA_ATTR_INDEX, CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, Content, NULL_CELL_CHAR, NULL_CELL_CODE, NULL_CELL_WIDTH, WHITESPACE_CELL_CHAR } from 'common/buffer/Constants'; diff --git a/src/common/buffer/BufferLog.ts b/src/common/buffer/BufferLog.ts new file mode 100644 index 000000000..37b985b5d --- /dev/null +++ b/src/common/buffer/BufferLog.ts @@ -0,0 +1,8 @@ +/** + * Copyright (c) 2022 The xterm.js authors. All rights reserved. + * @license MIT + */ + +export interface IBufferLogService { + warn(message: any, ...optionalParams: any[]): void; +} diff --git a/src/common/buffer/BufferOptions.ts b/src/common/buffer/BufferOptions.ts new file mode 100644 index 000000000..39c9e1d09 --- /dev/null +++ b/src/common/buffer/BufferOptions.ts @@ -0,0 +1,15 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +import type { IDisposable } from 'common/base/Lifecycle'; +import type { ITerminalOptions } from 'common/base/TerminalOptions'; + +/** + * Options surface used by the buffer layer. + */ +export interface IBufferOptionsService { + readonly rawOptions: Required; + onSpecificOptionChange(key: K, callback: (value: ITerminalOptions[K]) => void): IDisposable; +} diff --git a/src/common/buffer/BufferReflow.ts b/src/common/buffer/BufferReflow.ts index 3c05b6f43..73715be42 100644 --- a/src/common/buffer/BufferReflow.ts +++ b/src/common/buffer/BufferReflow.ts @@ -5,7 +5,7 @@ import { BufferLine } from 'common/buffer/BufferLine'; import { CircularList } from 'common/base/CircularList'; -import { IBufferLine, ICellData } from 'common/services/Types'; +import { IBufferLine, ICellData } from 'common/buffer/CellTypes'; export interface INewLayoutResult { layout: number[]; diff --git a/src/common/buffer/BufferService.ts b/src/common/buffer/BufferService.ts new file mode 100644 index 000000000..cb2a94219 --- /dev/null +++ b/src/common/buffer/BufferService.ts @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +import type { IEvent } from 'common/base/Event'; +import type { IAttributeData } from 'common/buffer/CellTypes'; +import type { IBuffer, IBufferSet } from 'common/buffer/Types'; + +export interface IBufferResizeEvent { + cols: number; + rows: number; + colsChanged: boolean; + rowsChanged: boolean; +} + +export interface IBufferService { + serviceBrand: undefined; + + readonly cols: number; + readonly rows: number; + readonly buffer: IBuffer; + readonly buffers: IBufferSet; + isUserScrolling: boolean; + onResize: IEvent; + onScroll: IEvent; + scroll(eraseAttr: IAttributeData, isWrapped?: boolean): void; + scrollLines(disp: number, suppressScrollEvent?: boolean): void; + resize(cols: number, rows: number): void; + reset(): void; +} diff --git a/src/common/buffer/BufferSet.ts b/src/common/buffer/BufferSet.ts index 599d00766..588949f44 100644 --- a/src/common/buffer/BufferSet.ts +++ b/src/common/buffer/BufferSet.ts @@ -4,10 +4,12 @@ */ import { Disposable, MutableDisposable } from 'common/base/Lifecycle'; -import { IAttributeData } from 'common/services/Types'; +import type { IAttributeData } from 'common/buffer/CellTypes'; import { Buffer } from 'common/buffer/Buffer'; import { IBuffer, IBufferSet } from 'common/buffer/Types'; -import { IBufferService, ILogService, IOptionsService } from 'common/services/Services'; +import type { IBufferService } from 'common/buffer/BufferService'; +import type { IBufferOptionsService } from 'common/buffer/BufferOptions'; +import type { IBufferLogService } from 'common/buffer/BufferLog'; import { Emitter } from 'common/base/Event'; /** @@ -28,9 +30,9 @@ export class BufferSet extends Disposable implements IBufferSet { * Create a new BufferSet for the given terminal. */ constructor( - private readonly _optionsService: IOptionsService, + private readonly _optionsService: IBufferOptionsService, private readonly _bufferService: IBufferService, - private readonly _logService: ILogService + private readonly _logService: IBufferLogService ) { super(); this.reset(); diff --git a/src/common/buffer/CellData.ts b/src/common/buffer/CellData.ts index 6c5383a0d..d311b2b26 100644 --- a/src/common/buffer/CellData.ts +++ b/src/common/buffer/CellData.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { CharData, ICellData, IExtendedAttrs } from 'common/services/Types'; +import { CharData, ICellData, IExtendedAttrs } from 'common/buffer/CellTypes'; import { stringFromCodePoint } from 'common/encoding/TextDecoder'; import { CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, CHAR_DATA_ATTR_INDEX, Content } from 'common/buffer/Constants'; import { AttributeData, ExtendedAttrs } from 'common/buffer/AttributeData'; diff --git a/src/common/buffer/CellTypes.ts b/src/common/buffer/CellTypes.ts new file mode 100644 index 000000000..c8a56b67b --- /dev/null +++ b/src/common/buffer/CellTypes.ts @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2018 The xterm.js authors. All rights reserved. + * @license MIT + */ + +import type { UnderlineStyle } from 'common/buffer/Constants'; +import type { IDisposable } from 'common/base/Lifecycle'; +import type { IEvent } from 'common/base/Event'; + +export type CharData = [attr: number, char: string, width: number, code: number]; + +export type IColorRGB = [red: number, green: number, blue: number]; + +export interface IExtendedAttrs { + ext: number; + underlineStyle: UnderlineStyle; + underlineColor: number; + underlineVariantOffset: number; + urlId: number; + clone(): IExtendedAttrs; + isEmpty(): boolean; +} + +/** + * An object that represents all attributes of a cell. + */ +export interface IAttributeData { + fg: number; + bg: number; + extended: IExtendedAttrs; + + clone(): IAttributeData; + + isInverse(): number; + isBold(): number; + isUnderline(): number; + isBlink(): number; + isInvisible(): number; + isItalic(): number; + isDim(): number; + isStrikethrough(): number; + isProtected(): number; + isOverline(): number; + + getFgColorMode(): number; + getBgColorMode(): number; + isFgRGB(): boolean; + isBgRGB(): boolean; + isFgPalette(): boolean; + isBgPalette(): boolean; + isFgDefault(): boolean; + isBgDefault(): boolean; + isAttributeDefault(): boolean; + + getFgColor(): number; + getBgColor(): number; + + hasExtendedAttrs(): number; + updateExtended(): void; + getUnderlineColor(): number; + getUnderlineColorMode(): number; + isUnderlineColorRGB(): boolean; + isUnderlineColorPalette(): boolean; + isUnderlineColorDefault(): boolean; + getUnderlineStyle(): number; + getUnderlineVariantOffset(): number; +} + +/** Cell data */ +export interface ICellData extends IAttributeData { + content: number; + combinedData: string; + isCombined(): number; + getWidth(): number; + getChars(): string; + getCode(): number; + setFromCharData(value: CharData): void; + getAsCharData(): CharData; +} + +/** + * Interface for a line in the terminal buffer. + */ +export interface IBufferLine { + length: number; + isWrapped: boolean; + get(index: number): CharData; + set(index: number, value: CharData): void; + loadCell(index: number, cell: ICellData): ICellData; + setCell(index: number, cell: ICellData): void; + setCellFromCodepoint(index: number, codePoint: number, width: number, attrs: IAttributeData): void; + addCodepointToCell(index: number, codePoint: number, width: number): void; + insertCells(pos: number, n: number, ch: ICellData): void; + deleteCells(pos: number, n: number, fill: ICellData): void; + replaceCells(start: number, end: number, fill: ICellData, respectProtect?: boolean): void; + resize(cols: number, fill: ICellData): boolean; + cleanupMemory(): number; + fill(fillCellData: ICellData, respectProtect?: boolean): void; + copyFrom(line: IBufferLine): void; + clone(): IBufferLine; + getTrimmedLength(): number; + getNoBgTrimmedLength(): number; + translateToString(trimRight?: boolean, startCol?: number, endCol?: number, outColumns?: number[]): string; + + getWidth(index: number): number; + hasWidth(index: number): number; + getFg(index: number): number; + getBg(index: number): number; + hasContent(index: number): number; + getCodePoint(index: number): number; + isCombined(index: number): number; + getString(index: number): string; +} + +export interface IMarker extends IDisposable { + readonly id: number; + readonly isDisposed: boolean; + readonly line: number; + onDispose: IEvent; +} diff --git a/src/common/buffer/Marker.ts b/src/common/buffer/Marker.ts index 992f90ede..18367ea68 100644 --- a/src/common/buffer/Marker.ts +++ b/src/common/buffer/Marker.ts @@ -3,7 +3,8 @@ * @license MIT */ -import { IDisposable, IMarker } from 'common/services/Types'; +import type { IDisposable } from 'common/base/Lifecycle'; +import type { IMarker } from 'common/buffer/CellTypes'; import { Emitter } from 'common/base/Event'; import { dispose } from 'common/base/Lifecycle'; diff --git a/src/common/buffer/Types.ts b/src/common/buffer/Types.ts index 3f240b96f..2defa114d 100644 --- a/src/common/buffer/Types.ts +++ b/src/common/buffer/Types.ts @@ -4,8 +4,10 @@ */ import type { ICircularList } from 'common/base/CircularList'; -import { IAttributeData, IBufferLine, ICellData, IMarker, ICharset, IDisposable } from 'common/services/Types'; +import type { IDisposable } from 'common/base/Lifecycle'; import type { IEvent } from 'common/base/Event'; +import type { IAttributeData, IBufferLine, ICellData, IMarker } from 'common/buffer/CellTypes'; +import type { ICharset } from 'common/data/Charsets'; // BufferIndex denotes a position in the buffer: [rowIndex, colIndex] export type BufferIndex = [number, number]; diff --git a/src/common/buffer/tsconfig.json b/src/common/buffer/tsconfig.json index 3d38b2d18..b70446d14 100644 --- a/src/common/buffer/tsconfig.json +++ b/src/common/buffer/tsconfig.json @@ -1,8 +1,28 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/buffer", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*", + "../../../typings/xterm.d.ts" + ], + "references": [ + { + "path": "../base" + }, + { + "path": "../encoding" + }, + { + "path": "../data" + } + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/data/tsconfig.json b/src/common/data/tsconfig.json index 3d38b2d18..7fc7b11a3 100644 --- a/src/common/data/tsconfig.json +++ b/src/common/data/tsconfig.json @@ -1,8 +1,21 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/data", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*" + ], + "references": [ + { + "path": "../base" + } + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/encoding/tsconfig.json b/src/common/encoding/tsconfig.json index 3d38b2d18..5e92f01fd 100644 --- a/src/common/encoding/tsconfig.json +++ b/src/common/encoding/tsconfig.json @@ -1,8 +1,21 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/encoding", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*" + ], + "references": [ + { + "path": "../base" + } + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/input/Keyboard.test.ts b/src/common/input/Keyboard.test.ts index a01be5511..b5a76e7a8 100644 --- a/src/common/input/Keyboard.test.ts +++ b/src/common/input/Keyboard.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai'; import { evaluateKeyboardEvent } from 'common/input/Keyboard'; -import { IKeyboardResult, IKeyboardEvent } from 'common/services/Types'; +import { IKeyboardResult, IKeyboardEvent } from 'common/input/KeyboardTypes'; /** * A helper function for testing which allows passing in a partial event and defaults will be filled diff --git a/src/common/input/Keyboard.ts b/src/common/input/Keyboard.ts index e62145105..32e85f3fc 100644 --- a/src/common/input/Keyboard.ts +++ b/src/common/input/Keyboard.ts @@ -4,7 +4,7 @@ * @license MIT */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/services/Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/input/KeyboardTypes'; import { C0 } from 'common/data/EscapeSequences'; // reg + shift key mappings for digits and special chars diff --git a/src/common/input/KeyboardTypes.d.ts b/src/common/input/KeyboardTypes.d.ts new file mode 100644 index 000000000..969582a47 --- /dev/null +++ b/src/common/input/KeyboardTypes.d.ts @@ -0,0 +1,22 @@ +export interface IKeyboardEvent { + altKey: boolean; + ctrlKey: boolean; + shiftKey: boolean; + metaKey: boolean; + keyCode: number; + key: string; + type: string; + code: string; +} +export declare const enum KeyboardResultType { + SEND_KEY = 0, + SELECT_ALL = 1, + PAGE_UP = 2, + PAGE_DOWN = 3 +} +export interface IKeyboardResult { + type: KeyboardResultType; + cancel: boolean; + key: string | undefined; +} +//# sourceMappingURL=KeyboardTypes.d.ts.map \ No newline at end of file diff --git a/src/common/input/KeyboardTypes.d.ts.map b/src/common/input/KeyboardTypes.d.ts.map new file mode 100644 index 000000000..c498c76d8 --- /dev/null +++ b/src/common/input/KeyboardTypes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"KeyboardTypes.d.ts","sourceRoot":"","sources":["KeyboardTypes.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,0BAAkB,kBAAkB;IAClC,QAAQ,IAAA;IACR,UAAU,IAAA;IACV,OAAO,IAAA;IACP,SAAS,IAAA;CACV;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB"} \ No newline at end of file diff --git a/src/common/input/KeyboardTypes.js b/src/common/input/KeyboardTypes.js new file mode 100644 index 000000000..a567aae0b --- /dev/null +++ b/src/common/input/KeyboardTypes.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=KeyboardTypes.js.map \ No newline at end of file diff --git a/src/common/input/KeyboardTypes.js.map b/src/common/input/KeyboardTypes.js.map new file mode 100644 index 000000000..327851e5a --- /dev/null +++ b/src/common/input/KeyboardTypes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"KeyboardTypes.js","sourceRoot":"","sources":["KeyboardTypes.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/src/common/input/KeyboardTypes.ts b/src/common/input/KeyboardTypes.ts new file mode 100644 index 000000000..e902538c0 --- /dev/null +++ b/src/common/input/KeyboardTypes.ts @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2018 The xterm.js authors. All rights reserved. + * @license MIT + */ + +/** + * A keyboard event interface which does not depend on the DOM. + */ +export interface IKeyboardEvent { + altKey: boolean; + ctrlKey: boolean; + shiftKey: boolean; + metaKey: boolean; + /** @deprecated See KeyboardEvent.keyCode */ + keyCode: number; + key: string; + type: string; + code: string; +} + +export const enum KeyboardResultType { + SEND_KEY, + SELECT_ALL, + PAGE_UP, + PAGE_DOWN +} + +export interface IKeyboardResult { + type: KeyboardResultType; + cancel: boolean; + key: string | undefined; +} diff --git a/src/common/input/KittyKeyboard.test.ts b/src/common/input/KittyKeyboard.test.ts index 9acaf136d..a3ff4ad59 100644 --- a/src/common/input/KittyKeyboard.test.ts +++ b/src/common/input/KittyKeyboard.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai'; import { KittyKeyboard, KittyKeyboardEventType, KittyKeyboardFlags } from 'common/input/KittyKeyboard'; -import { IKeyboardEvent } from 'common/services/Types'; +import { IKeyboardEvent } from 'common/input/KeyboardTypes'; function createEvent(partialEvent: Partial = {}): IKeyboardEvent { return { diff --git a/src/common/input/KittyKeyboard.ts b/src/common/input/KittyKeyboard.ts index bbd196d92..9e178ea38 100644 --- a/src/common/input/KittyKeyboard.ts +++ b/src/common/input/KittyKeyboard.ts @@ -6,7 +6,7 @@ * @see https://sw.kovidgoyal.net/kitty/keyboard-protocol/ */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/services/Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/input/KeyboardTypes'; import { C0 } from 'common/data/EscapeSequences'; /** diff --git a/src/common/input/UnicodeProperties.d.ts.map b/src/common/input/UnicodeProperties.d.ts.map new file mode 100644 index 000000000..6941c65a9 --- /dev/null +++ b/src/common/input/UnicodeProperties.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UnicodeProperties.d.ts","sourceRoot":"","sources":["UnicodeProperties.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEzF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAEvE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,qBAAqB,GAAG,gBAAgB,CAE3E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,qBAAqB,CAEpH"} \ No newline at end of file diff --git a/src/common/input/UnicodeProperties.ts b/src/common/input/UnicodeProperties.ts new file mode 100644 index 000000000..69d981c0c --- /dev/null +++ b/src/common/input/UnicodeProperties.ts @@ -0,0 +1,22 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +import type { UnicodeCharProperties, UnicodeCharWidth } from 'common/input/UnicodeTypes'; + +export function extractShouldJoin(value: UnicodeCharProperties): boolean { + return (value & 1) !== 0; +} + +export function extractWidth(value: UnicodeCharProperties): UnicodeCharWidth { + return ((value >> 1) & 0x3) as UnicodeCharWidth; +} + +export function extractCharKind(value: UnicodeCharProperties): number { + return value >> 3; +} + +export function createPropertyValue(state: number, width: number, shouldJoin: boolean = false): UnicodeCharProperties { + return ((state & 0xffffff) << 3) | ((width & 3) << 1) | (shouldJoin ? 1 : 0); +} diff --git a/src/common/input/UnicodeTypes.d.ts b/src/common/input/UnicodeTypes.d.ts new file mode 100644 index 000000000..e62e19b64 --- /dev/null +++ b/src/common/input/UnicodeTypes.d.ts @@ -0,0 +1,8 @@ +export type UnicodeCharProperties = number; +export type UnicodeCharWidth = 0 | 1 | 2; +export interface IUnicodeVersionProvider { + readonly version: string; + wcwidth(ucs: number): UnicodeCharWidth; + charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties; +} +//# sourceMappingURL=UnicodeTypes.d.ts.map \ No newline at end of file diff --git a/src/common/input/UnicodeTypes.d.ts.map b/src/common/input/UnicodeTypes.d.ts.map new file mode 100644 index 000000000..d98e4b476 --- /dev/null +++ b/src/common/input/UnicodeTypes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UnicodeTypes.d.ts","sourceRoot":"","sources":["UnicodeTypes.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAK3C,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,qBAAqB,CAAC;CAC5F"} \ No newline at end of file diff --git a/src/common/input/UnicodeTypes.js b/src/common/input/UnicodeTypes.js new file mode 100644 index 000000000..b281ee915 --- /dev/null +++ b/src/common/input/UnicodeTypes.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=UnicodeTypes.js.map \ No newline at end of file diff --git a/src/common/input/UnicodeTypes.js.map b/src/common/input/UnicodeTypes.js.map new file mode 100644 index 000000000..1a9e60415 --- /dev/null +++ b/src/common/input/UnicodeTypes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnicodeTypes.js","sourceRoot":"","sources":["UnicodeTypes.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/src/common/input/UnicodeTypes.ts b/src/common/input/UnicodeTypes.ts new file mode 100644 index 000000000..d1c739c2b --- /dev/null +++ b/src/common/input/UnicodeTypes.ts @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2019 The xterm.js authors. All rights reserved. + * @license MIT + */ + +/* + * Width and Grapheme_Cluster_Break properties of a character as a bit mask. + * + * bit 0: shouldJoin - should combine with preceding character. + * bit 1..2: wcwidth - see UnicodeCharWidth. + * bit 3..31: class of character (currently only 4 bits are used). + */ +export type UnicodeCharProperties = number; + +/** + * Width in columns of a character. + */ +export type UnicodeCharWidth = 0 | 1 | 2; + +export interface IUnicodeVersionProvider { + readonly version: string; + wcwidth(ucs: number): UnicodeCharWidth; + charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties; +} diff --git a/src/common/input/UnicodeV6.d.ts.map b/src/common/input/UnicodeV6.d.ts.map new file mode 100644 index 000000000..1fd9e0595 --- /dev/null +++ b/src/common/input/UnicodeV6.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UnicodeV6.d.ts","sourceRoot":"","sources":["UnicodeV6.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AA+ElH,qBAAa,SAAU,YAAW,uBAAuB;IACvD,SAAgB,OAAO,OAAO;IAE9B,cAkCC;IAEM,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAO5C;IAEM,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,qBAAqB,CAYhG;CACF"} \ No newline at end of file diff --git a/src/common/input/UnicodeV6.ts b/src/common/input/UnicodeV6.ts index 83265f705..b5d256f39 100644 --- a/src/common/input/UnicodeV6.ts +++ b/src/common/input/UnicodeV6.ts @@ -2,8 +2,8 @@ * Copyright (c) 2019 The xterm.js authors. All rights reserved. * @license MIT */ -import { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services'; -import { UnicodeService } from 'common/services/UnicodeService'; +import type { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/input/UnicodeTypes'; +import { createPropertyValue, extractWidth } from 'common/input/UnicodeProperties'; const BMP_COMBINING = [ [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489], @@ -133,13 +133,13 @@ export class UnicodeV6 implements IUnicodeVersionProvider { let width = this.wcwidth(codepoint); let shouldJoin = width === 0 && preceding !== 0; if (shouldJoin) { - const oldWidth = UnicodeService.extractWidth(preceding); + const oldWidth = extractWidth(preceding); if (oldWidth === 0) { shouldJoin = false; } else if (oldWidth > width) { width = oldWidth; } } - return UnicodeService.createPropertyValue(0, width, shouldJoin); + return createPropertyValue(0, width, shouldJoin); } } diff --git a/src/common/input/Win32InputMode.test.ts b/src/common/input/Win32InputMode.test.ts index 7c7dc2b09..6af7d8236 100644 --- a/src/common/input/Win32InputMode.test.ts +++ b/src/common/input/Win32InputMode.test.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { Win32InputMode, Win32ControlKeyState } from 'common/input/Win32InputMode'; -import { IKeyboardEvent, KeyboardResultType } from 'common/services/Types'; +import { IKeyboardEvent, KeyboardResultType } from 'common/input/KeyboardTypes'; type EventOpts = Partial; const ev = (opts: EventOpts): IKeyboardEvent => ({ diff --git a/src/common/input/Win32InputMode.ts b/src/common/input/Win32InputMode.ts index a7c9babd7..56df70e88 100644 --- a/src/common/input/Win32InputMode.ts +++ b/src/common/input/Win32InputMode.ts @@ -14,7 +14,7 @@ * Rc: Repeat count (usually 1) */ -import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/services/Types'; +import { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/input/KeyboardTypes'; import { C0 } from 'common/data/EscapeSequences'; /** diff --git a/src/common/input/tsconfig.json b/src/common/input/tsconfig.json index 3d38b2d18..fe9f7d0f6 100644 --- a/src/common/input/tsconfig.json +++ b/src/common/input/tsconfig.json @@ -1,8 +1,30 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/input", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*" + ], + "references": [ + { + "path": "../base" + }, + { + "path": "../data" + }, + { + "path": "../encoding" + }, + { + "path": "../parser" + } + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/parser/ApcParser.ts b/src/common/parser/ApcParser.ts index 3ceb47cec..d92da4372 100644 --- a/src/common/parser/ApcParser.ts +++ b/src/common/parser/ApcParser.ts @@ -6,7 +6,7 @@ import { IApcHandler, IHandlerCollection, ApcFallbackHandlerType, IApcParser, ISubParserStackState } from 'common/parser/Types'; import { ParserConstants } from 'common/parser/Constants'; import { utf32ToString } from 'common/encoding/TextDecoder'; -import { IDisposable } from 'common/services/Types'; +import { IDisposable } from 'common/base/Lifecycle'; import { LimitedStringBuilder } from 'common/base/StringBuilder'; const EMPTY_HANDLERS: IApcHandler[] = []; diff --git a/src/common/parser/Constants.d.ts.map b/src/common/parser/Constants.d.ts.map new file mode 100644 index 000000000..8240fc2af --- /dev/null +++ b/src/common/parser/Constants.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["Constants.ts"],"names":[],"mappings":"AAQA,0BAAkB,WAAW;IAC3B,MAAM,IAAI;IACV,MAAM,IAAI;IACV,mBAAmB,IAAI;IACvB,SAAS,IAAI;IACb,SAAS,IAAI;IACb,gBAAgB,IAAI;IACpB,UAAU,IAAI;IACd,aAAa,IAAI;IACjB,UAAU,IAAI;IACd,SAAS,IAAI;IACb,SAAS,KAAK;IACd,UAAU,KAAK;IACf,gBAAgB,KAAK;IACrB,eAAe,KAAK;IACpB,SAAS,KAAK;IACd,gBAAgB,KAAK;IACrB,eAAe,KAAK;IAEpB,YAAY,KAAK;CAClB;AAKD,0BAAkB,YAAY;IAC5B,MAAM,IAAI;IACV,KAAK,IAAI;IACT,KAAK,IAAI;IACT,OAAO,IAAI;IACX,SAAS,IAAI;IACb,OAAO,IAAI;IACX,OAAO,IAAI;IACX,YAAY,IAAI;IAChB,KAAK,IAAI;IACT,OAAO,IAAI;IACX,YAAY,KAAK;IACjB,KAAK,KAAK;IACV,QAAQ,KAAK;IACb,OAAO,KAAK;IACZ,UAAU,KAAK;IACf,SAAS,KAAK;IACd,OAAO,KAAK;IACZ,OAAO,KAAK;CACb;AAKD,0BAAkB,QAAQ;IACxB,KAAK,IAAI;IACT,EAAE,IAAI;IACN,OAAO,IAAI;IACX,KAAK,IAAI;CACV;AAGD,0BAAkB,eAAe;IAC/B,aAAa,WAAW;CACzB"} \ No newline at end of file diff --git a/src/common/parser/DcsParser.ts b/src/common/parser/DcsParser.ts index 4611f6253..eca2ca07f 100644 --- a/src/common/parser/DcsParser.ts +++ b/src/common/parser/DcsParser.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable } from 'common/services/Types'; +import { IDisposable } from 'common/base/Lifecycle'; import { IDcsHandler, IParams, IHandlerCollection, IDcsParser, DcsFallbackHandlerType, ISubParserStackState } from 'common/parser/Types'; import { utf32ToString } from 'common/encoding/TextDecoder'; import { Params } from 'common/parser/Params'; diff --git a/src/common/parser/EscapeSequenceParser.test.ts b/src/common/parser/EscapeSequenceParser.test.ts index 909467406..f754074c3 100644 --- a/src/common/parser/EscapeSequenceParser.test.ts +++ b/src/common/parser/EscapeSequenceParser.test.ts @@ -10,7 +10,7 @@ import { StringToUtf32, stringFromCodePoint, utf32ToString } from 'common/encodi import { ParserState } from 'common/parser/Constants'; import { Params } from 'common/parser/Params'; import { OscHandler } from 'common/parser/OscParser'; -import { IDisposable } from 'common/services/Types'; +import type { IDisposable } from 'common/base/Lifecycle'; import { DcsHandler } from 'common/parser/DcsParser'; import { ApcHandler } from 'common/parser/ApcParser'; diff --git a/src/common/parser/EscapeSequenceParser.ts b/src/common/parser/EscapeSequenceParser.ts index e100b74c4..43f86e74d 100644 --- a/src/common/parser/EscapeSequenceParser.ts +++ b/src/common/parser/EscapeSequenceParser.ts @@ -6,7 +6,7 @@ import { IParsingState, IDcsHandler, IEscapeSequenceParser, IParams, IOscHandler, IHandlerCollection, CsiHandlerType, OscFallbackHandlerType, IOscParser, EscHandlerType, IDcsParser, DcsFallbackHandlerType, IFunctionIdentifier, ExecuteFallbackHandlerType, CsiFallbackHandlerType, EscFallbackHandlerType, PrintHandlerType, PrintFallbackHandlerType, ExecuteHandlerType, IParserStackState, ParserStackType, ResumableHandlersType, IApcHandler, IApcParser, ApcFallbackHandlerType } from 'common/parser/Types'; import { ParserState, ParserAction } from 'common/parser/Constants'; import { Disposable, toDisposable } from 'common/base/Lifecycle'; -import { IDisposable } from 'common/services/Types'; +import { IDisposable } from 'common/base/Lifecycle'; import { Params } from 'common/parser/Params'; import { OscParser } from 'common/parser/OscParser'; import { DcsParser } from 'common/parser/DcsParser'; diff --git a/src/common/parser/OscParser.ts b/src/common/parser/OscParser.ts index 3be2082d2..f9b453a4d 100644 --- a/src/common/parser/OscParser.ts +++ b/src/common/parser/OscParser.ts @@ -6,7 +6,7 @@ import { IOscHandler, IHandlerCollection, OscFallbackHandlerType, IOscParser, ISubParserStackState } from 'common/parser/Types'; import { OscState, ParserConstants } from 'common/parser/Constants'; import { utf32ToString } from 'common/encoding/TextDecoder'; -import { IDisposable } from 'common/services/Types'; +import { IDisposable } from 'common/base/Lifecycle'; import { LimitedStringBuilder } from 'common/base/StringBuilder'; const EMPTY_HANDLERS: IOscHandler[] = []; diff --git a/src/common/parser/Types.d.ts.map b/src/common/parser/Types.d.ts.map new file mode 100644 index 000000000..d003130a0 --- /dev/null +++ b/src/common/parser/Types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/common/parser/Types.ts b/src/common/parser/Types.ts index 13f8955a0..372dfb077 100644 --- a/src/common/parser/Types.ts +++ b/src/common/parser/Types.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDisposable } from 'common/services/Types'; +import type { IDisposable } from 'common/base/Lifecycle'; import { ParserState } from 'common/parser/Constants'; diff --git a/src/common/parser/tsconfig.json b/src/common/parser/tsconfig.json index 3d38b2d18..ce883e6ab 100644 --- a/src/common/parser/tsconfig.json +++ b/src/common/parser/tsconfig.json @@ -1,8 +1,24 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/parser", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*" + ], + "references": [ + { + "path": "../base" + }, + { + "path": "../buffer" + } + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/public/tsconfig.json b/src/common/public/tsconfig.json index 3d38b2d18..6ed803f4c 100644 --- a/src/common/public/tsconfig.json +++ b/src/common/public/tsconfig.json @@ -1,8 +1,34 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/public", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*", + "../../../typings/xterm.d.ts" + ], + "references": [ + { + "path": "../base" + }, + { + "path": "../buffer" + }, + { + "path": "../parser" + }, + { + "path": "../services" + }, + { + "path": "../terminal" + } + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/services/OptionsService.d.ts.map b/src/common/services/OptionsService.d.ts.map new file mode 100644 index 000000000..c311afd9d --- /dev/null +++ b/src/common/services/OptionsService.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"OptionsService.d.ts","sourceRoot":"","sources":["OptionsService.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAgB,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAe,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAc,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGzF,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAiDhE,CAAC;AAIF,qBAAa,cAAe,SAAQ,UAAW,YAAW,eAAe;IAChE,YAAY,EAAE,GAAG,CAAC;IAEzB,SAAgB,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAChD,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyD;IACzF,SAAgB,cAAc,6DAA8B;IAE5D,YAAY,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EA0B7C;IAGM,sBAAsB,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,WAAW,CAMlI;IAGM,sBAAsB,CAAC,IAAI,EAAE,CAAC,MAAM,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,WAAW,CAMhG;IAED,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,0BAA0B;CAiEnC"} \ No newline at end of file diff --git a/src/common/services/ServiceRegistry.d.ts b/src/common/services/ServiceRegistry.d.ts new file mode 100644 index 000000000..4484fb5ad --- /dev/null +++ b/src/common/services/ServiceRegistry.d.ts @@ -0,0 +1,9 @@ +import { IServiceIdentifier } from 'common/services/Services'; +export declare const serviceRegistry: Map>; +export declare function getServiceDependencies(ctor: any): { + id: IServiceIdentifier; + index: number; + optional: boolean; +}[]; +export declare function createDecorator(id: string): IServiceIdentifier; +//# sourceMappingURL=ServiceRegistry.d.ts.map \ No newline at end of file diff --git a/src/common/services/ServiceRegistry.d.ts.map b/src/common/services/ServiceRegistry.d.ts.map new file mode 100644 index 000000000..2ab1b18f4 --- /dev/null +++ b/src/common/services/ServiceRegistry.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ServiceRegistry.d.ts","sourceRoot":"","sources":["ServiceRegistry.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAO9D,eAAO,MAAM,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAa,CAAC;AAE/E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG;IAAE,EAAE,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,EAAE,CAErH;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAiBpE"} \ No newline at end of file diff --git a/src/common/services/ServiceRegistry.js b/src/common/services/ServiceRegistry.js new file mode 100644 index 000000000..8c2b6fae6 --- /dev/null +++ b/src/common/services/ServiceRegistry.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.serviceRegistry = void 0; +exports.getServiceDependencies = getServiceDependencies; +exports.createDecorator = createDecorator; +exports.serviceRegistry = new Map(); +function getServiceDependencies(ctor) { + return ctor["di$dependencies"] || []; +} +function createDecorator(id) { + if (exports.serviceRegistry.has(id)) { + return exports.serviceRegistry.get(id); + } + const decorator = function (target, key, index) { + if (arguments.length !== 3) { + throw new Error('@IServiceName-decorator can only be used to decorate a parameter'); + } + storeServiceDependency(decorator, target, index); + }; + decorator._id = id; + exports.serviceRegistry.set(id, decorator); + return decorator; +} +function storeServiceDependency(id, target, index) { + if (target["di$target"] === target) { + target["di$dependencies"].push({ id, index }); + } + else { + target["di$dependencies"] = [{ id, index }]; + target["di$target"] = target; + } +} +//# sourceMappingURL=ServiceRegistry.js.map \ No newline at end of file diff --git a/src/common/services/ServiceRegistry.js.map b/src/common/services/ServiceRegistry.js.map new file mode 100644 index 000000000..03038f8e1 --- /dev/null +++ b/src/common/services/ServiceRegistry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ServiceRegistry.js","sourceRoot":"","sources":["ServiceRegistry.ts"],"names":[],"mappings":";;;;;AAkBa,QAAA,eAAe,GAAyC,IAAI,GAAG,EAAE,CAAC;AAE/E,gCAAuC,IAAS;IAC9C,OAAO,IAAI,mBAA2B,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED,yBAAmC,EAAU;IAC3C,IAAI,QAAA,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAA,eAAe,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;IAClC,CAAC;IAED,MAAM,SAAS,GAAQ,UAAU,MAAgB,EAAE,GAAW,EAAE,KAAa;QAC3E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QAED,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC;IAEnB,QAAA,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACnC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAY,EAAE,MAAgB,EAAE,KAAa;IAC3E,IAAK,MAAc,aAAqB,KAAK,MAAM,EAAE,CAAC;QACnD,MAAc,mBAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACL,MAAc,mBAA2B,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,MAAc,aAAqB,GAAG,MAAM,CAAC;IAChD,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/src/common/services/Services.d.ts b/src/common/services/Services.d.ts new file mode 100644 index 000000000..888da8fee --- /dev/null +++ b/src/common/services/Services.d.ts @@ -0,0 +1,230 @@ +import type { IDecoration, IDecorationOptions, ILinkHandler, ILogger, IWindowsPty, IOverviewRulerOptions } from '@xterm/xterm'; +import { CoreMouseEncoding, CoreMouseEventType, CursorInactiveStyle, CursorStyle, ICharset, IColor, ICoreMouseEvent, ICoreMouseProtocol, IDecPrivateModes, IDisposable, IKittyKeyboardState, IModes, IOscLinkData, IWindowOptions } from 'common/services/Types'; +import type { IBufferService as IBufferServiceApi } from 'common/buffer/BufferService'; +import type { Emitter, IEvent } from 'common/base/Event'; +import type { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/input/UnicodeTypes'; +export type { IBufferResizeEvent } from 'common/buffer/BufferService'; +export interface IBufferService extends IBufferServiceApi { +} +export declare const IBufferService: IServiceIdentifier; +export declare const IMouseStateService: IServiceIdentifier; +export interface IMouseStateService { + serviceBrand: undefined; + activeProtocol: string; + activeEncoding: string; + areMouseEventsActive: boolean; + addProtocol(name: string, protocol: ICoreMouseProtocol): void; + addEncoding(name: string, encoding: CoreMouseEncoding): void; + reset(): void; + setCustomWheelEventHandler(customWheelEventHandler: ((event: WheelEvent) => boolean) | undefined): void; + allowCustomWheelEvent(ev: WheelEvent): boolean; + onProtocolChange: IEvent; + restrictMouseEvent(event: ICoreMouseEvent): boolean; + encodeMouseEvent(event: ICoreMouseEvent): string; + readonly isDefaultEncoding: boolean; + readonly isPixelEncoding: boolean; +} +export declare const ICoreService: IServiceIdentifier; +export interface ICoreService { + serviceBrand: undefined; + isCursorInitialized: boolean; + isCursorHidden: boolean; + readonly modes: IModes; + readonly decPrivateModes: IDecPrivateModes; + readonly kittyKeyboard: IKittyKeyboardState; + readonly onData: IEvent; + readonly onUserInput: IEvent; + readonly onBinary: IEvent; + readonly onRequestScrollToBottom: IEvent; + reset(): void; + triggerDataEvent(data: string, wasUserInput?: boolean): void; + triggerBinaryEvent(data: string): void; +} +export declare const ICharsetService: IServiceIdentifier; +export interface ICharsetService { + serviceBrand: undefined; + charset: ICharset | undefined; + readonly glevel: number; + readonly charsets: (ICharset | undefined)[]; + reset(): void; + setgLevel(g: number): void; + setgCharset(g: number, charset: ICharset | undefined): void; +} +export interface IServiceIdentifier { + (...args: any[]): void; + type: T; + _id: string; +} +export interface IBrandedService { + serviceBrand: undefined; +} +type GetLeadingNonServiceArgs = TArgs extends [] ? [] : TArgs extends [...infer TFirst, infer TLast] ? TLast extends IBrandedService ? GetLeadingNonServiceArgs : TArgs : never; +export declare const IInstantiationService: IServiceIdentifier; +export interface IInstantiationService { + serviceBrand: undefined; + setService(id: IServiceIdentifier, instance: T): void; + getService(id: IServiceIdentifier): T | undefined; + createInstance any, R extends InstanceType>(t: Ctor, ...args: GetLeadingNonServiceArgs>): R; +} +export declare enum LogLevelEnum { + TRACE = 0, + DEBUG = 1, + INFO = 2, + WARN = 3, + ERROR = 4, + OFF = 5 +} +export declare const ILogService: IServiceIdentifier; +export interface ILogService { + serviceBrand: undefined; + readonly logLevel: LogLevelEnum; + trace(message: any, ...optionalParams: any[]): void; + debug(message: any, ...optionalParams: any[]): void; + info(message: any, ...optionalParams: any[]): void; + warn(message: any, ...optionalParams: any[]): void; + error(message: any, ...optionalParams: any[]): void; +} +export declare const IOptionsService: IServiceIdentifier; +export interface IOptionsService { + serviceBrand: undefined; + readonly rawOptions: Required; + readonly options: Required; + readonly onOptionChange: IEvent; + onSpecificOptionChange(key: T, listener: (arg1: Required[T]) => any): IDisposable; + onMultipleOptionChange(keys: (keyof ITerminalOptions)[], listener: () => any): IDisposable; +} +export type FontWeight = 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | number; +export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'off'; +export interface ITerminalOptions { + allowProposedApi?: boolean; + allowTransparency?: boolean; + altClickMovesCursor?: boolean; + cols?: number; + convertEol?: boolean; + cursorBlink?: boolean; + blinkIntervalDuration?: number; + cursorStyle?: CursorStyle; + cursorWidth?: number; + cursorInactiveStyle?: CursorInactiveStyle; + disableStdin?: boolean; + documentOverride?: any | null; + drawBoldTextInBrightColors?: boolean; + fastScrollSensitivity?: number; + fontSize?: number; + fontFamily?: string; + fontWeight?: FontWeight; + fontWeightBold?: FontWeight; + ignoreBracketedPasteMode?: boolean; + letterSpacing?: number; + lineHeight?: number; + linkHandler?: ILinkHandler | null; + logLevel?: LogLevel; + logger?: ILogger | null; + macOptionIsMeta?: boolean; + macOptionClickForcesSelection?: boolean; + minimumContrastRatio?: number; + mouseEventsRequireAlt?: boolean; + reflowCursorLine?: boolean; + rescaleOverlappingGlyphs?: boolean; + rightClickSelectsWord?: boolean; + rows?: number; + showCursorImmediately?: boolean; + screenReaderMode?: boolean; + scrollback?: number; + scrollOnUserInput?: boolean; + scrollSensitivity?: number; + smoothScrollDuration?: number; + tabStopWidth?: number; + theme?: ITheme; + windowsPty?: IWindowsPty; + windowOptions?: IWindowOptions; + wordSeparator?: string; + quirks?: ITerminalQuirks; + scrollbar?: IScrollbarOptions; + scrollOnEraseInDisplay?: boolean; + vtExtensions?: IVtExtensions; + [key: string]: any; + termName: string; +} +export interface ITheme { + foreground?: string; + background?: string; + cursor?: string; + cursorAccent?: string; + selectionForeground?: string; + selectionBackground?: string; + selectionInactiveBackground?: string; + scrollbarSliderBackground?: string; + scrollbarSliderHoverBackground?: string; + scrollbarSliderActiveBackground?: string; + overviewRulerBorder?: string; + black?: string; + red?: string; + green?: string; + yellow?: string; + blue?: string; + magenta?: string; + cyan?: string; + white?: string; + brightBlack?: string; + brightRed?: string; + brightGreen?: string; + brightYellow?: string; + brightBlue?: string; + brightMagenta?: string; + brightCyan?: string; + brightWhite?: string; + extendedAnsi?: string[]; +} +export interface ITerminalQuirks { + allowSetCursorBlink?: boolean; +} +export interface IScrollbarOptions { + showScrollbar?: boolean; + showArrows?: boolean; + width?: number; + overviewRuler?: IOverviewRulerOptions; +} +export interface IVtExtensions { + kittyKeyboard?: boolean; + kittySgrBoldFaintControl?: boolean; + win32InputMode?: boolean; + colorSchemeQuery?: boolean; +} +export declare const IOscLinkService: IServiceIdentifier; +export interface IOscLinkService { + serviceBrand: undefined; + registerLink(linkData: IOscLinkData): number; + addLineToLink(linkId: number, y: number): void; + getLinkData(linkId: number): IOscLinkData | undefined; +} +export type { UnicodeCharProperties, UnicodeCharWidth, IUnicodeVersionProvider } from 'common/input/UnicodeTypes'; +export declare const IUnicodeService: IServiceIdentifier; +export interface IUnicodeService { + serviceBrand: undefined; + register(provider: IUnicodeVersionProvider): void; + readonly versions: string[]; + activeVersion: string; + readonly onChange: IEvent; + wcwidth(codepoint: number): UnicodeCharWidth; + getStringCellWidth(s: string): number; + charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties; +} +export declare const IDecorationService: IServiceIdentifier; +export interface IDecorationService extends IDisposable { + serviceBrand: undefined; + readonly decorations: IterableIterator; + readonly onDecorationRegistered: IEvent; + readonly onDecorationRemoved: IEvent; + registerDecoration(decorationOptions: IDecorationOptions): IDecoration | undefined; + reset(): void; + forEachDecorationAtCell(x: number, line: number, layer: 'bottom' | 'top' | undefined, callback: (decoration: IInternalDecoration) => void): void; +} +export interface IInternalDecoration extends IDecoration { + readonly options: IDecorationOptions; + readonly backgroundColorRGB: IColor | undefined; + readonly foregroundColorRGB: IColor | undefined; + readonly onRenderEmitter: Emitter; + _indexedStartLine: number; +} +//# sourceMappingURL=Services.d.ts.map \ No newline at end of file diff --git a/src/common/services/Services.d.ts.map b/src/common/services/Services.d.ts.map new file mode 100644 index 000000000..8e29d8d9d --- /dev/null +++ b/src/common/services/Services.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Services.d.ts","sourceRoot":"","sources":["Services.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/common/services/Services.js b/src/common/services/Services.js new file mode 100644 index 000000000..e848f2de1 --- /dev/null +++ b/src/common/services/Services.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IDecorationService = exports.IUnicodeService = exports.IOscLinkService = exports.IOptionsService = exports.ILogService = exports.LogLevelEnum = exports.IInstantiationService = exports.ICharsetService = exports.ICoreService = exports.IMouseStateService = exports.IBufferService = void 0; +const ServiceRegistry_1 = require("common/services/ServiceRegistry"); +exports.IBufferService = (0, ServiceRegistry_1.createDecorator)('BufferService'); +exports.IMouseStateService = (0, ServiceRegistry_1.createDecorator)('MouseStateService'); +exports.ICoreService = (0, ServiceRegistry_1.createDecorator)('CoreService'); +exports.ICharsetService = (0, ServiceRegistry_1.createDecorator)('CharsetService'); +exports.IInstantiationService = (0, ServiceRegistry_1.createDecorator)('InstantiationService'); +var LogLevelEnum; +(function (LogLevelEnum) { + LogLevelEnum[LogLevelEnum["TRACE"] = 0] = "TRACE"; + LogLevelEnum[LogLevelEnum["DEBUG"] = 1] = "DEBUG"; + LogLevelEnum[LogLevelEnum["INFO"] = 2] = "INFO"; + LogLevelEnum[LogLevelEnum["WARN"] = 3] = "WARN"; + LogLevelEnum[LogLevelEnum["ERROR"] = 4] = "ERROR"; + LogLevelEnum[LogLevelEnum["OFF"] = 5] = "OFF"; +})(LogLevelEnum || (exports.LogLevelEnum = LogLevelEnum = {})); +exports.ILogService = (0, ServiceRegistry_1.createDecorator)('LogService'); +exports.IOptionsService = (0, ServiceRegistry_1.createDecorator)('OptionsService'); +exports.IOscLinkService = (0, ServiceRegistry_1.createDecorator)('OscLinkService'); +exports.IUnicodeService = (0, ServiceRegistry_1.createDecorator)('UnicodeService'); +exports.IDecorationService = (0, ServiceRegistry_1.createDecorator)('DecorationService'); +//# sourceMappingURL=Services.js.map \ No newline at end of file diff --git a/src/common/services/Services.js.map b/src/common/services/Services.js.map new file mode 100644 index 000000000..26f14f296 --- /dev/null +++ b/src/common/services/Services.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Services.js","sourceRoot":"","sources":["Services.ts"],"names":[],"mappings":";;;AASA,qEAAkE;AAMrD,QAAA,cAAc,GAAG,IAAA,iCAAe,EAAiB,eAAe,CAAC,CAAC;AAElE,QAAA,kBAAkB,GAAG,IAAA,iCAAe,EAAqB,mBAAmB,CAAC,CAAC;AAuB9E,QAAA,YAAY,GAAG,IAAA,iCAAe,EAAe,aAAa,CAAC,CAAC;AAuC5D,QAAA,eAAe,GAAG,IAAA,iCAAe,EAAkB,gBAAgB,CAAC,CAAC;AAsCrE,QAAA,qBAAqB,GAAG,IAAA,iCAAe,EAAwB,sBAAsB,CAAC,CAAC;AASpG,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,iDAAS,CAAA;IACT,iDAAS,CAAA;IACT,+CAAQ,CAAA;IACR,+CAAQ,CAAA;IACR,iDAAS,CAAA;IACT,6CAAO,CAAA;AACT,CAAC,EAPW,YAAY,aAAZ,YAAY,GAAZ,YAAY,QAOvB;AAEY,QAAA,WAAW,GAAG,IAAA,iCAAe,EAAc,YAAY,CAAC,CAAC;AAazD,QAAA,eAAe,GAAG,IAAA,iCAAe,EAAkB,gBAAgB,CAAC,CAAC;AAgJrE,QAAA,eAAe,GAAG,IAAA,iCAAe,EAAkB,gBAAgB,CAAC,CAAC;AAkBrE,QAAA,eAAe,GAAG,IAAA,iCAAe,EAAkB,gBAAgB,CAAC,CAAC;AAyBrE,QAAA,kBAAkB,GAAG,IAAA,iCAAe,EAAqB,mBAAmB,CAAC,CAAC"} \ No newline at end of file diff --git a/src/common/services/Services.ts b/src/common/services/Services.ts index 64f2529fc..62473566d 100644 --- a/src/common/services/Services.ts +++ b/src/common/services/Services.ts @@ -6,32 +6,14 @@ import type { IDecoration, IDecorationOptions, ILinkHandler, ILogger, IWindowsPty, IOverviewRulerOptions } from '@xterm/xterm'; import { CoreMouseEncoding, CoreMouseEventType, CursorInactiveStyle, CursorStyle, IAttributeData, ICharset, IColor, ICoreMouseEvent, ICoreMouseProtocol, IDecPrivateModes, IDisposable, IKittyKeyboardState, IModes, IOscLinkData, IWindowOptions } from 'common/services/Types'; import { IBuffer, IBufferSet } from 'common/buffer/Types'; +import type { IBufferResizeEvent, IBufferService as IBufferServiceApi } from 'common/buffer/BufferService'; import { createDecorator } from 'common/services/ServiceRegistry'; import type { Emitter, IEvent } from 'common/base/Event'; +import type { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/input/UnicodeTypes'; +export type { IBufferResizeEvent } from 'common/buffer/BufferService'; +export interface IBufferService extends IBufferServiceApi {} export const IBufferService = createDecorator('BufferService'); -export interface IBufferService { - serviceBrand: undefined; - - readonly cols: number; - readonly rows: number; - readonly buffer: IBuffer; - readonly buffers: IBufferSet; - isUserScrolling: boolean; - onResize: IEvent; - onScroll: IEvent; - scroll(eraseAttr: IAttributeData, isWrapped?: boolean): void; - scrollLines(disp: number, suppressScrollEvent?: boolean): void; - resize(cols: number, rows: number): void; - reset(): void; -} - -export interface IBufferResizeEvent { - cols: number; - rows: number; - colsChanged: boolean; - rowsChanged: boolean; -} export const IMouseStateService = createDecorator('MouseStateService'); export interface IMouseStateService { @@ -324,28 +306,7 @@ export interface IOscLinkService { getLinkData(linkId: number): IOscLinkData | undefined; } -/* - * Width and Grapheme_Cluster_Break properties of a character as a bit mask. - * - * bit 0: shouldJoin - should combine with preceding character. - * bit 1..2: wcwidth - see UnicodeCharWidth. - * bit 3..31: class of character (currently only 4 bits are used). - * This is used to determined grapheme clustering - i.e. which codepoints - * are to be combined into a single compound character. - * - * Use the UnicodeService static function createPropertyValue to create a - * UnicodeCharProperties; use extractShouldJoin, extractWidth, and - * extractCharKind to extract the components. - */ -export type UnicodeCharProperties = number; - -/** - * Width in columns of a character. - * In a CJK context, "half-width" characters (such as Latin) are width 1, - * while "full-width" characters (such as Kanji) are 2 columns wide. - * Combining characters (such as accents) are width 0. - */ -export type UnicodeCharWidth = 0 | 1 | 2; +export type { UnicodeCharProperties, UnicodeCharWidth, IUnicodeVersionProvider } from 'common/input/UnicodeTypes'; export const IUnicodeService = createDecorator('UnicodeService'); export interface IUnicodeService { @@ -372,12 +333,6 @@ export interface IUnicodeService { charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties; } -export interface IUnicodeVersionProvider { - readonly version: string; - wcwidth(ucs: number): UnicodeCharWidth; - charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties; -} - export const IDecorationService = createDecorator('DecorationService'); export interface IDecorationService extends IDisposable { serviceBrand: undefined; diff --git a/src/common/services/SortedList.ts b/src/common/services/SortedList.ts index 06185732b..65db9894d 100644 --- a/src/common/services/SortedList.ts +++ b/src/common/services/SortedList.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IdleTaskQueue } from 'common/services/TaskQueue'; +import { IdleTaskQueue } from 'common/base/TaskQueue'; import type { ILogService } from 'common/services/Services'; // Work variables to avoid garbage collection. diff --git a/src/common/services/Types.d.ts b/src/common/services/Types.d.ts new file mode 100644 index 000000000..5d5bead76 --- /dev/null +++ b/src/common/services/Types.d.ts @@ -0,0 +1,254 @@ +import type { IBufferSet } from 'common/buffer/Types'; +import type { IParams } from 'common/parser/Types'; +import type { IMouseStateService, ICoreService, IOptionsService, IUnicodeService } from 'common/services/Services'; +import { IFunctionIdentifier } from '@xterm/xterm'; +import type { IDisposable } from 'common/base/Lifecycle'; +import type { ITerminalOptions } from 'common/base/TerminalOptions'; +import type { IColorRGB } from 'common/buffer/CellTypes'; +import type { IEvent } from 'common/base/Event'; +export type { IDisposable } from 'common/base/Lifecycle'; +export type { ITerminalOptions } from 'common/base/TerminalOptions'; +export type { CharData, IAttributeData, ICellData, IBufferLine, IExtendedAttrs, IMarker } from 'common/buffer/CellTypes'; +export type { ICharset } from 'common/data/Charsets'; +export type { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/input/KeyboardTypes'; +export type { UnicodeCharProperties, UnicodeCharWidth, IUnicodeVersionProvider } from 'common/input/UnicodeTypes'; +export interface ICoreTerminal { + mouseStateService: IMouseStateService; + coreService: ICoreService; + optionsService: IOptionsService; + unicodeService: IUnicodeService; + buffers: IBufferSet; + options: Required; + registerCsiHandler(id: IFunctionIdentifier, callback: (params: IParams) => boolean | Promise): IDisposable; + registerDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: IParams) => boolean | Promise): IDisposable; + registerEscHandler(id: IFunctionIdentifier, callback: () => boolean | Promise): IDisposable; + registerOscHandler(ident: number, callback: (data: string) => boolean | Promise): IDisposable; + registerApcHandler(id: IFunctionIdentifier, callback: (data: string) => boolean | Promise): IDisposable; +} +export type CursorStyle = 'block' | 'underline' | 'bar'; +export type CursorInactiveStyle = 'outline' | 'block' | 'bar' | 'underline' | 'none'; +export type XtermListener = (...args: any[]) => void; +export interface IScrollEvent { + position: number; +} +export interface IColor { + readonly css: string; + readonly rgba: number; +} +export type { IColorRGB } from 'common/buffer/CellTypes'; +export interface IOscLinkData { + id?: string; + uri: string; +} +export interface IModes { + insertMode: boolean; +} +export interface IDecPrivateModes { + applicationCursorKeys: boolean; + applicationKeypad: boolean; + bracketedPasteMode: boolean; + colorSchemeUpdates: boolean; + cursorBlink: boolean | undefined; + cursorStyle: CursorStyle | undefined; + origin: boolean; + reverseWraparound: boolean; + sendFocus: boolean; + synchronizedOutput: boolean; + win32InputMode: boolean; + wraparound: boolean; +} +export interface IKittyKeyboardState { + flags: number; + mainFlags: number; + altFlags: number; + mainStack: number[]; + altStack: number[]; +} +export interface IRowRange { + start: number; + end: number; +} +export declare const enum CoreMouseButton { + LEFT = 0, + MIDDLE = 1, + RIGHT = 2, + NONE = 3, + WHEEL = 4, + AUX1 = 8, + AUX2 = 9, + AUX3 = 10, + AUX4 = 11, + AUX5 = 12, + AUX6 = 13, + AUX7 = 14, + AUX8 = 15 +} +export declare const enum CoreMouseAction { + UP = 0, + DOWN = 1, + LEFT = 2, + RIGHT = 3, + MOVE = 32 +} +export interface ICoreMouseEvent { + col: number; + row: number; + x: number; + y: number; + button: CoreMouseButton; + action: CoreMouseAction; + ctrl?: boolean; + alt?: boolean; + shift?: boolean; +} +export declare const enum CoreMouseEventType { + NONE = 0, + DOWN = 1, + UP = 2, + DRAG = 4, + MOVE = 8, + WHEEL = 16 +} +export interface ICoreMouseProtocol { + events: CoreMouseEventType; + restrict: (e: ICoreMouseEvent) => boolean; +} +export type CoreMouseEncoding = (event: ICoreMouseEvent) => string; +export interface IWindowOptions { + restoreWin?: boolean; + minimizeWin?: boolean; + setWinPosition?: boolean; + setWinSizePixels?: boolean; + raiseWin?: boolean; + lowerWin?: boolean; + refreshWin?: boolean; + setWinSizeChars?: boolean; + maximizeWin?: boolean; + fullscreenWin?: boolean; + getWinState?: boolean; + getWinPosition?: boolean; + getWinSizePixels?: boolean; + getScreenSizePixels?: boolean; + getCellSizePixels?: boolean; + getWinSizeChars?: boolean; + getScreenSizeChars?: boolean; + getIconTitle?: boolean; + getWinTitle?: boolean; + pushTitle?: boolean; + popTitle?: boolean; + setWinLines?: boolean; +} +export declare const enum ColorRequestType { + REPORT = 0, + SET = 1, + RESTORE = 2 +} +type Enumerate = Acc['length'] extends N ? Acc[number] : Enumerate; +type IntRange = Exclude, Enumerate>; +export type ColorIndex = IntRange<0, 256>; +export type AllColorIndex = ColorIndex | SpecialColorIndex; +export declare const enum SpecialColorIndex { + FOREGROUND = 256, + BACKGROUND = 257, + CURSOR = 258 +} +export interface IColorReportRequest { + type: ColorRequestType.REPORT; + index: AllColorIndex; +} +export interface IColorSetRequest { + type: ColorRequestType.SET; + index: AllColorIndex; + color: IColorRGB; +} +export interface IColorRestoreRequest { + type: ColorRequestType.RESTORE; + index?: AllColorIndex; +} +export type IColorEvent = (IColorReportRequest | IColorSetRequest | IColorRestoreRequest)[]; +export interface IInputHandler { + onTitleChange: IEvent; + parse(data: string | Uint8Array, promiseResult?: boolean): void | Promise; + print(data: Uint32Array, start: number, end: number): void; + registerCsiHandler(id: IFunctionIdentifier, callback: (params: IParams) => boolean | Promise): IDisposable; + registerDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: IParams) => boolean | Promise): IDisposable; + registerEscHandler(id: IFunctionIdentifier, callback: () => boolean | Promise): IDisposable; + registerOscHandler(ident: number, callback: (data: string) => boolean | Promise): IDisposable; + registerApcHandler(id: IFunctionIdentifier, callback: (data: string) => boolean | Promise): IDisposable; + bell(): boolean; + lineFeed(): boolean; + carriageReturn(): boolean; + backspace(): boolean; + tab(): boolean; + shiftOut(): boolean; + shiftIn(): boolean; + insertChars(params: IParams): boolean; + scrollLeft(params: IParams): boolean; + cursorUp(params: IParams): boolean; + scrollRight(params: IParams): boolean; + cursorDown(params: IParams): boolean; + cursorForward(params: IParams): boolean; + cursorBackward(params: IParams): boolean; + cursorNextLine(params: IParams): boolean; + cursorPrecedingLine(params: IParams): boolean; + cursorCharAbsolute(params: IParams): boolean; + cursorPosition(params: IParams): boolean; + cursorForwardTab(params: IParams): boolean; + eraseInDisplay(params: IParams): boolean; + eraseInLine(params: IParams): boolean; + insertLines(params: IParams): boolean; + deleteLines(params: IParams): boolean; + deleteChars(params: IParams): boolean; + scrollUp(params: IParams): boolean; + scrollDown(params: IParams, collect?: string): boolean; + eraseChars(params: IParams): boolean; + cursorBackwardTab(params: IParams): boolean; + charPosAbsolute(params: IParams): boolean; + hPositionRelative(params: IParams): boolean; + repeatPrecedingCharacter(params: IParams): boolean; + sendDeviceAttributesPrimary(params: IParams): boolean; + sendDeviceAttributesSecondary(params: IParams): boolean; + linePosAbsolute(params: IParams): boolean; + vPositionRelative(params: IParams): boolean; + hVPosition(params: IParams): boolean; + tabClear(params: IParams): boolean; + setMode(params: IParams, collect?: string): boolean; + resetMode(params: IParams, collect?: string): boolean; + charAttributes(params: IParams): boolean; + deviceStatus(params: IParams, collect?: string): boolean; + softReset(params: IParams, collect?: string): boolean; + setCursorStyle(params: IParams, collect?: string): boolean; + setScrollRegion(params: IParams, collect?: string): boolean; + saveCursor(params: IParams): boolean; + restoreCursor(params: IParams): boolean; + insertColumns(params: IParams): boolean; + deleteColumns(params: IParams): boolean; + setTitle(data: string): boolean; + setOrReportIndexedColor(data: string): boolean; + setOrReportFgColor(data: string): boolean; + setOrReportBgColor(data: string): boolean; + setOrReportCursorColor(data: string): boolean; + restoreIndexedColor(data: string): boolean; + restoreFgColor(data: string): boolean; + restoreBgColor(data: string): boolean; + restoreCursorColor(data: string): boolean; + nextLine(): boolean; + keypadApplicationMode(): boolean; + keypadNumericMode(): boolean; + selectDefaultCharset(): boolean; + selectCharset(collectAndFlag: string): boolean; + index(): boolean; + tabSet(): boolean; + reverseIndex(): boolean; + fullReset(): boolean; + setgLevel(level: number): boolean; + screenAlignmentPattern(): boolean; +} +export interface IParseStack { + paused: boolean; + cursorStartX: number; + cursorStartY: number; + decodedLength: number; + position: number; +} +//# sourceMappingURL=Types.d.ts.map \ No newline at end of file diff --git a/src/common/services/Types.d.ts.map b/src/common/services/Types.d.ts.map new file mode 100644 index 000000000..ed5816e10 --- /dev/null +++ b/src/common/services/Types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["Types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/common/services/Types.js b/src/common/services/Types.js new file mode 100644 index 000000000..7e73fc567 --- /dev/null +++ b/src/common/services/Types.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Types.js.map \ No newline at end of file diff --git a/src/common/services/Types.js.map b/src/common/services/Types.js.map new file mode 100644 index 000000000..7d148f5ff --- /dev/null +++ b/src/common/services/Types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Types.js","sourceRoot":"","sources":["Types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/src/common/services/Types.ts b/src/common/services/Types.ts index 282416b5c..c6794b9b9 100644 --- a/src/common/services/Types.ts +++ b/src/common/services/Types.ts @@ -3,14 +3,21 @@ * @license MIT */ -import type { UnderlineStyle } from 'common/buffer/Constants'; import type { IBufferSet } from 'common/buffer/Types'; import type { IParams } from 'common/parser/Types'; import type { IMouseStateService, ICoreService, IOptionsService, IUnicodeService } from 'common/services/Services'; -import { IFunctionIdentifier, ITerminalOptions as IPublicTerminalOptions } from '@xterm/xterm'; +import { IFunctionIdentifier } from '@xterm/xterm'; +import type { IDisposable } from 'common/base/Lifecycle'; +import type { ITerminalOptions } from 'common/base/TerminalOptions'; +import type { IColorRGB } from 'common/buffer/CellTypes'; import type { IEvent } from 'common/base/Event'; +export type { IDisposable } from 'common/base/Lifecycle'; +export type { ITerminalOptions } from 'common/base/TerminalOptions'; +export type { CharData, IAttributeData, ICellData, IBufferLine, IExtendedAttrs, IMarker } from 'common/buffer/CellTypes'; export type { ICharset } from 'common/data/Charsets'; +export type { IKeyboardEvent, IKeyboardResult, KeyboardResultType } from 'common/input/KeyboardTypes'; +export type { UnicodeCharProperties, UnicodeCharWidth, IUnicodeVersionProvider } from 'common/input/UnicodeTypes'; export interface ICoreTerminal { mouseStateService: IMouseStateService; @@ -26,73 +33,21 @@ export interface ICoreTerminal { registerApcHandler(id: IFunctionIdentifier, callback: (data: string) => boolean | Promise): IDisposable; } -export interface IDisposable { - dispose(): void; -} - -// TODO: The options that are not in the public API should be reviewed -export interface ITerminalOptions extends IPublicTerminalOptions { - [key: string]: any; - convertEol?: boolean; - termName?: string; -} - export type CursorStyle = 'block' | 'underline' | 'bar'; export type CursorInactiveStyle = 'outline' | 'block' | 'bar' | 'underline' | 'none'; export type XtermListener = (...args: any[]) => void; -/** - * A keyboard event interface which does not depend on the DOM, KeyboardEvent implicitly extends - * this event. - */ -export interface IKeyboardEvent { - altKey: boolean; - ctrlKey: boolean; - shiftKey: boolean; - metaKey: boolean; - /** @deprecated See KeyboardEvent.keyCode */ - keyCode: number; - key: string; - type: string; - code: string; -} - export interface IScrollEvent { position: number; } -export const enum KeyboardResultType { - SEND_KEY, - SELECT_ALL, - PAGE_UP, - PAGE_DOWN -} - -export interface IKeyboardResult { - type: KeyboardResultType; - cancel: boolean; - key: string | undefined; -} - -export type CharData = [attr: number, char: string, width: number, code: number]; - export interface IColor { readonly css: string; readonly rgba: number; // 32-bit int with rgba in each byte } -export type IColorRGB = [red: number, green: number, blue: number]; - -export interface IExtendedAttrs { - ext: number; - underlineStyle: UnderlineStyle; - underlineColor: number; - underlineVariantOffset: number; - urlId: number; - clone(): IExtendedAttrs; - isEmpty(): boolean; -} +export type { IColorRGB } from 'common/buffer/CellTypes'; /** * Tracks the current hyperlink. Since these are treated as extended attirbutes, these get passed on @@ -105,136 +60,6 @@ export interface IOscLinkData { uri: string; } -/** - * An object that represents all attributes of a cell. - */ -export interface IAttributeData { - /** - * "fg" is a 32-bit unsigned integer that stores the foreground color of the cell in the 24 least - * significant bits and additional flags in the remaining 8 bits. - */ - fg: number; - /** - * "bg" is a 32-bit unsigned integer that stores the background color of the cell in the 24 least - * significant bits and additional flags in the remaining 8 bits. - */ - bg: number; - /** - * "extended", aka "ext", stores extended attributes beyond those available in fg and bg. This - * data is optional on a cell and encodes less common data. - */ - extended: IExtendedAttrs; - - clone(): IAttributeData; - - // flags - isInverse(): number; - isBold(): number; - isUnderline(): number; - isBlink(): number; - isInvisible(): number; - isItalic(): number; - isDim(): number; - isStrikethrough(): number; - isProtected(): number; - isOverline(): number; - - /** - * The color mode of the foreground color which determines how to decode {@link getFgColor}, - * possible values include {@link Attributes.CM_DEFAULT}, {@link Attributes.CM_P16}, - * {@link Attributes.CM_P256} and {@link Attributes.CM_RGB}. - */ - getFgColorMode(): number; - /** - * The color mode of the background color which determines how to decode {@link getBgColor}, - * possible values include {@link Attributes.CM_DEFAULT}, {@link Attributes.CM_P16}, - * {@link Attributes.CM_P256} and {@link Attributes.CM_RGB}. - */ - getBgColorMode(): number; - isFgRGB(): boolean; - isBgRGB(): boolean; - isFgPalette(): boolean; - isBgPalette(): boolean; - isFgDefault(): boolean; - isBgDefault(): boolean; - isAttributeDefault(): boolean; - - /** - * Gets an integer representation of the foreground color, how to decode the color depends on the - * color mode {@link getFgColorMode}. - */ - getFgColor(): number; - /** - * Gets an integer representation of the background color, how to decode the color depends on the - * color mode {@link getBgColorMode}. - */ - getBgColor(): number; - - // extended attrs - hasExtendedAttrs(): number; - updateExtended(): void; - getUnderlineColor(): number; - getUnderlineColorMode(): number; - isUnderlineColorRGB(): boolean; - isUnderlineColorPalette(): boolean; - isUnderlineColorDefault(): boolean; - getUnderlineStyle(): number; - getUnderlineVariantOffset(): number; -} - -/** Cell data */ -export interface ICellData extends IAttributeData { - content: number; - combinedData: string; - isCombined(): number; - getWidth(): number; - getChars(): string; - getCode(): number; - setFromCharData(value: CharData): void; - getAsCharData(): CharData; -} - -/** - * Interface for a line in the terminal buffer. - */ -export interface IBufferLine { - length: number; - isWrapped: boolean; - get(index: number): CharData; - set(index: number, value: CharData): void; - loadCell(index: number, cell: ICellData): ICellData; - setCell(index: number, cell: ICellData): void; - setCellFromCodepoint(index: number, codePoint: number, width: number, attrs: IAttributeData): void; - addCodepointToCell(index: number, codePoint: number, width: number): void; - insertCells(pos: number, n: number, ch: ICellData): void; - deleteCells(pos: number, n: number, fill: ICellData): void; - replaceCells(start: number, end: number, fill: ICellData, respectProtect?: boolean): void; - resize(cols: number, fill: ICellData): boolean; - cleanupMemory(): number; - fill(fillCellData: ICellData, respectProtect?: boolean): void; - copyFrom(line: IBufferLine): void; - clone(): IBufferLine; - getTrimmedLength(): number; - getNoBgTrimmedLength(): number; - translateToString(trimRight?: boolean, startCol?: number, endCol?: number, outColumns?: number[]): string; - - /* direct access to cell attrs */ - getWidth(index: number): number; - hasWidth(index: number): number; - getFg(index: number): number; - getBg(index: number): number; - hasContent(index: number): number; - getCodePoint(index: number): number; - isCombined(index: number): number; - getString(index: number): string; -} - -export interface IMarker extends IDisposable { - readonly id: number; - readonly isDisposed: boolean; - readonly line: number; - onDispose: IEvent; -} export interface IModes { insertMode: boolean; } diff --git a/src/common/services/UnicodeService.d.ts.map b/src/common/services/UnicodeService.d.ts.map new file mode 100644 index 000000000..26895f785 --- /dev/null +++ b/src/common/services/UnicodeService.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"UnicodeService.d.ts","sourceRoot":"","sources":["UnicodeService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAGvH,qBAAa,cAAe,YAAW,eAAe;IAC7C,YAAY,EAAE,GAAG,CAAC;IAEzB,OAAO,CAAC,UAAU,CAAiE;IACnF,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,eAAe,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,SAAgB,QAAQ,6CAAwB;IAEhD,OAAc,iBAAiB,2BAAqB;IACpD,OAAc,YAAY,sBAAgB;IAC1C,OAAc,eAAe,yBAAmB;IAChD,OAAc,mBAAmB,6BAAuB;IAExD,cAKC;IAEM,OAAO,IAAI,IAAI,CAErB;IAED,IAAW,QAAQ,IAAI,MAAM,EAAE,CAE9B;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,aAAa,CAAC,OAAO,EAAE,MAAM,EAOvC;IAEM,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAEvD;IAKM,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAE5C;IAEM,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAkC3C;IAEM,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,qBAAqB,CAEhG;CACF"} \ No newline at end of file diff --git a/src/common/services/UnicodeService.ts b/src/common/services/UnicodeService.ts index 99b4546a0..6d901686f 100644 --- a/src/common/services/UnicodeService.ts +++ b/src/common/services/UnicodeService.ts @@ -4,7 +4,9 @@ */ import { UnicodeV6 } from 'common/input/UnicodeV6'; -import { IUnicodeService, IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services'; +import { IUnicodeService } from 'common/services/Services'; +import type { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/input/UnicodeTypes'; +import { createPropertyValue, extractCharKind, extractShouldJoin, extractWidth } from 'common/input/UnicodeProperties'; import { Emitter } from 'common/base/Event'; export class UnicodeService implements IUnicodeService { @@ -17,18 +19,10 @@ export class UnicodeService implements IUnicodeService { private readonly _onChange = new Emitter(); public readonly onChange = this._onChange.event; - public static extractShouldJoin(value: UnicodeCharProperties): boolean { - return (value & 1) !== 0; - } - public static extractWidth(value: UnicodeCharProperties): UnicodeCharWidth { - return ((value >> 1) & 0x3) as UnicodeCharWidth; - } - public static extractCharKind(value: UnicodeCharProperties): number { - return value >> 3; - } - public static createPropertyValue(state: number, width: number, shouldJoin: boolean = false): UnicodeCharProperties { - return ((state & 0xffffff) << 3) | ((width & 3) << 1) | (shouldJoin?1:0); - } + public static extractShouldJoin = extractShouldJoin; + public static extractWidth = extractWidth; + public static extractCharKind = extractCharKind; + public static createPropertyValue = createPropertyValue; constructor() { const defaultProvider = new UnicodeV6(); diff --git a/src/common/services/tsconfig.json b/src/common/services/tsconfig.json index 3d38b2d18..5cefbaea7 100644 --- a/src/common/services/tsconfig.json +++ b/src/common/services/tsconfig.json @@ -1,8 +1,37 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/services", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*", + "../../../typings/xterm.d.ts" + ], + "references": [ + { + "path": "../base" + }, + { + "path": "../encoding" + }, + { + "path": "../data" + }, + { + "path": "../buffer" + }, + { + "path": "../parser" + }, + { + "path": "../input" + } + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/terminal/TestUtils.test.d.ts.map b/src/common/terminal/TestUtils.test.d.ts.map new file mode 100644 index 000000000..468f48dd3 --- /dev/null +++ b/src/common/terminal/TestUtils.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"TestUtils.test.d.ts","sourceRoot":"","sources":["TestUtils.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/common/terminal/tsconfig.json b/src/common/terminal/tsconfig.json index 3d38b2d18..0892376b4 100644 --- a/src/common/terminal/tsconfig.json +++ b/src/common/terminal/tsconfig.json @@ -1,8 +1,40 @@ { - "extends": ["../tsconfig.json"], + "extends": [ + "../../tsconfig-library-base", + "../tsconfig.compiler.json" + ], "compilerOptions": { - "noEmit": true, + "outDir": "../../../out/common/terminal", "rootDir": "." }, - "include": ["./**/*"] + "include": [ + "./**/*", + "../../../typings/xterm.d.ts" + ], + "references": [ + { + "path": "../base" + }, + { + "path": "../encoding" + }, + { + "path": "../data" + }, + { + "path": "../buffer" + }, + { + "path": "../parser" + }, + { + "path": "../input" + }, + { + "path": "../services" + } + ], + "exclude": [ + "**/*.test.ts" + ] } diff --git a/src/common/tsconfig.compiler.json b/src/common/tsconfig.compiler.json new file mode 100644 index 000000000..b5b07d372 --- /dev/null +++ b/src/common/tsconfig.compiler.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "lib": [ + "es2015", + "es2016.Array.Include", + "es2019.string", + "es2021.weakref", + "dom" + ], + "types": [ + "../../node_modules/@types/mocha" + ], + "paths": { + "@xterm/xterm": ["../../typings/xterm.d.ts"], + "common/base/*": ["./base/*"], + "common/encoding/*": ["./encoding/*"], + "common/data/*": ["./data/*"], + "common/buffer/*": ["./buffer/*"], + "common/parser/*": ["./parser/*"], + "common/input/*": ["./input/*"], + "common/services/*": ["./services/*"], + "common/terminal/*": ["./terminal/*"], + "common/public/*": ["./public/*"], + "common/*": ["./*"], + "*": ["../*"] + } + } +} diff --git a/src/common/tsconfig.json b/src/common/tsconfig.json index ef66ca3ab..73690d79a 100644 --- a/src/common/tsconfig.json +++ b/src/common/tsconfig.json @@ -1,42 +1,15 @@ { "extends": "../tsconfig-library-base", - "compilerOptions": { - "lib": [ - "es2015", - "es2016.Array.Include", - "es2019.string", - "es2021.weakref", - "dom" - ], - "outDir": "../../out/common", - "rootDir": ".", - "types": [ - "../../node_modules/@types/mocha" - ], - "paths": { - "common/base/*": ["./base/*"], - "common/encoding/*": ["./encoding/*"], - "common/data/*": ["./data/*"], - "common/buffer/*": ["./buffer/*"], - "common/parser/*": ["./parser/*"], - "common/input/*": ["./input/*"], - "common/services/*": ["./services/*"], - "common/terminal/*": ["./terminal/*"], - "common/public/*": ["./public/*"], - "common/*": ["./*"], - "*": ["../*"] - } - }, - "include": [ - "./base/**/*", - "./encoding/**/*", - "./data/**/*", - "./buffer/**/*", - "./parser/**/*", - "./input/**/*", - "./services/**/*", - "./terminal/**/*", - "./public/**/*", - "../../typings/xterm.d.ts" + "files": [], + "references": [ + { "path": "./base" }, + { "path": "./encoding" }, + { "path": "./data" }, + { "path": "./buffer" }, + { "path": "./parser" }, + { "path": "./input" }, + { "path": "./services" }, + { "path": "./terminal" }, + { "path": "./public" } ] }