Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e83102070b | ||
|
|
ba582efbfa | ||
|
|
6d826ac022 | ||
|
|
5070a08b58 | ||
|
|
8f5c963982 | ||
|
|
eacf90b2b7 | ||
|
|
6ff26d2c7e | ||
|
|
3f39edb025 | ||
|
|
5f3882efe7 | ||
|
|
1d125ac715 |
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import type { ITerminalAddon, IDisposable } from '@xterm/xterm';
|
import type { ITerminalAddon, IDisposable } from '@xterm/xterm';
|
||||||
import type { ImageAddon as IImageApi } from '@xterm/addon-image';
|
import type { ImageAddon as IImageApi } from '@xterm/addon-image';
|
||||||
import { Emitter, type IEvent } from 'common/Event';
|
import { Emitter, type IEvent } from 'common/base/Event';
|
||||||
import { IIPHandler } from './IIPHandler';
|
import { IIPHandler } from './IIPHandler';
|
||||||
import { ImageRenderer } from './ImageRenderer';
|
import { ImageRenderer } from './ImageRenderer';
|
||||||
import { ImageStorage, CELL_SIZE_DEFAULT } from './ImageStorage';
|
import { ImageStorage, CELL_SIZE_DEFAULT } from './ImageStorage';
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import { toRGBA8888 } from 'sixel/lib/Colors';
|
import { toRGBA8888 } from 'sixel/lib/Colors';
|
||||||
import { IDisposable } from '@xterm/xterm';
|
import { IDisposable } from '@xterm/xterm';
|
||||||
import { ICellSize, ImageLayer, ITerminalExt, IImageSpec, IRenderDimensions, IRenderService } from './Types';
|
import { ICellSize, ImageLayer, ITerminalExt, IImageSpec, IRenderDimensions, IRenderService } from './Types';
|
||||||
import { Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
const enum Constants {
|
const enum Constants {
|
||||||
PLACEHOLDER_LENGTH = 4096,
|
PLACEHOLDER_LENGTH = 4096,
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ import { IDisposable, IMarker, Terminal } from '@xterm/xterm';
|
|||||||
import { Attributes, BgFlags, Content, ExtFlags, UnderlineStyle } from 'common/buffer/Constants';
|
import { Attributes, BgFlags, Content, ExtFlags, UnderlineStyle } from 'common/buffer/Constants';
|
||||||
import type { AttributeData } from 'common/buffer/AttributeData';
|
import type { AttributeData } from 'common/buffer/AttributeData';
|
||||||
import type { IParams, IDcsHandler, IOscHandler, IApcHandler, IEscapeSequenceParser } from 'common/parser/Types';
|
import type { IParams, IDcsHandler, IOscHandler, IApcHandler, IEscapeSequenceParser } from 'common/parser/Types';
|
||||||
import type { IBufferLine, IExtendedAttrs, IInputHandler } from 'common/Types';
|
import type { IBufferLine, IExtendedAttrs } from 'common/buffer/CellTypes';
|
||||||
|
import type { IInputHandler } from 'common/terminal/InputHandlerTypes';
|
||||||
import type { ITerminal, ReadonlyColorSet } from 'browser/Types';
|
import type { ITerminal, ReadonlyColorSet } from 'browser/Types';
|
||||||
import type { IRenderDimensions } from 'browser/renderer/shared/Types';
|
import type { IRenderDimensions } from 'browser/renderer/shared/Types';
|
||||||
import type { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
import type { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import type { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';
|
import type { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';
|
||||||
import type { ProgressAddon as IProgressApi, IProgressState } from '@xterm/addon-progress';
|
import type { ProgressAddon as IProgressApi, IProgressState } from '@xterm/addon-progress';
|
||||||
import type { Emitter, IEvent } from 'common/Event';
|
import type { Emitter, IEvent } from 'common/base/Event';
|
||||||
|
|
||||||
|
|
||||||
const enum ProgressType {
|
const enum ProgressType {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import type { Terminal, IDisposable, IDecoration } from '@xterm/xterm';
|
import type { Terminal, IDisposable, IDecoration } from '@xterm/xterm';
|
||||||
import type { ISearchDecorationOptions } from '@xterm/addon-search';
|
import type { ISearchDecorationOptions } from '@xterm/addon-search';
|
||||||
import { dispose, Disposable, toDisposable } from 'common/Lifecycle';
|
import { dispose, Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import type { ISearchResult } from './SearchEngine';
|
import type { ISearchResult } from './SearchEngine';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
import type { Terminal, IDisposable, ITerminalAddon } from '@xterm/xterm';
|
import type { Terminal, IDisposable, ITerminalAddon } from '@xterm/xterm';
|
||||||
import type { SearchAddon as ISearchApi, ISearchOptions, ISearchAddonOptions, ISearchResultChangeEvent, ISearchDecorationOptions } from '@xterm/addon-search';
|
import type { SearchAddon as ISearchApi, ISearchOptions, ISearchAddonOptions, ISearchResultChangeEvent, ISearchDecorationOptions } from '@xterm/addon-search';
|
||||||
import { Emitter, type IEvent } from 'common/Event';
|
import { Emitter, type IEvent } from 'common/base/Event';
|
||||||
import { Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { disposableTimeout } from 'common/Async';
|
import { disposableTimeout } from 'common/base/Async';
|
||||||
import { SearchLineCache } from './SearchLineCache';
|
import { SearchLineCache } from './SearchLineCache';
|
||||||
import { SearchState } from './SearchState';
|
import { SearchState } from './SearchState';
|
||||||
import { SearchEngine, type ISearchResult } from './SearchEngine';
|
import { SearchEngine, type ISearchResult } from './SearchEngine';
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { SearchEngine } from './SearchEngine';
|
|||||||
import { SearchLineCache } from './SearchLineCache';
|
import { SearchLineCache } from './SearchLineCache';
|
||||||
import { Terminal } from 'browser/public/Terminal';
|
import { Terminal } from 'browser/public/Terminal';
|
||||||
import type { ISearchOptions } from '@xterm/addon-search';
|
import type { ISearchOptions } from '@xterm/addon-search';
|
||||||
import { DisposableStore } from 'common/Lifecycle';
|
import { DisposableStore } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
function writeP(terminal: Terminal, data: string): Promise<void> {
|
function writeP(terminal: Terminal, data: string): Promise<void> {
|
||||||
return new Promise(r => terminal.write(data, r));
|
return new Promise(r => terminal.write(data, r));
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { SearchLineCache, LineCacheEntry } from './SearchLineCache';
|
import { SearchLineCache, LineCacheEntry } from './SearchLineCache';
|
||||||
import { Terminal } from 'browser/public/Terminal';
|
import { Terminal } from 'browser/public/Terminal';
|
||||||
import { timeout } from 'common/Async';
|
import { timeout } from 'common/base/Async';
|
||||||
|
|
||||||
function writeP(terminal: Terminal, data: string): Promise<void> {
|
function writeP(terminal: Terminal, data: string): Promise<void> {
|
||||||
return new Promise(r => terminal.write(data, r));
|
return new Promise(r => terminal.write(data, r));
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import type { Terminal } from '@xterm/xterm';
|
import type { Terminal } from '@xterm/xterm';
|
||||||
import { combinedDisposable, Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { combinedDisposable, Disposable, MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { disposableTimeout } from 'common/Async';
|
import { disposableTimeout } from 'common/base/Async';
|
||||||
|
|
||||||
export type LineCacheEntry = [
|
export type LineCacheEntry = [
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
import type { ISearchResultChangeEvent } from '@xterm/addon-search';
|
import type { ISearchResultChangeEvent } from '@xterm/addon-search';
|
||||||
import type { IDisposable } from '@xterm/xterm';
|
import type { IDisposable } from '@xterm/xterm';
|
||||||
import { Emitter, type IEvent } from 'common/Event';
|
import { Emitter, type IEvent } from 'common/base/Event';
|
||||||
import { Disposable } from 'common/Lifecycle';
|
import { Disposable } from 'common/base/Lifecycle';
|
||||||
import type { ISearchResult } from './SearchEngine';
|
import type { ISearchResult } from './SearchEngine';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark';
|
import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark';
|
||||||
|
|
||||||
import { spawn } from 'node-pty';
|
import { spawn } from 'node-pty';
|
||||||
import { Utf8ToUtf32, stringFromCodePoint } from 'common/input/TextDecoder';
|
import { Utf8ToUtf32, stringFromCodePoint } from 'common/base/TextDecoder';
|
||||||
import { Terminal } from 'browser/public/Terminal';
|
import { Terminal } from 'browser/public/Terminal';
|
||||||
import { SerializeAddon } from 'SerializeAddon';
|
import { SerializeAddon } from 'SerializeAddon';
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
|
|
||||||
import type { IBuffer, IBufferCell, IBufferRange, ITerminalAddon, Terminal } from '@xterm/xterm';
|
import type { IBuffer, IBufferCell, IBufferRange, ITerminalAddon, Terminal } from '@xterm/xterm';
|
||||||
import type { IHTMLSerializeOptions, SerializeAddon as ISerializeApi, ISerializeOptions, ISerializeRange } from '@xterm/addon-serialize';
|
import type { IHTMLSerializeOptions, SerializeAddon as ISerializeApi, ISerializeOptions, ISerializeRange } from '@xterm/addon-serialize';
|
||||||
import { IAttributeData, IColor } from 'common/Types';
|
import type { IAttributeData } from 'common/buffer/CellTypes';
|
||||||
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
import { DEFAULT_ANSI_COLORS } from 'browser/Types';
|
import { DEFAULT_ANSI_COLORS } from 'browser/Types';
|
||||||
import { UnderlineStyle } from 'common/buffer/Constants';
|
import { UnderlineStyle } from 'common/buffer/Constants';
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark';
|
import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark';
|
||||||
|
|
||||||
import { spawn } from 'node-pty';
|
import { spawn } from 'node-pty';
|
||||||
import { Utf8ToUtf32, stringFromCodePoint } from 'common/input/TextDecoder';
|
import { Utf8ToUtf32, stringFromCodePoint } from 'common/base/TextDecoder';
|
||||||
import { CoreBrowserTerminal } from 'browser/CoreBrowserTerminal';
|
import { CoreBrowserTerminal } from 'browser/CoreBrowserTerminal';
|
||||||
import { UnicodeGraphemeProvider } from 'UnicodeGraphemeProvider';
|
import { UnicodeGraphemeProvider } from 'UnicodeGraphemeProvider';
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ import { ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
|||||||
import { ReadonlyColorSet } from 'browser/Types';
|
import { ReadonlyColorSet } from 'browser/Types';
|
||||||
import { Attributes, BgFlags, ExtFlags, FgFlags, NULL_CELL_CODE, UnderlineStyle } from 'common/buffer/Constants';
|
import { Attributes, BgFlags, ExtFlags, FgFlags, NULL_CELL_CODE, UnderlineStyle } from 'common/buffer/Constants';
|
||||||
import { IDecorationService, IOptionsService } from 'common/services/Services';
|
import { IDecorationService, IOptionsService } from 'common/services/Services';
|
||||||
import { ICellData } from 'common/Types';
|
import type { ICellData } from 'common/buffer/CellTypes';
|
||||||
import { Terminal } from '@xterm/xterm';
|
import { Terminal } from '@xterm/xterm';
|
||||||
import { rgba } from 'common/Color';
|
import { rgba } from 'common/base/Color';
|
||||||
import { treatGlyphAsBackgroundColor } from 'browser/renderer/shared/RendererUtils';
|
import { treatGlyphAsBackgroundColor } from 'browser/renderer/shared/RendererUtils';
|
||||||
import { blockPatternCodepoints } from './customGlyphs/CustomGlyphDefinitions';
|
import { blockPatternCodepoints } from './customGlyphs/CustomGlyphDefinitions';
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { configEquals } from './CharAtlasUtils';
|
import { configEquals } from './CharAtlasUtils';
|
||||||
import { ICharAtlasConfig } from './Types';
|
import { ICharAtlasConfig } from './Types';
|
||||||
import { NULL_COLOR } from 'common/Color';
|
import { NULL_COLOR } from 'common/base/Color';
|
||||||
import { IColor } from 'common/Types';
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
|
|
||||||
function createTestConfig(overrides: Partial<ICharAtlasConfig> = {}): ICharAtlasConfig {
|
function createTestConfig(overrides: Partial<ICharAtlasConfig> = {}): ICharAtlasConfig {
|
||||||
const color: IColor = { css: '#ffffff', rgba: 0xffffffff };
|
const color: IColor = { css: '#ffffff', rgba: 0xffffffff };
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { ICharAtlasConfig } from './Types';
|
|||||||
import { Attributes } from 'common/buffer/Constants';
|
import { Attributes } from 'common/buffer/Constants';
|
||||||
import { ITerminalOptions } from '@xterm/xterm';
|
import { ITerminalOptions } from '@xterm/xterm';
|
||||||
import { IColorSet, ReadonlyColorSet } from 'browser/Types';
|
import { IColorSet, ReadonlyColorSet } from 'browser/Types';
|
||||||
import { NULL_COLOR } from 'common/Color';
|
import { NULL_COLOR } from 'common/base/Color';
|
||||||
|
|
||||||
export function generateConfig(deviceCellWidth: number, deviceCellHeight: number, deviceCharWidth: number, deviceCharHeight: number, options: Required<ITerminalOptions>, colors: ReadonlyColorSet, devicePixelRatio: number, deviceMaxTextureSize: number, customGlyphs: boolean = true): ICharAtlasConfig {
|
export function generateConfig(deviceCellWidth: number, deviceCellHeight: number, deviceCharWidth: number, deviceCharHeight: number, options: Required<ITerminalOptions>, colors: ReadonlyColorSet, devicePixelRatio: number, deviceMaxTextureSize: number, customGlyphs: boolean = true): ICharAtlasConfig {
|
||||||
// null out some fields that don't matter
|
// null out some fields that don't matter
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { isFirefox, isLegacyEdge } from 'common/Platform';
|
import { isFirefox, isLegacyEdge } from 'common/base/Platform';
|
||||||
|
|
||||||
export const DIM_OPACITY = 0.5;
|
export const DIM_OPACITY = 0.5;
|
||||||
// The text baseline is set conditionally by browser. Using 'ideographic' for Firefox or Legacy Edge
|
// The text baseline is set conditionally by browser. Using 'ideographic' for Firefox or Legacy Edge
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { toDisposable, IDisposable } from 'common/Lifecycle';
|
import { toDisposable, IDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export function observeDevicePixelDimensions(element: HTMLElement, parentWindow: Window & typeof globalThis, callback: (deviceWidth: number, deviceHeight: number) => void): IDisposable {
|
export function observeDevicePixelDimensions(element: HTMLElement, parentWindow: Window & typeof globalThis, callback: (deviceWidth: number, deviceHeight: number) => void): IDisposable {
|
||||||
// Observe any resizes to the element and extract the actual pixel size of the element if the
|
// Observe any resizes to the element and extract the actual pixel size of the element if the
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import { TextureAtlas } from './TextureAtlas';
|
import { TextureAtlas } from './TextureAtlas';
|
||||||
import { IRenderDimensions } from 'browser/renderer/shared/Types';
|
import { IRenderDimensions } from 'browser/renderer/shared/Types';
|
||||||
import { NULL_CELL_CODE } from 'common/buffer/Constants';
|
import { NULL_CELL_CODE } from 'common/buffer/Constants';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { Terminal } from '@xterm/xterm';
|
import { Terminal } from '@xterm/xterm';
|
||||||
import { IRenderModel, IWebGL2RenderingContext, IWebGLVertexArrayObject, type IRasterizedGlyph, type ITextureAtlas } from './Types';
|
import { IRenderModel, IWebGL2RenderingContext, IWebGLVertexArrayObject, type IRasterizedGlyph, type ITextureAtlas } from './Types';
|
||||||
import { createProgram, GLTexture, PROJECTION_MATRIX } from './WebglUtils';
|
import { createProgram, GLTexture, PROJECTION_MATRIX } from './WebglUtils';
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import { IRenderDimensions } from 'browser/renderer/shared/Types';
|
|||||||
import { IThemeService } from 'browser/services/Services';
|
import { IThemeService } from 'browser/services/Services';
|
||||||
import { ReadonlyColorSet } from 'browser/Types';
|
import { ReadonlyColorSet } from 'browser/Types';
|
||||||
import { Attributes, FgFlags } from 'common/buffer/Constants';
|
import { Attributes, FgFlags } from 'common/buffer/Constants';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { IColor } from 'common/Types';
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
import { Terminal } from '@xterm/xterm';
|
import { Terminal } from '@xterm/xterm';
|
||||||
import { RenderModelConstants } from './RenderModel';
|
import { RenderModelConstants } from './RenderModel';
|
||||||
import { IRenderModel, IWebGL2RenderingContext, IWebGLVertexArrayObject } from './Types';
|
import { IRenderModel, IWebGL2RenderingContext, IWebGLVertexArrayObject } from './Types';
|
||||||
|
|||||||
@@ -8,14 +8,14 @@ import { DIM_OPACITY, TEXT_BASELINE } from './Constants';
|
|||||||
import { tryDrawCustomGlyph } from './customGlyphs/CustomGlyphRasterizer';
|
import { tryDrawCustomGlyph } from './customGlyphs/CustomGlyphRasterizer';
|
||||||
import { computeNextVariantOffset, treatGlyphAsBackgroundColor, isPowerlineGlyph, isRestrictedPowerlineGlyph, throwIfFalsy } from 'browser/renderer/shared/RendererUtils';
|
import { computeNextVariantOffset, treatGlyphAsBackgroundColor, isPowerlineGlyph, isRestrictedPowerlineGlyph, throwIfFalsy } from 'browser/renderer/shared/RendererUtils';
|
||||||
import { IBoundingBox, ICharAtlasConfig, IRasterizedGlyph, ITextureAtlas } from './Types';
|
import { IBoundingBox, ICharAtlasConfig, IRasterizedGlyph, ITextureAtlas } from './Types';
|
||||||
import { NULL_COLOR, channels, color, rgba } from 'common/Color';
|
import { NULL_COLOR, channels, color, rgba } from 'common/base/Color';
|
||||||
import { FourKeyMap } from 'common/MultiKeyMap';
|
import { FourKeyMap } from 'common/base/MultiKeyMap';
|
||||||
import { IdleTaskQueue } from 'common/TaskQueue';
|
import { IdleTaskQueue } from 'common/base/TaskQueue';
|
||||||
import { IColor } from 'common/Types';
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
import { AttributeData } from 'common/buffer/AttributeData';
|
import { AttributeData } from 'common/buffer/AttributeData';
|
||||||
import { Attributes, DEFAULT_COLOR, DEFAULT_EXT, UnderlineStyle } from 'common/buffer/Constants';
|
import { Attributes, DEFAULT_COLOR, DEFAULT_EXT, UnderlineStyle } from 'common/buffer/Constants';
|
||||||
import { ILogService, IUnicodeService } from 'common/services/Services';
|
import { ILogService, IUnicodeService } from 'common/services/Services';
|
||||||
import { Emitter } from 'common/Event';
|
import { Emitter } from 'common/base/Event';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A shared object which is used to draw nothing for a particular cell.
|
* A shared object which is used to draw nothing for a particular cell.
|
||||||
|
|||||||
@@ -6,8 +6,9 @@
|
|||||||
import { FontWeight } from '@xterm/xterm';
|
import { FontWeight } from '@xterm/xterm';
|
||||||
import { IColorSet } from 'browser/Types';
|
import { IColorSet } from 'browser/Types';
|
||||||
import { ISelectionRenderModel } from 'browser/renderer/shared/Types';
|
import { ISelectionRenderModel } from 'browser/renderer/shared/Types';
|
||||||
import { CursorInactiveStyle, CursorStyle, type IDisposable } from 'common/Types';
|
import type { IDisposable } from 'common/base/Lifecycle';
|
||||||
import type { IEvent } from 'common/Event';
|
import { CursorInactiveStyle, CursorStyle } from 'common/services/Types';
|
||||||
|
import type { IEvent } from 'common/base/Event';
|
||||||
|
|
||||||
export interface IRenderModel {
|
export interface IRenderModel {
|
||||||
cells: Uint32Array;
|
cells: Uint32Array;
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ import type { ITerminalAddon, Terminal } from '@xterm/xterm';
|
|||||||
import type { IWebglAddonOptions, WebglAddon as IWebglApi } from '@xterm/addon-webgl';
|
import type { IWebglAddonOptions, WebglAddon as IWebglApi } from '@xterm/addon-webgl';
|
||||||
import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
||||||
import { ITerminal } from 'browser/Types';
|
import { ITerminal } from 'browser/Types';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { getSafariVersion, isSafari } from 'common/Platform';
|
import { getSafariVersion, isSafari } from 'common/base/Platform';
|
||||||
import { ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services';
|
import { ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services';
|
||||||
import { IWebGL2RenderingContext } from './Types';
|
import { IWebGL2RenderingContext } from './Types';
|
||||||
import { WebglRenderer } from './WebglRenderer';
|
import { WebglRenderer } from './WebglRenderer';
|
||||||
import { Emitter, EventUtils } from 'common/Event';
|
import { Emitter, EventUtils } from 'common/base/Event';
|
||||||
|
|
||||||
export class WebglAddon extends Disposable implements ITerminalAddon, IWebglApi {
|
export class WebglAddon extends Disposable implements ITerminalAddon, IWebglApi {
|
||||||
private _terminal?: Terminal;
|
private _terminal?: Terminal;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { CursorBlinkStateManager } from './CursorBlinkStateManager';
|
|||||||
import { observeDevicePixelDimensions } from './DevicePixelObserver';
|
import { observeDevicePixelDimensions } from './DevicePixelObserver';
|
||||||
import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from 'browser/renderer/shared/Types';
|
import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from 'browser/renderer/shared/Types';
|
||||||
import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
||||||
import { CharData, IBufferLine, ICellData } from 'common/Types';
|
import type { CharData, IBufferLine, ICellData } from 'common/buffer/CellTypes';
|
||||||
import { AttributeData } from 'common/buffer/AttributeData';
|
import { AttributeData } from 'common/buffer/AttributeData';
|
||||||
import { CellData } from 'common/buffer/CellData';
|
import { CellData } from 'common/buffer/CellData';
|
||||||
import { Attributes, Content, FgFlags, NULL_CELL_CHAR, NULL_CELL_CODE } from 'common/buffer/Constants';
|
import { Attributes, Content, FgFlags, NULL_CELL_CHAR, NULL_CELL_CODE } from 'common/buffer/Constants';
|
||||||
@@ -23,9 +23,9 @@ import { COMBINED_CHAR_BIT_MASK, RenderModel, RenderModelConstants } from './Ren
|
|||||||
import { IWebGL2RenderingContext, type ITextureAtlas } from './Types';
|
import { IWebGL2RenderingContext, type ITextureAtlas } from './Types';
|
||||||
import { LinkRenderLayer } from './renderLayer/LinkRenderLayer';
|
import { LinkRenderLayer } from './renderLayer/LinkRenderLayer';
|
||||||
import { IRenderLayer } from './renderLayer/Types';
|
import { IRenderLayer } from './renderLayer/Types';
|
||||||
import { Emitter, EventUtils } from 'common/Event';
|
import { Emitter, EventUtils } from 'common/base/Event';
|
||||||
import { addDisposableListener } from 'browser/Dom';
|
import { addDisposableListener } from 'browser/Dom';
|
||||||
import { combinedDisposable, Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { combinedDisposable, Disposable, MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils';
|
import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils';
|
||||||
|
|
||||||
const enum Constants {
|
const enum Constants {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { ReadonlyColorSet } from 'browser/Types';
|
|||||||
import { acquireTextureAtlas } from '../CharAtlasCache';
|
import { acquireTextureAtlas } from '../CharAtlasCache';
|
||||||
import { IRenderDimensions } from 'browser/renderer/shared/Types';
|
import { IRenderDimensions } from 'browser/renderer/shared/Types';
|
||||||
import { ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
import { ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { CellData } from 'common/buffer/CellData';
|
import { CellData } from 'common/buffer/CellData';
|
||||||
import { IOptionsService } from 'common/services/Services';
|
import { IOptionsService } from 'common/services/Services';
|
||||||
import { Terminal } from '@xterm/xterm';
|
import { Terminal } from '@xterm/xterm';
|
||||||
|
|||||||
+1
-1
@@ -81,7 +81,7 @@ function checkAndPublishPackage(packageDir, repoCommit, peerDependencies, update
|
|||||||
|
|
||||||
// Update Version.ts with the new version
|
// Update Version.ts with the new version
|
||||||
if (updateVersionTs) {
|
if (updateVersionTs) {
|
||||||
const versionTsPath = path.join(packageDir, 'src/common/Version.ts');
|
const versionTsPath = path.join(packageDir, 'src/common/base/Version.ts');
|
||||||
const versionTsContent = fs.readFileSync(versionTsPath, 'utf8');
|
const versionTsContent = fs.readFileSync(versionTsPath, 'utf8');
|
||||||
const updatedVersionTs = versionTsContent.replace(
|
const updatedVersionTs = versionTsContent.replace(
|
||||||
/export const XTERM_VERSION = '[^']+';/,
|
/export const XTERM_VERSION = '[^']+';/,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import * as Strings from 'browser/LocalizableStrings';
|
import * as Strings from 'browser/LocalizableStrings';
|
||||||
import { ITerminal, IRenderDebouncer } from 'browser/Types';
|
import { ITerminal, IRenderDebouncer } from 'browser/Types';
|
||||||
import { TimeBasedDebouncer } from 'browser/TimeBasedDebouncer';
|
import { TimeBasedDebouncer } from 'browser/TimeBasedDebouncer';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { ICoreBrowserService, IRenderService } from 'browser/services/Services';
|
import { ICoreBrowserService, IRenderService } from 'browser/services/Services';
|
||||||
import { IBuffer } from 'common/buffer/Types';
|
import { IBuffer } from 'common/buffer/Types';
|
||||||
import { IInstantiationService } from 'common/services/Services';
|
import { IInstantiationService } from 'common/services/Services';
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { IColorContrastCache } from 'browser/Types';
|
import { IColorContrastCache } from 'browser/Types';
|
||||||
import { IColor } from 'common/Types';
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
import { TwoKeyMap } from 'common/MultiKeyMap';
|
import { TwoKeyMap } from 'common/base/MultiKeyMap';
|
||||||
|
|
||||||
export class ColorContrastCache implements IColorContrastCache {
|
export class ColorContrastCache implements IColorContrastCache {
|
||||||
private _color: TwoKeyMap</* bg */number, /* fg */number, IColor | null> = new TwoKeyMap();
|
private _color: TwoKeyMap</* bg */number, /* fg */number, IColor | null> = new TwoKeyMap();
|
||||||
|
|||||||
@@ -43,22 +43,24 @@ import { SelectionService } from 'browser/services/SelectionService';
|
|||||||
import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IKeyboardService, ILinkProviderService, IMouseCoordsService, IMouseService, IRenderService, ISelectionService, IThemeService } from 'browser/services/Services';
|
import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IKeyboardService, ILinkProviderService, IMouseCoordsService, IMouseService, IRenderService, ISelectionService, IThemeService } from 'browser/services/Services';
|
||||||
import { ThemeService } from 'browser/services/ThemeService';
|
import { ThemeService } from 'browser/services/ThemeService';
|
||||||
import { KeyboardService } from 'browser/services/KeyboardService';
|
import { KeyboardService } from 'browser/services/KeyboardService';
|
||||||
import { channels, color, rgb } from 'common/Color';
|
import { channels, color, rgb } from 'common/base/Color';
|
||||||
import { CoreTerminal } from 'common/CoreTerminal';
|
import { CoreTerminal } from 'common/terminal/CoreTerminal';
|
||||||
import * as Browser from 'common/Platform';
|
import * as Browser from 'common/base/Platform';
|
||||||
import { ColorRequestType, IColorEvent, ITerminalOptions, KeyboardResultType, SpecialColorIndex } from 'common/Types';
|
import type { ITerminalOptions } from 'common/services/Services';
|
||||||
|
import { ColorRequestType, IColorEvent, SpecialColorIndex } from 'common/terminal/InputHandlerTypes';
|
||||||
|
import { KeyboardResultType } from 'common/input/KeyboardTypes';
|
||||||
import { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';
|
import { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';
|
||||||
import { IBuffer } from 'common/buffer/Types';
|
import { IBuffer } from 'common/buffer/Types';
|
||||||
import { C0, C1ESCAPED } from 'common/data/EscapeSequences';
|
import { C0, C1ESCAPED } from 'common/base/EscapeSequences';
|
||||||
import { toRgbString } from 'common/input/XParseColor';
|
import { toRgbString } from 'common/input/XParseColor';
|
||||||
import { DecorationService } from 'common/services/DecorationService';
|
import { DecorationService } from 'common/services/DecorationService';
|
||||||
import { IDecorationService } from 'common/services/Services';
|
import { IDecorationService } from 'common/services/Services';
|
||||||
import { WindowsOptionsReportType } from '../common/InputHandler';
|
import { WindowsOptionsReportType } from '../common/terminal/InputHandler';
|
||||||
import { AccessibilityManager } from './AccessibilityManager';
|
import { AccessibilityManager } from './AccessibilityManager';
|
||||||
import { Linkifier } from './Linkifier';
|
import { Linkifier } from './Linkifier';
|
||||||
import { Emitter, EventUtils, type IEvent } from 'common/Event';
|
import { Emitter, EventUtils, type IEvent } from 'common/base/Event';
|
||||||
import { addDisposableListener } from 'browser/Dom';
|
import { addDisposableListener } from 'browser/Dom';
|
||||||
import { MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export class CoreBrowserTerminal extends CoreTerminal implements ITerminal {
|
export class CoreBrowserTerminal extends CoreTerminal implements ITerminal {
|
||||||
public textarea: HTMLTextAreaElement | undefined;
|
public textarea: HTMLTextAreaElement | undefined;
|
||||||
|
|||||||
+2
-2
@@ -5,8 +5,8 @@
|
|||||||
* Minimal DOM helpers for xterm.js browser code.
|
* Minimal DOM helpers for xterm.js browser code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { IntervalTimer } from 'common/Async';
|
import { IntervalTimer } from 'common/base/Async';
|
||||||
import { IDisposable } from 'common/Lifecycle';
|
import { IDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export function getWindow(e: Node | UIEvent | undefined | null): Window {
|
export function getWindow(e: Node | UIEvent | undefined | null): Window {
|
||||||
const candidateNode = e as Node | undefined | null;
|
const candidateNode = e as Node | undefined | null;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { IBufferService } from 'common/services/Services';
|
import { IBufferService } from 'common/services/Services';
|
||||||
import { Linkifier } from './Linkifier';
|
import { Linkifier } from './Linkifier';
|
||||||
import { MockBufferService } from 'common/TestUtils.test';
|
import { MockBufferService } from 'common/terminal/TestUtils.test';
|
||||||
import { ILink } from 'browser/Types';
|
import { ILink } from 'browser/Types';
|
||||||
import { LinkProviderService } from 'browser/services/LinkProviderService';
|
import { LinkProviderService } from 'browser/services/LinkProviderService';
|
||||||
import jsdom = require('jsdom');
|
import jsdom = require('jsdom');
|
||||||
|
|||||||
@@ -4,11 +4,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { IBufferCellPosition, ILink, ILinkDecorations, ILinkWithState, ILinkifier2, ILinkifierEvent } from 'browser/Types';
|
import { IBufferCellPosition, ILink, ILinkDecorations, ILinkWithState, ILinkifier2, ILinkifierEvent } from 'browser/Types';
|
||||||
import { Disposable, dispose, toDisposable } from 'common/Lifecycle';
|
import { Disposable, dispose, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { IDisposable } from 'common/Types';
|
import type { IDisposable } from 'common/base/Lifecycle';
|
||||||
import { IBufferService } from 'common/services/Services';
|
import { IBufferService } from 'common/services/Services';
|
||||||
import { ILinkProviderService, IMouseCoordsService, IRenderService } from './services/Services';
|
import { ILinkProviderService, IMouseCoordsService, IRenderService } from './services/Services';
|
||||||
import { Emitter } from 'common/Event';
|
import { Emitter } from 'common/base/Event';
|
||||||
import { addDisposableListener } from 'browser/Dom';
|
import { addDisposableListener } from 'browser/Dom';
|
||||||
|
|
||||||
export class Linkifier extends Disposable implements ILinkifier2 {
|
export class Linkifier extends Disposable implements ILinkifier2 {
|
||||||
|
|||||||
@@ -6,9 +6,10 @@
|
|||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { OscLinkProvider } from 'browser/OscLinkProvider';
|
import { OscLinkProvider } from 'browser/OscLinkProvider';
|
||||||
import { ILink } from 'browser/Types';
|
import { ILink } from 'browser/Types';
|
||||||
import { createCellData, MockBufferService, MockOptionsService } from 'common/TestUtils.test';
|
import { createCellData, MockBufferService, MockOptionsService } from 'common/terminal/TestUtils.test';
|
||||||
import { IBufferService, IOscLinkService } from 'common/services/Services';
|
import { IBufferService, IOscLinkService } from 'common/services/Services';
|
||||||
import { IBufferLine, IOscLinkData } from 'common/Types';
|
import type { IBufferLine } from 'common/buffer/CellTypes';
|
||||||
|
import { IOscLinkData } from 'common/services/Types';
|
||||||
|
|
||||||
class TestOscLinkService implements IOscLinkService {
|
class TestOscLinkService implements IOscLinkService {
|
||||||
public serviceBrand: any;
|
public serviceBrand: any;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import { IBufferRange, ILink } from 'browser/Types';
|
import { IBufferRange, ILink } from 'browser/Types';
|
||||||
import { ILinkProvider } from 'browser/services/Services';
|
import { ILinkProvider } from 'browser/services/Services';
|
||||||
import { CellData } from 'common/buffer/CellData';
|
import { CellData } from 'common/buffer/CellData';
|
||||||
import { IBufferLine } from 'common/Types';
|
import type { IBufferLine } from 'common/buffer/CellTypes';
|
||||||
import { IBufferService, IOptionsService, IOscLinkService } from 'common/services/Services';
|
import { IBufferService, IOptionsService, IOscLinkService } from 'common/services/Services';
|
||||||
|
|
||||||
export class OscLinkProvider implements ILinkProvider {
|
export class OscLinkProvider implements ILinkProvider {
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import type { IBrowser } from 'browser/Types';
|
|||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';
|
import { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';
|
||||||
import { CellData } from 'common/buffer/CellData';
|
import { CellData } from 'common/buffer/CellData';
|
||||||
import { MockUnicodeService, createCellData } from 'common/TestUtils.test';
|
import { MockUnicodeService, createCellData } from 'common/terminal/TestUtils.test';
|
||||||
import { IMarker } from 'common/Types';
|
import type { IMarker } from 'common/buffer/CellTypes';
|
||||||
|
|
||||||
const INIT_COLS = 80;
|
const INIT_COLS = 80;
|
||||||
const INIT_ROWS = 24;
|
const INIT_ROWS = 24;
|
||||||
@@ -1146,7 +1146,7 @@ describe('Terminal', () => {
|
|||||||
assert.equal(termConverting.buffer.lines.get(1)!.translateToString(true), 'World');
|
assert.equal(termConverting.buffer.lines.get(1)!.translateToString(true), 'World');
|
||||||
});
|
});
|
||||||
|
|
||||||
// FIXME: move to common/CoreTerminal.test once the trimming is moved over
|
// FIXME: move to common/terminal/CoreTerminal.test once the trimming is moved over
|
||||||
describe('marker lifecycle', () => {
|
describe('marker lifecycle', () => {
|
||||||
// create a 10x5 terminal with markers on every line
|
// create a 10x5 terminal with markers on every line
|
||||||
// to test marker lifecycle under various terminal actions
|
// to test marker lifecycle under various terminal actions
|
||||||
|
|||||||
@@ -8,17 +8,22 @@ import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IMouseS
|
|||||||
import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from 'browser/renderer/shared/Types';
|
import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from 'browser/renderer/shared/Types';
|
||||||
import { IColorSet, ITerminal, ILinkifier2, IBrowser, IViewport, ICompositionHelper, CharacterJoinerHandler, IBufferRange, ReadonlyColorSet, IBufferElementProvider } from 'browser/Types';
|
import { IColorSet, ITerminal, ILinkifier2, IBrowser, IViewport, ICompositionHelper, CharacterJoinerHandler, IBufferRange, ReadonlyColorSet, IBufferElementProvider } from 'browser/Types';
|
||||||
import { IBuffer, IBufferSet } from 'common/buffer/Types';
|
import { IBuffer, IBufferSet } from 'common/buffer/Types';
|
||||||
import { IBufferLine, ICellData, IAttributeData, ICircularList, XtermListener, ICharset, ITerminalOptions, ColorIndex } from 'common/Types';
|
import type { ICircularList } from 'common/base/CircularList';
|
||||||
|
import type { IBufferLine, ICellData, IAttributeData } from 'common/buffer/CellTypes';
|
||||||
|
import type { ICharset } from 'common/base/Charsets';
|
||||||
|
import type { ITerminalOptions } from 'common/services/Services';
|
||||||
|
import type { XtermListener } from 'common/terminal/CoreTerminalTypes';
|
||||||
|
import { ColorIndex } from 'common/terminal/InputHandlerTypes';
|
||||||
import { Buffer } from 'common/buffer/Buffer';
|
import { Buffer } from 'common/buffer/Buffer';
|
||||||
import * as Browser from 'common/Platform';
|
import * as Browser from 'common/base/Platform';
|
||||||
import { CoreBrowserTerminal } from 'browser/CoreBrowserTerminal';
|
import { CoreBrowserTerminal } from 'browser/CoreBrowserTerminal';
|
||||||
import { IUnicodeService, IOptionsService, ICoreService, IMouseStateService } from 'common/services/Services';
|
import { IUnicodeService, IOptionsService, ICoreService, IMouseStateService } from 'common/services/Services';
|
||||||
import { IFunctionIdentifier, IParams } from 'common/parser/Types';
|
import { IFunctionIdentifier, IParams } from 'common/parser/Types';
|
||||||
import { AttributeData } from 'common/buffer/AttributeData';
|
import { AttributeData } from 'common/buffer/AttributeData';
|
||||||
import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';
|
import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';
|
||||||
import { css } from 'common/Color';
|
import { css } from 'common/base/Color';
|
||||||
import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils';
|
import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils';
|
||||||
import { Emitter, type IEvent } from 'common/Event';
|
import { Emitter, type IEvent } from 'common/base/Event';
|
||||||
|
|
||||||
export class TestTerminal extends CoreBrowserTerminal {
|
export class TestTerminal extends CoreBrowserTerminal {
|
||||||
public get curAttrData(): IAttributeData { return (this as any)._inputHandler._curAttrData; }
|
public get curAttrData(): IAttributeData { return (this as any)._inputHandler._curAttrData; }
|
||||||
|
|||||||
@@ -3,11 +3,14 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { CharData, IColor, ICoreTerminal, ITerminalOptions } from 'common/Types';
|
import type { CharData } from 'common/buffer/CellTypes';
|
||||||
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
|
import type { ICoreTerminal } from 'common/terminal/CoreTerminalTypes';
|
||||||
|
import type { ITerminalOptions } from 'common/services/Services';
|
||||||
import { IBuffer } from 'common/buffer/Types';
|
import { IBuffer } from 'common/buffer/Types';
|
||||||
import { IDisposable, IRenderDimensions as IRenderDimensionsApi, Terminal as ITerminalApi } from '@xterm/xterm';
|
import { IDisposable, IRenderDimensions as IRenderDimensionsApi, Terminal as ITerminalApi } from '@xterm/xterm';
|
||||||
import { channels, css } from 'common/Color';
|
import { channels, css } from 'common/base/Color';
|
||||||
import type { IEvent } from 'common/Event';
|
import type { IEvent } from 'common/base/Event';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A portion of the public API that are implemented identially internally and simply passed through.
|
* A portion of the public API that are implemented identially internally and simply passed through.
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
|
|
||||||
import { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
import { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
||||||
import { ViewportConstants } from 'browser/shared/Constants';
|
import { ViewportConstants } from 'browser/shared/Constants';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { IBufferService, ICoreService, IMouseStateService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, ICoreService, IMouseStateService, IOptionsService } from 'common/services/Services';
|
||||||
import { CoreMouseEventType } from 'common/Types';
|
import { CoreMouseEventType } from 'common/services/Types';
|
||||||
import { scheduleAtNextAnimationFrame } from 'browser/Dom';
|
import { scheduleAtNextAnimationFrame } from 'browser/Dom';
|
||||||
import { SmoothScrollableElement } from 'browser/scrollable/scrollableElement';
|
import { SmoothScrollableElement } from 'browser/scrollable/scrollableElement';
|
||||||
import type { IScrollableElementChangeOptions } from 'browser/scrollable/scrollableElementOptions';
|
import type { IScrollableElementChangeOptions } from 'browser/scrollable/scrollableElementOptions';
|
||||||
import { Emitter, EventUtils } from 'common/Event';
|
import { Emitter, EventUtils } from 'common/base/Event';
|
||||||
import { Scrollable, ScrollbarVisibility, type IScrollEvent } from 'browser/scrollable/scrollable';
|
import { Scrollable, ScrollbarVisibility, type IScrollEvent } from 'browser/scrollable/scrollable';
|
||||||
|
|
||||||
export class Viewport extends Disposable {
|
export class Viewport extends Disposable {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { ICoreBrowserService, IRenderService } from 'browser/services/Services';
|
import { ICoreBrowserService, IRenderService } from 'browser/services/Services';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { IBufferService, IDecorationService, IInternalDecoration } from 'common/services/Services';
|
import { IBufferService, IDecorationService, IInternalDecoration } from 'common/services/Services';
|
||||||
|
|
||||||
export class BufferDecorationRenderer extends Disposable {
|
export class BufferDecorationRenderer extends Disposable {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { ColorZoneStore, IColorZone, IColorZoneStore } from 'browser/decorations/ColorZoneStore';
|
import { ColorZoneStore, IColorZone, IColorZoneStore } from 'browser/decorations/ColorZoneStore';
|
||||||
import { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
import { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { IBufferService, IDecorationService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, IDecorationService, IOptionsService } from 'common/services/Services';
|
||||||
|
|
||||||
const enum Constants {
|
const enum Constants {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { CompositionHelper } from 'browser/input/CompositionHelper';
|
import { CompositionHelper } from 'browser/input/CompositionHelper';
|
||||||
import { MockRenderService } from 'browser/TestUtils.test';
|
import { MockRenderService } from 'browser/TestUtils.test';
|
||||||
import { MockCoreService, MockBufferService, MockOptionsService } from 'common/TestUtils.test';
|
import { MockCoreService, MockBufferService, MockOptionsService } from 'common/terminal/TestUtils.test';
|
||||||
|
|
||||||
describe('CompositionHelper', () => {
|
describe('CompositionHelper', () => {
|
||||||
let compositionHelper: CompositionHelper;
|
let compositionHelper: CompositionHelper;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { IRenderService } from 'browser/services/Services';
|
import { IRenderService } from 'browser/services/Services';
|
||||||
import { IBufferService, ICoreService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, ICoreService, IOptionsService } from 'common/services/Services';
|
||||||
import { C0 } from 'common/data/EscapeSequences';
|
import { C0 } from 'common/base/EscapeSequences';
|
||||||
|
|
||||||
interface IPosition {
|
interface IPosition {
|
||||||
start: number;
|
start: number;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { IBufferService } from 'common/services/Services';
|
import { IBufferService } from 'common/services/Services';
|
||||||
import { MockBufferService } from 'common/TestUtils.test';
|
import { MockBufferService } from 'common/terminal/TestUtils.test';
|
||||||
import { moveToCellSequence } from './MoveToCell';
|
import { moveToCellSequence } from './MoveToCell';
|
||||||
|
|
||||||
describe('MoveToCell', () => {
|
describe('MoveToCell', () => {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { C0 } from 'common/data/EscapeSequences';
|
import { C0 } from 'common/base/EscapeSequences';
|
||||||
import { IBufferService } from 'common/services/Services';
|
import { IBufferService } from 'common/services/Services';
|
||||||
|
|
||||||
const enum Direction {
|
const enum Direction {
|
||||||
|
|||||||
@@ -6,14 +6,14 @@
|
|||||||
import * as Strings from 'browser/LocalizableStrings';
|
import * as Strings from 'browser/LocalizableStrings';
|
||||||
import { CoreBrowserTerminal as TerminalCore } from 'browser/CoreBrowserTerminal';
|
import { CoreBrowserTerminal as TerminalCore } from 'browser/CoreBrowserTerminal';
|
||||||
import { IBufferRange, ITerminal } from 'browser/Types';
|
import { IBufferRange, ITerminal } from 'browser/Types';
|
||||||
import { Disposable } from 'common/Lifecycle';
|
import { Disposable } from 'common/base/Lifecycle';
|
||||||
import { ITerminalOptions } from 'common/Types';
|
import type { ITerminalOptions } from 'common/services/Services';
|
||||||
import { AddonManager } from 'common/public/AddonManager';
|
import { AddonManager } from 'common/public/AddonManager';
|
||||||
import { BufferNamespaceApi } from 'common/public/BufferNamespaceApi';
|
import { BufferNamespaceApi } from 'common/public/BufferNamespaceApi';
|
||||||
import { ParserApi } from 'common/public/ParserApi';
|
import { ParserApi } from 'common/public/ParserApi';
|
||||||
import { UnicodeApi } from 'common/public/UnicodeApi';
|
import { UnicodeApi } from 'common/public/UnicodeApi';
|
||||||
import { IBufferNamespace as IBufferNamespaceApi, IDecoration, IDecorationOptions, IDisposable, ILinkProvider, ILocalizableStrings, IMarker, IModes, IParser, IRenderDimensions, ITerminalAddon, Terminal as ITerminalApi, ITerminalInitOnlyOptions, IUnicodeHandling } from '@xterm/xterm';
|
import { IBufferNamespace as IBufferNamespaceApi, IDecoration, IDecorationOptions, IDisposable, ILinkProvider, ILocalizableStrings, IMarker, IModes, IParser, IRenderDimensions, ITerminalAddon, Terminal as ITerminalApi, ITerminalInitOnlyOptions, IUnicodeHandling } from '@xterm/xterm';
|
||||||
import type { IEvent } from 'common/Event';
|
import type { IEvent } from 'common/base/Event';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The set of options that only have an effect when set in the Terminal constructor.
|
* The set of options that only have an effect when set in the Terminal constructor.
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import { TextBlinkStateManager } from 'browser/renderer/shared/TextBlinkStateMan
|
|||||||
import { IRenderDimensions, IRenderer, IRequestRedrawEvent, ISelectionRenderModel } from 'browser/renderer/shared/Types';
|
import { IRenderDimensions, IRenderer, IRequestRedrawEvent, ISelectionRenderModel } from 'browser/renderer/shared/Types';
|
||||||
import { ICharSizeService, ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
import { ICharSizeService, ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
||||||
import { ILinkifier2, ILinkifierEvent, ITerminal, ReadonlyColorSet } from 'browser/Types';
|
import { ILinkifier2, ILinkifierEvent, ITerminal, ReadonlyColorSet } from 'browser/Types';
|
||||||
import { color } from 'common/Color';
|
import { color } from 'common/base/Color';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { IBufferService, ICoreService, IInstantiationService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, ICoreService, IInstantiationService, IOptionsService } from 'common/services/Services';
|
||||||
import { Emitter } from 'common/Event';
|
import { Emitter } from 'common/base/Event';
|
||||||
import { addDisposableListener } from 'browser/Dom';
|
import { addDisposableListener } from 'browser/Dom';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import { DomRendererRowFactory } from 'browser/renderer/dom/DomRendererRowFactor
|
|||||||
import { NULL_CELL_CODE, NULL_CELL_WIDTH, NULL_CELL_CHAR, DEFAULT_ATTR, FgFlags, BgFlags, Attributes, UnderlineStyle } from 'common/buffer/Constants';
|
import { NULL_CELL_CODE, NULL_CELL_WIDTH, NULL_CELL_CHAR, DEFAULT_ATTR, FgFlags, BgFlags, Attributes, UnderlineStyle } from 'common/buffer/Constants';
|
||||||
import { BufferLine, DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';
|
import { BufferLine, DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';
|
||||||
import { BufferLineStringCache } from 'common/buffer/BufferLineStringCache';
|
import { BufferLineStringCache } from 'common/buffer/BufferLineStringCache';
|
||||||
import { IBufferLine } from 'common/Types';
|
import type { IBufferLine } from 'common/buffer/CellTypes';
|
||||||
import { CellData } from 'common/buffer/CellData';
|
import { CellData } from 'common/buffer/CellData';
|
||||||
import { MockCoreService, MockDecorationService, MockOptionsService, createCellData, NULL_CELL_DATA } from 'common/TestUtils.test';
|
import { MockCoreService, MockDecorationService, MockOptionsService, createCellData, NULL_CELL_DATA } from 'common/terminal/TestUtils.test';
|
||||||
import { MockCharacterJoinerService, MockCoreBrowserService, MockThemeService } from 'browser/TestUtils.test';
|
import { MockCharacterJoinerService, MockCoreBrowserService, MockThemeService } from 'browser/TestUtils.test';
|
||||||
import { TestWidthCache } from 'browser/renderer/dom/WidthCache.test';
|
import { TestWidthCache } from 'browser/renderer/dom/WidthCache.test';
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,13 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { IBufferLine, ICellData, IColor } from 'common/Types';
|
import type { IBufferLine, ICellData } from 'common/buffer/CellTypes';
|
||||||
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
import { INVERTED_DEFAULT_COLOR } from 'browser/renderer/shared/Constants';
|
import { INVERTED_DEFAULT_COLOR } from 'browser/renderer/shared/Constants';
|
||||||
import { WHITESPACE_CELL_CHAR, Attributes } from 'common/buffer/Constants';
|
import { WHITESPACE_CELL_CHAR, Attributes } from 'common/buffer/Constants';
|
||||||
import { CellData } from 'common/buffer/CellData';
|
import { CellData } from 'common/buffer/CellData';
|
||||||
import { ICoreService, IDecorationService, IOptionsService } from 'common/services/Services';
|
import { ICoreService, IDecorationService, IOptionsService } from 'common/services/Services';
|
||||||
import { channels, color } from 'common/Color';
|
import { channels, color } from 'common/base/Color';
|
||||||
import { ICharacterJoinerService, ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
import { ICharacterJoinerService, ICoreBrowserService, IThemeService } from 'browser/services/Services';
|
||||||
import { JoinedCellData } from 'browser/services/CharacterJoinerService';
|
import { JoinedCellData } from 'browser/services/CharacterJoinerService';
|
||||||
import { treatGlyphAsBackgroundColor } from 'browser/renderer/shared/RendererUtils';
|
import { treatGlyphAsBackgroundColor } from 'browser/renderer/shared/RendererUtils';
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { throwIfFalsy } from 'browser/renderer/shared/RendererUtils';
|
import { throwIfFalsy } from 'browser/renderer/shared/RendererUtils';
|
||||||
import { IDisposable } from 'common/Types';
|
import type { IDisposable } from 'common/base/Lifecycle';
|
||||||
import { FontWeight } from 'common/services/Services';
|
import { FontWeight } from 'common/services/Services';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { TextBlinkStateManager } from 'browser/renderer/shared/TextBlinkStateManager';
|
import { TextBlinkStateManager } from 'browser/renderer/shared/TextBlinkStateManager';
|
||||||
import { MockOptionsService } from 'common/TestUtils.test';
|
import { MockOptionsService } from 'common/terminal/TestUtils.test';
|
||||||
import type { ICoreBrowserService } from 'browser/services/Services';
|
import type { ICoreBrowserService } from 'browser/services/Services';
|
||||||
import { Emitter } from 'common/Event';
|
import { Emitter } from 'common/base/Event';
|
||||||
|
|
||||||
class FakeWindow {
|
class FakeWindow {
|
||||||
public nextId = 1;
|
public nextId = 1;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { ICoreBrowserService } from 'browser/services/Services';
|
import { ICoreBrowserService } from 'browser/services/Services';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { IOptionsService } from 'common/services/Services';
|
import { IOptionsService } from 'common/services/Services';
|
||||||
|
|
||||||
export class TextBlinkStateManager extends Disposable {
|
export class TextBlinkStateManager extends Disposable {
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
import { Terminal } from '@xterm/xterm';
|
import { Terminal } from '@xterm/xterm';
|
||||||
import { ITerminal } from 'browser/Types';
|
import { ITerminal } from 'browser/Types';
|
||||||
import { IDisposable } from 'common/Types';
|
import type { IDisposable } from 'common/base/Lifecycle';
|
||||||
import type { IEvent } from 'common/Event';
|
import type { IEvent } from 'common/base/Event';
|
||||||
|
|
||||||
export interface IDimensions {
|
export interface IDimensions {
|
||||||
width: number;
|
width: number;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { ScrollbarArrow, IScrollbarArrowOptions } from './scrollbarArrow';
|
|||||||
import { ScrollbarState } from './scrollbarState';
|
import { ScrollbarState } from './scrollbarState';
|
||||||
import { ScrollbarVisibilityController } from './scrollbarVisibilityController';
|
import { ScrollbarVisibilityController } from './scrollbarVisibilityController';
|
||||||
import { Widget } from './widget';
|
import { Widget } from './widget';
|
||||||
import * as platform from 'common/Platform';
|
import * as platform from 'common/base/Platform';
|
||||||
import { INewScrollPosition, Scrollable, ScrollbarVisibility } from './scrollable';
|
import { INewScrollPosition, Scrollable, ScrollbarVisibility } from './scrollable';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import * as dom from '../Dom';
|
import * as dom from '../Dom';
|
||||||
import { DisposableStore, IDisposable, toDisposable } from 'common/Lifecycle';
|
import { DisposableStore, IDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
type PointerMoveCallback = (event: PointerEvent) => void;
|
type PointerMoveCallback = (event: PointerEvent) => void;
|
||||||
type OnStopCallback = () => void;
|
type OnStopCallback = () => void;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import * as platform from 'common/Platform';
|
import * as platform from 'common/base/Platform';
|
||||||
|
|
||||||
interface IWindowChainElement {
|
interface IWindowChainElement {
|
||||||
readonly window: WeakRef<Window>;
|
readonly window: WeakRef<Window>;
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { Emitter, IEvent } from 'common/Event';
|
import { Emitter, IEvent } from 'common/base/Event';
|
||||||
import { Disposable, IDisposable } from 'common/Lifecycle';
|
import { Disposable, IDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export const enum ScrollbarVisibility {
|
export const enum ScrollbarVisibility {
|
||||||
AUTO = 1,
|
AUTO = 1,
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ import { HorizontalScrollbar } from './horizontalScrollbar';
|
|||||||
import { IScrollableElementChangeOptions, IScrollableElementCreationOptions, IScrollableElementResolvedOptions } from './scrollableElementOptions';
|
import { IScrollableElementChangeOptions, IScrollableElementCreationOptions, IScrollableElementResolvedOptions } from './scrollableElementOptions';
|
||||||
import { VerticalScrollbar } from './verticalScrollbar';
|
import { VerticalScrollbar } from './verticalScrollbar';
|
||||||
import { Widget } from './widget';
|
import { Widget } from './widget';
|
||||||
import { TimeoutTimer } from 'common/Async';
|
import { TimeoutTimer } from 'common/base/Async';
|
||||||
import { Emitter, IEvent } from 'common/Event';
|
import { Emitter, IEvent } from 'common/base/Event';
|
||||||
import { IDisposable, dispose } from 'common/Lifecycle';
|
import { IDisposable, dispose } from 'common/base/Lifecycle';
|
||||||
import * as platform from 'common/Platform';
|
import * as platform from 'common/base/Platform';
|
||||||
import { INewScrollDimensions, INewScrollPosition, IScrollDimensions, IScrollPosition, IScrollEvent, Scrollable, ScrollbarVisibility } from './scrollable';
|
import { INewScrollDimensions, INewScrollPosition, IScrollDimensions, IScrollPosition, IScrollEvent, Scrollable, ScrollbarVisibility } from './scrollable';
|
||||||
// import 'vs/css!./media/scrollbars';
|
// import 'vs/css!./media/scrollbars';
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { GlobalPointerMoveMonitor } from './globalPointerMoveMonitor';
|
import { GlobalPointerMoveMonitor } from './globalPointerMoveMonitor';
|
||||||
import { Widget } from './widget';
|
import { Widget } from './widget';
|
||||||
import { TimeoutTimer } from 'common/Async';
|
import { TimeoutTimer } from 'common/base/Async';
|
||||||
import * as dom from '../Dom';
|
import * as dom from '../Dom';
|
||||||
|
|
||||||
export interface IScrollbarArrowOptions {
|
export interface IScrollbarArrowOptions {
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { FastDomNode } from './fastDomNode';
|
import { FastDomNode } from './fastDomNode';
|
||||||
import { TimeoutTimer } from 'common/Async';
|
import { TimeoutTimer } from 'common/base/Async';
|
||||||
import { Disposable } from 'common/Lifecycle';
|
import { Disposable } from 'common/base/Lifecycle';
|
||||||
import { ScrollbarVisibility } from './scrollable';
|
import { ScrollbarVisibility } from './scrollable';
|
||||||
|
|
||||||
export class ScrollbarVisibilityController extends Disposable {
|
export class ScrollbarVisibilityController extends Disposable {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import * as DomUtils from '../Dom';
|
import * as DomUtils from '../Dom';
|
||||||
import { Disposable, IDisposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, IDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
const mainWindow = (typeof window === 'object' ? window : globalThis) as Window & typeof globalThis;
|
const mainWindow = (typeof window === 'object' ? window : globalThis) as Window & typeof globalThis;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import * as dom from '../Dom';
|
import * as dom from '../Dom';
|
||||||
import { IMouseEvent, StandardMouseEvent } from './mouseEvent';
|
import { IMouseEvent, StandardMouseEvent } from './mouseEvent';
|
||||||
import { Disposable } from 'common/Lifecycle';
|
import { Disposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export abstract class Widget extends Disposable {
|
export abstract class Widget extends Disposable {
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { SelectionModel } from './SelectionModel';
|
import { SelectionModel } from './SelectionModel';
|
||||||
import { MockBufferService } from 'common/TestUtils.test';
|
import { MockBufferService } from 'common/terminal/TestUtils.test';
|
||||||
|
|
||||||
describe('SelectionModel', () => {
|
describe('SelectionModel', () => {
|
||||||
let model: SelectionModel;
|
let model: SelectionModel;
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
import { IOptionsService } from 'common/services/Services';
|
import { IOptionsService } from 'common/services/Services';
|
||||||
import { ICharSizeService } from 'browser/services/Services';
|
import { ICharSizeService } from 'browser/services/Services';
|
||||||
import { Disposable } from 'common/Lifecycle';
|
import { Disposable } from 'common/base/Lifecycle';
|
||||||
import { Emitter } from 'common/Event';
|
import { Emitter } from 'common/base/Event';
|
||||||
|
|
||||||
export class CharSizeService extends Disposable implements ICharSizeService {
|
export class CharSizeService extends Disposable implements ICharSizeService {
|
||||||
public serviceBrand: undefined;
|
public serviceBrand: undefined;
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import { ICharacterJoinerService } from 'browser/services/Services';
|
|||||||
import { CharacterJoinerService } from 'browser/services/CharacterJoinerService';
|
import { CharacterJoinerService } from 'browser/services/CharacterJoinerService';
|
||||||
import { BufferLine } from 'common/buffer/BufferLine';
|
import { BufferLine } from 'common/buffer/BufferLine';
|
||||||
import { BufferLineStringCache } from 'common/buffer/BufferLineStringCache';
|
import { BufferLineStringCache } from 'common/buffer/BufferLineStringCache';
|
||||||
import { IBufferLine } from 'common/Types';
|
import type { IBufferLine } from 'common/buffer/CellTypes';
|
||||||
import { CellData } from 'common/buffer/CellData';
|
import { CellData } from 'common/buffer/CellData';
|
||||||
import { MockBufferService, createCellData } from 'common/TestUtils.test';
|
import { MockBufferService, createCellData } from 'common/terminal/TestUtils.test';
|
||||||
|
|
||||||
const TEST_STRING_CACHE = new BufferLineStringCache();
|
const TEST_STRING_CACHE = new BufferLineStringCache();
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { IBufferLine, ICellData, CharData } from 'common/Types';
|
import type { CharData, IBufferLine, ICellData } from 'common/buffer/CellTypes';
|
||||||
import { ICharacterJoiner } from 'browser/Types';
|
import { ICharacterJoiner } from 'browser/Types';
|
||||||
import { AttributeData } from 'common/buffer/AttributeData';
|
import { AttributeData } from 'common/buffer/AttributeData';
|
||||||
import { WHITESPACE_CELL_CHAR, Content } from 'common/buffer/Constants';
|
import { WHITESPACE_CELL_CHAR, Content } from 'common/buffer/Constants';
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { ICoreBrowserService } from './Services';
|
import { ICoreBrowserService } from './Services';
|
||||||
import { Emitter, EventUtils } from 'common/Event';
|
import { Emitter, EventUtils } from 'common/base/Event';
|
||||||
import { addDisposableListener } from 'browser/Dom';
|
import { addDisposableListener } from 'browser/Dom';
|
||||||
import { Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export class CoreBrowserService extends Disposable implements ICoreBrowserService {
|
export class CoreBrowserService extends Disposable implements ICoreBrowserService {
|
||||||
public serviceBrand: undefined;
|
public serviceBrand: undefined;
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import { IKeyboardService } from 'browser/services/Services';
|
|||||||
import { evaluateKeyboardEvent } from 'common/input/Keyboard';
|
import { evaluateKeyboardEvent } from 'common/input/Keyboard';
|
||||||
import { KittyKeyboard, KittyKeyboardEventType, KittyKeyboardFlags } from 'common/input/KittyKeyboard';
|
import { KittyKeyboard, KittyKeyboardEventType, KittyKeyboardFlags } from 'common/input/KittyKeyboard';
|
||||||
import { Win32InputMode } from 'common/input/Win32InputMode';
|
import { Win32InputMode } from 'common/input/Win32InputMode';
|
||||||
import { isMac } from 'common/Platform';
|
import { isMac } from 'common/base/Platform';
|
||||||
import { ICoreService, IOptionsService } from 'common/services/Services';
|
import { ICoreService, IOptionsService } from 'common/services/Services';
|
||||||
import { IKeyboardResult } from 'common/Types';
|
import type { IKeyboardResult } from 'common/input/KeyboardTypes';
|
||||||
|
|
||||||
export class KeyboardService implements IKeyboardService {
|
export class KeyboardService implements IKeyboardService {
|
||||||
public serviceBrand: undefined;
|
public serviceBrand: undefined;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ILinkProvider, ILinkProviderService } from 'browser/services/Services';
|
import { ILinkProvider, ILinkProviderService } from 'browser/services/Services';
|
||||||
import { Disposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { IDisposable } from 'common/Types';
|
import type { IDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export class LinkProviderService extends Disposable implements ILinkProviderService {
|
export class LinkProviderService extends Disposable implements ILinkProviderService {
|
||||||
declare public serviceBrand: undefined;
|
declare public serviceBrand: undefined;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { AltMouseCursorController, MouseEventCssClasses, MouseService } from 'browser/services/MouseService';
|
import { AltMouseCursorController, MouseEventCssClasses, MouseService } from 'browser/services/MouseService';
|
||||||
import { MouseStateService } from 'common/services/MouseStateService';
|
import { MouseStateService } from 'common/services/MouseStateService';
|
||||||
import { CoreMouseAction, CoreMouseButton } from 'common/Types';
|
import { CoreMouseAction, CoreMouseButton } from 'common/services/Types';
|
||||||
import { IBufferService, ICoreService, ILogService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, ICoreService, ILogService, IOptionsService } from 'common/services/Services';
|
||||||
import { OptionsService } from 'common/services/OptionsService';
|
import { OptionsService } from 'common/services/OptionsService';
|
||||||
import { MockCoreBrowserService, MockRenderService, MockSelectionService } from 'browser/TestUtils.test';
|
import { MockCoreBrowserService, MockRenderService, MockSelectionService } from 'browser/TestUtils.test';
|
||||||
|
|||||||
@@ -5,9 +5,10 @@
|
|||||||
|
|
||||||
import { addDisposableListener } from 'browser/Dom';
|
import { addDisposableListener } from 'browser/Dom';
|
||||||
import { IBufferService, IMouseStateService, ICoreService, ILogService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, IMouseStateService, ICoreService, ILogService, IOptionsService } from 'common/services/Services';
|
||||||
import { CoreMouseAction, CoreMouseButton, CoreMouseEventType, ICoreMouseEvent, IDisposable } from 'common/Types';
|
import type { IDisposable } from 'common/base/Lifecycle';
|
||||||
import { C0 } from 'common/data/EscapeSequences';
|
import { CoreMouseAction, CoreMouseButton, CoreMouseEventType, ICoreMouseEvent } from 'common/services/Types';
|
||||||
import { DisposableStore, MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { C0 } from 'common/base/EscapeSequences';
|
||||||
|
import { DisposableStore, MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { ICoreBrowserService, IMouseCoordsService, IMouseService, IMouseServiceTarget, IRenderService, ISelectionService } from './Services';
|
import { ICoreBrowserService, IMouseCoordsService, IMouseService, IMouseServiceTarget, IRenderService, ISelectionService } from './Services';
|
||||||
import { Gesture, EventType as GestureEventType, IGestureEvent } from 'browser/scrollable/touch';
|
import { Gesture, EventType as GestureEventType, IGestureEvent } from 'browser/scrollable/touch';
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import { RenderDebouncer } from 'browser/RenderDebouncer';
|
|||||||
import { IRenderDebouncerWithCallback } from 'browser/Types';
|
import { IRenderDebouncerWithCallback } from 'browser/Types';
|
||||||
import { IRenderDimensions, IRenderer } from 'browser/renderer/shared/Types';
|
import { IRenderDimensions, IRenderer } from 'browser/renderer/shared/Types';
|
||||||
import { ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
import { ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';
|
||||||
import { Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import { DebouncedIdleTask } from 'common/TaskQueue';
|
import { DebouncedIdleTask } from 'common/base/TaskQueue';
|
||||||
import { IBufferService, ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services';
|
||||||
import { Emitter } from 'common/Event';
|
import { Emitter } from 'common/base/Event';
|
||||||
|
|
||||||
interface ISelectionState {
|
interface ISelectionState {
|
||||||
start: [number, number] | undefined;
|
start: [number, number] | undefined;
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { SelectionService, SelectionMode } from './SelectionService';
|
import { SelectionService, SelectionMode } from './SelectionService';
|
||||||
import { SelectionModel } from 'browser/selection/SelectionModel';
|
import { SelectionModel } from 'browser/selection/SelectionModel';
|
||||||
import { IBufferLine } from 'common/Types';
|
import type { IBufferLine } from 'common/buffer/CellTypes';
|
||||||
import { MockBufferService, MockOptionsService, MockCoreService, MockMouseStateService, createCellData } from 'common/TestUtils.test';
|
import { MockBufferService, MockOptionsService, MockCoreService, MockMouseStateService, createCellData } from 'common/terminal/TestUtils.test';
|
||||||
import { BufferLine } from 'common/buffer/BufferLine';
|
import { BufferLine } from 'common/buffer/BufferLine';
|
||||||
import { BufferLineStringCache } from 'common/buffer/BufferLineStringCache';
|
import { BufferLineStringCache } from 'common/buffer/BufferLineStringCache';
|
||||||
import { IBufferService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, IOptionsService } from 'common/services/Services';
|
||||||
|
|||||||
@@ -9,14 +9,15 @@ import { moveToCellSequence } from 'browser/input/MoveToCell';
|
|||||||
import { SelectionModel } from 'browser/selection/SelectionModel';
|
import { SelectionModel } from 'browser/selection/SelectionModel';
|
||||||
import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';
|
import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';
|
||||||
import { ICoreBrowserService, IMouseCoordsService, IRenderService, ISelectionService } from 'browser/services/Services';
|
import { ICoreBrowserService, IMouseCoordsService, IRenderService, ISelectionService } from 'browser/services/Services';
|
||||||
import { Disposable, MutableDisposable, toDisposable } from 'common/Lifecycle';
|
import { Disposable, MutableDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
import * as Browser from 'common/Platform';
|
import * as Browser from 'common/base/Platform';
|
||||||
import { IBufferLine, ICellData, IDisposable } from 'common/Types';
|
import type { IBufferLine, ICellData } from 'common/buffer/CellTypes';
|
||||||
|
import type { IDisposable } from 'common/base/Lifecycle';
|
||||||
import { getRangeLength } from 'common/buffer/BufferRange';
|
import { getRangeLength } from 'common/buffer/BufferRange';
|
||||||
import { CellData } from 'common/buffer/CellData';
|
import { CellData } from 'common/buffer/CellData';
|
||||||
import { IBuffer } from 'common/buffer/Types';
|
import { IBuffer } from 'common/buffer/Types';
|
||||||
import { IBufferService, ICoreService, IMouseStateService, IOptionsService } from 'common/services/Services';
|
import { IBufferService, ICoreService, IMouseStateService, IOptionsService } from 'common/services/Services';
|
||||||
import { Emitter } from 'common/Event';
|
import { Emitter } from 'common/base/Event';
|
||||||
|
|
||||||
const enum Constants {
|
const enum Constants {
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ import { IRenderDimensions, IRenderer } from 'browser/renderer/shared/Types';
|
|||||||
import { IColorSet, ILink, ReadonlyColorSet } from 'browser/Types';
|
import { IColorSet, ILink, ReadonlyColorSet } from 'browser/Types';
|
||||||
import { ISelectionRedrawRequestEvent as ISelectionRequestRedrawEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';
|
import { ISelectionRedrawRequestEvent as ISelectionRequestRedrawEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';
|
||||||
import { createDecorator } from 'common/services/ServiceRegistry';
|
import { createDecorator } from 'common/services/ServiceRegistry';
|
||||||
import { AllColorIndex, IDisposable, IKeyboardResult } from 'common/Types';
|
import type { IDisposable } from 'common/base/Lifecycle';
|
||||||
import type { IEvent } from 'common/Event';
|
import { AllColorIndex } from 'common/terminal/InputHandlerTypes';
|
||||||
|
import type { IKeyboardResult } from 'common/input/KeyboardTypes';
|
||||||
|
import type { IEvent } from 'common/base/Event';
|
||||||
|
|
||||||
export const ICharSizeService = createDecorator<ICharSizeService>('CharSizeService');
|
export const ICharSizeService = createDecorator<ICharSizeService>('CharSizeService');
|
||||||
export interface ICharSizeService {
|
export interface ICharSizeService {
|
||||||
|
|||||||
@@ -6,11 +6,12 @@
|
|||||||
import { ColorContrastCache } from 'browser/ColorContrastCache';
|
import { ColorContrastCache } from 'browser/ColorContrastCache';
|
||||||
import { IThemeService } from 'browser/services/Services';
|
import { IThemeService } from 'browser/services/Services';
|
||||||
import { DEFAULT_ANSI_COLORS, IColorContrastCache, IColorSet, ReadonlyColorSet } from 'browser/Types';
|
import { DEFAULT_ANSI_COLORS, IColorContrastCache, IColorSet, ReadonlyColorSet } from 'browser/Types';
|
||||||
import { color, css, NULL_COLOR } from 'common/Color';
|
import { color, css, NULL_COLOR } from 'common/base/Color';
|
||||||
import { Disposable } from 'common/Lifecycle';
|
import { Disposable } from 'common/base/Lifecycle';
|
||||||
import { IOptionsService, ITheme } from 'common/services/Services';
|
import { IOptionsService, ITheme } from 'common/services/Services';
|
||||||
import { AllColorIndex, IColor, SpecialColorIndex } from 'common/Types';
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
import { Emitter } from 'common/Event';
|
import { AllColorIndex, SpecialColorIndex } from 'common/terminal/InputHandlerTypes';
|
||||||
|
import { Emitter } from 'common/base/Event';
|
||||||
|
|
||||||
interface IRestoreColorSet {
|
interface IRestoreColorSet {
|
||||||
foreground: IColor;
|
foreground: IColor;
|
||||||
|
|||||||
@@ -19,6 +19,9 @@
|
|||||||
"./**/*",
|
"./**/*",
|
||||||
"../../typings/xterm.d.ts"
|
"../../typings/xterm.d.ts"
|
||||||
],
|
],
|
||||||
|
"exclude": [
|
||||||
|
"**/*.test.ts"
|
||||||
|
],
|
||||||
"references": [
|
"references": [
|
||||||
{ "path": "../common" }
|
{ "path": "../common" }
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
# Common folder rearchitecture
|
||||||
|
|
||||||
|
Layered layout for `src/common/` as proposed in [issue #5963](https://github.com/xtermjs/xterm.js/issues/5963).
|
||||||
|
|
||||||
|
## Dependency graph (target)
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart BT
|
||||||
|
subgraph platform["Platform layer"]
|
||||||
|
direction LR
|
||||||
|
base["common/base"]
|
||||||
|
buffer["common/buffer"]
|
||||||
|
parser["common/parser"]
|
||||||
|
input["common/input"]
|
||||||
|
|
||||||
|
buffer --> base
|
||||||
|
parser --> buffer
|
||||||
|
input --> parser
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph integration["Integration layer"]
|
||||||
|
direction LR
|
||||||
|
services["common/services"]
|
||||||
|
terminal["common/terminal"]
|
||||||
|
terminal --> services
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph api_layer["API layer"]
|
||||||
|
public["common/public"]
|
||||||
|
end
|
||||||
|
|
||||||
|
integration --> platform
|
||||||
|
api_layer --> integration
|
||||||
|
```
|
||||||
|
|
||||||
|
## Package contents
|
||||||
|
|
||||||
|
| Project | Role | Notable sources |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `common/base` | Core utilities, UTF conversion, static terminal data | `Async`, `Event`, `Lifecycle`, `Color`, `TextDecoder`, `Charsets`, `EscapeSequences`, … |
|
||||||
|
| `common/buffer` | Screen buffer | `Buffer`, `BufferLine`, … |
|
||||||
|
| `common/parser` | Escape sequence parser | `EscapeSequenceParser`, … |
|
||||||
|
| `common/input` | Keyboard / write path helpers | `Keyboard`, `WriteBuffer`, … |
|
||||||
|
| `common/services` | DI service implementations | `Services`, `Types` (modes, mouse, osc link), … |
|
||||||
|
| `common/terminal` | Core terminal + input handler | `CoreTerminal`, `CoreTerminalTypes`, `InputHandler`, … |
|
||||||
|
| `common/public` | Public API adapters | `AddonManager`, buffer API views |
|
||||||
|
|
||||||
|
## TypeScript projects
|
||||||
|
|
||||||
|
- **`common/tsconfig.json`** — solution root; references each layer project (no sources).
|
||||||
|
- **`common/<layer>/tsconfig.json`** — self-contained composite project (`lib`, `paths`, `types`, `references`, `outDir`). Test files (`**/*.test.ts`) are excluded from composite builds; unit tests compile via esbuild.
|
||||||
|
|
||||||
|
Buffer-layer code depends on `buffer/BufferService`, `buffer/BufferOptions`, and `buffer/BufferLog` instead of `services` so the `buffer` project does not reference `services`.
|
||||||
@@ -1,572 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2018 The xterm.js authors. All rights reserved.
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { IDeleteEvent, IInsertEvent } from 'common/CircularList';
|
|
||||||
import { UnderlineStyle } from 'common/buffer/Constants';
|
|
||||||
import { IBufferSet } from 'common/buffer/Types';
|
|
||||||
import { IParams } from 'common/parser/Types';
|
|
||||||
import { IMouseStateService, ICoreService, IOptionsService, IUnicodeService } from 'common/services/Services';
|
|
||||||
import { IFunctionIdentifier, ITerminalOptions as IPublicTerminalOptions } from '@xterm/xterm';
|
|
||||||
import type { Emitter, IEvent } from 'common/Event';
|
|
||||||
|
|
||||||
export interface ICoreTerminal {
|
|
||||||
mouseStateService: IMouseStateService;
|
|
||||||
coreService: ICoreService;
|
|
||||||
optionsService: IOptionsService;
|
|
||||||
unicodeService: IUnicodeService;
|
|
||||||
buffers: IBufferSet;
|
|
||||||
options: Required<ITerminalOptions>;
|
|
||||||
registerCsiHandler(id: IFunctionIdentifier, callback: (params: IParams) => boolean | Promise<boolean>): IDisposable;
|
|
||||||
registerDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: IParams) => boolean | Promise<boolean>): IDisposable;
|
|
||||||
registerEscHandler(id: IFunctionIdentifier, callback: () => boolean | Promise<boolean>): IDisposable;
|
|
||||||
registerOscHandler(ident: number, callback: (data: string) => boolean | Promise<boolean>): IDisposable;
|
|
||||||
registerApcHandler(id: IFunctionIdentifier, callback: (data: string) => boolean | Promise<boolean>): 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 interface ICircularList<T> {
|
|
||||||
length: number;
|
|
||||||
maxLength: number;
|
|
||||||
isFull: boolean;
|
|
||||||
|
|
||||||
onDeleteEmitter: Emitter<IDeleteEvent>;
|
|
||||||
onDelete: IEvent<IDeleteEvent>;
|
|
||||||
onInsertEmitter: Emitter<IInsertEvent>;
|
|
||||||
onInsert: IEvent<IInsertEvent>;
|
|
||||||
onTrimEmitter: Emitter<number>;
|
|
||||||
onTrim: IEvent<number>;
|
|
||||||
|
|
||||||
get(index: number): T | undefined;
|
|
||||||
set(index: number, value: T): void;
|
|
||||||
push(value: T): void;
|
|
||||||
recycle(): T;
|
|
||||||
pop(): T | undefined;
|
|
||||||
splice(start: number, deleteCount: number, ...items: T[]): void;
|
|
||||||
trimStart(count: number): void;
|
|
||||||
shiftElements(start: number, count: number, offset: number): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const enum KeyboardResultType {
|
|
||||||
SEND_KEY,
|
|
||||||
SELECT_ALL,
|
|
||||||
PAGE_UP,
|
|
||||||
PAGE_DOWN
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IKeyboardResult {
|
|
||||||
type: KeyboardResultType;
|
|
||||||
cancel: boolean;
|
|
||||||
key: string | undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ICharset {
|
|
||||||
[key: string]: 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tracks the current hyperlink. Since these are treated as extended attirbutes, these get passed on
|
|
||||||
* to the linkifier when anything is printed. Doing it this way ensures that even when the cursor
|
|
||||||
* moves around unexpectedly the link is tracked, as opposed to using a start position and
|
|
||||||
* finalizing it at the end.
|
|
||||||
*/
|
|
||||||
export interface IOscLinkData {
|
|
||||||
id?: string;
|
|
||||||
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<void>;
|
|
||||||
}
|
|
||||||
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; // defaults: xterm - true, vt100 - false
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Kitty keyboard protocol state.
|
|
||||||
* Maintains per-screen stacks of enhancement flags.
|
|
||||||
*/
|
|
||||||
export interface IKittyKeyboardState {
|
|
||||||
/** Current active enhancement flags (for current screen) */
|
|
||||||
flags: number;
|
|
||||||
/** Saved flags for main screen when alt is active */
|
|
||||||
mainFlags: number;
|
|
||||||
/** Saved flags for alternate screen when main is active */
|
|
||||||
altFlags: number;
|
|
||||||
/** Stack of flags for main screen */
|
|
||||||
mainStack: number[];
|
|
||||||
/** Stack of flags for alternate screen */
|
|
||||||
altStack: number[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IRowRange {
|
|
||||||
start: number;
|
|
||||||
end: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for mouse events in the core.
|
|
||||||
*/
|
|
||||||
export const enum CoreMouseButton {
|
|
||||||
LEFT = 0,
|
|
||||||
MIDDLE = 1,
|
|
||||||
RIGHT = 2,
|
|
||||||
NONE = 3,
|
|
||||||
WHEEL = 4,
|
|
||||||
// additional buttons 1..8
|
|
||||||
// untested!
|
|
||||||
AUX1 = 8,
|
|
||||||
AUX2 = 9,
|
|
||||||
AUX3 = 10,
|
|
||||||
AUX4 = 11,
|
|
||||||
AUX5 = 12,
|
|
||||||
AUX6 = 13,
|
|
||||||
AUX7 = 14,
|
|
||||||
AUX8 = 15
|
|
||||||
}
|
|
||||||
|
|
||||||
export const enum CoreMouseAction {
|
|
||||||
UP = 0, // buttons, wheel
|
|
||||||
DOWN = 1, // buttons, wheel
|
|
||||||
LEFT = 2, // wheel only
|
|
||||||
RIGHT = 3, // wheel only
|
|
||||||
MOVE = 32 // buttons only
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ICoreMouseEvent {
|
|
||||||
/** column (zero based). */
|
|
||||||
col: number;
|
|
||||||
/** row (zero based). */
|
|
||||||
row: number;
|
|
||||||
/** xy pixel positions. */
|
|
||||||
x: number;
|
|
||||||
y: number;
|
|
||||||
/**
|
|
||||||
* Button the action occured. Due to restrictions of the tracking protocols
|
|
||||||
* it is not possible to report multiple buttons at once.
|
|
||||||
* Wheel is treated as a button.
|
|
||||||
* There are invalid combinations of buttons and actions possible
|
|
||||||
* (like move + wheel), those are silently ignored by the MouseStateService.
|
|
||||||
*/
|
|
||||||
button: CoreMouseButton;
|
|
||||||
action: CoreMouseAction;
|
|
||||||
/**
|
|
||||||
* Modifier states.
|
|
||||||
* Protocols will add/ignore those based on specific restrictions.
|
|
||||||
*/
|
|
||||||
ctrl?: boolean;
|
|
||||||
alt?: boolean;
|
|
||||||
shift?: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CoreMouseEventType
|
|
||||||
* To be reported to the browser component which events a mouse
|
|
||||||
* protocol wants to be catched and forwarded as an ICoreMouseEvent
|
|
||||||
* to MouseStateService.
|
|
||||||
*/
|
|
||||||
export const enum CoreMouseEventType {
|
|
||||||
NONE = 0,
|
|
||||||
/** any mousedown event */
|
|
||||||
DOWN = 1,
|
|
||||||
/** any mouseup event */
|
|
||||||
UP = 2,
|
|
||||||
/** any mousemove event while a button is held */
|
|
||||||
DRAG = 4,
|
|
||||||
/** any mousemove event without a button */
|
|
||||||
MOVE = 8,
|
|
||||||
/** any wheel event */
|
|
||||||
WHEEL = 16
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mouse protocol interface.
|
|
||||||
* A mouse protocol can be registered and activated at the MouseStateService.
|
|
||||||
* `events` should contain a list of needed events as a hint for the browser component
|
|
||||||
* to install/remove the appropriate event handlers.
|
|
||||||
* `restrict` applies further protocol specific restrictions like not allowed
|
|
||||||
* modifiers or filtering invalid event types.
|
|
||||||
*/
|
|
||||||
export interface ICoreMouseProtocol {
|
|
||||||
events: CoreMouseEventType;
|
|
||||||
restrict: (e: ICoreMouseEvent) => boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CoreMouseEncoding
|
|
||||||
* The tracking encoding can be registered and activated at the MouseStateService.
|
|
||||||
* If a ICoreMouseEvent passes all procotol restrictions it will be encoded
|
|
||||||
* with the active encoding and sent out.
|
|
||||||
* Note: Returning an empty string will supress sending a mouse report,
|
|
||||||
* which can be used to skip creating falsey reports in limited encodings
|
|
||||||
* (DEFAULT only supports up to 223 1-based as coord value).
|
|
||||||
*/
|
|
||||||
export type CoreMouseEncoding = (event: ICoreMouseEvent) => string;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* windowOptions
|
|
||||||
*/
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
// color events from common, used for OSC 4/10/11/12 and 104/110/111/112
|
|
||||||
export const enum ColorRequestType {
|
|
||||||
REPORT = 0,
|
|
||||||
SET = 1,
|
|
||||||
RESTORE = 2
|
|
||||||
}
|
|
||||||
|
|
||||||
// IntRange from https://stackoverflow.com/a/39495173
|
|
||||||
type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N
|
|
||||||
? Acc[number]
|
|
||||||
: Enumerate<N, [...Acc, Acc['length']]>;
|
|
||||||
type IntRange<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;
|
|
||||||
|
|
||||||
export type ColorIndex = IntRange<0, 256>; // number from 0 to 255
|
|
||||||
export type AllColorIndex = ColorIndex | SpecialColorIndex;
|
|
||||||
export 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)[];
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calls the parser and handles actions generated by the parser.
|
|
||||||
*/
|
|
||||||
export interface IInputHandler {
|
|
||||||
onTitleChange: IEvent<string>;
|
|
||||||
|
|
||||||
parse(data: string | Uint8Array, promiseResult?: boolean): void | Promise<boolean>;
|
|
||||||
print(data: Uint32Array, start: number, end: number): void;
|
|
||||||
registerCsiHandler(id: IFunctionIdentifier, callback: (params: IParams) => boolean | Promise<boolean>): IDisposable;
|
|
||||||
registerDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: IParams) => boolean | Promise<boolean>): IDisposable;
|
|
||||||
registerEscHandler(id: IFunctionIdentifier, callback: () => boolean | Promise<boolean>): IDisposable;
|
|
||||||
registerOscHandler(ident: number, callback: (data: string) => boolean | Promise<boolean>): IDisposable;
|
|
||||||
registerApcHandler(id: IFunctionIdentifier, callback: (data: string) => boolean | Promise<boolean>): IDisposable;
|
|
||||||
|
|
||||||
/** C0 BEL */ bell(): boolean;
|
|
||||||
/** C0 LF */ lineFeed(): boolean;
|
|
||||||
/** C0 CR */ carriageReturn(): boolean;
|
|
||||||
/** C0 BS */ backspace(): boolean;
|
|
||||||
/** C0 HT */ tab(): boolean;
|
|
||||||
/** C0 SO */ shiftOut(): boolean;
|
|
||||||
/** C0 SI */ shiftIn(): boolean;
|
|
||||||
|
|
||||||
/** CSI @ */ insertChars(params: IParams): boolean;
|
|
||||||
/** CSI SP @ */ scrollLeft(params: IParams): boolean;
|
|
||||||
/** CSI A */ cursorUp(params: IParams): boolean;
|
|
||||||
/** CSI SP A */ scrollRight(params: IParams): boolean;
|
|
||||||
/** CSI B */ cursorDown(params: IParams): boolean;
|
|
||||||
/** CSI C */ cursorForward(params: IParams): boolean;
|
|
||||||
/** CSI D */ cursorBackward(params: IParams): boolean;
|
|
||||||
/** CSI E */ cursorNextLine(params: IParams): boolean;
|
|
||||||
/** CSI F */ cursorPrecedingLine(params: IParams): boolean;
|
|
||||||
/** CSI G */ cursorCharAbsolute(params: IParams): boolean;
|
|
||||||
/** CSI H */ cursorPosition(params: IParams): boolean;
|
|
||||||
/** CSI I */ cursorForwardTab(params: IParams): boolean;
|
|
||||||
/** CSI J */ eraseInDisplay(params: IParams): boolean;
|
|
||||||
/** CSI K */ eraseInLine(params: IParams): boolean;
|
|
||||||
/** CSI L */ insertLines(params: IParams): boolean;
|
|
||||||
/** CSI M */ deleteLines(params: IParams): boolean;
|
|
||||||
/** CSI P */ deleteChars(params: IParams): boolean;
|
|
||||||
/** CSI S */ scrollUp(params: IParams): boolean;
|
|
||||||
/** CSI T */ scrollDown(params: IParams, collect?: string): boolean;
|
|
||||||
/** CSI X */ eraseChars(params: IParams): boolean;
|
|
||||||
/** CSI Z */ cursorBackwardTab(params: IParams): boolean;
|
|
||||||
/** CSI ` */ charPosAbsolute(params: IParams): boolean;
|
|
||||||
/** CSI a */ hPositionRelative(params: IParams): boolean;
|
|
||||||
/** CSI b */ repeatPrecedingCharacter(params: IParams): boolean;
|
|
||||||
/** CSI c */ sendDeviceAttributesPrimary(params: IParams): boolean;
|
|
||||||
/** CSI > c */ sendDeviceAttributesSecondary(params: IParams): boolean;
|
|
||||||
/** CSI d */ linePosAbsolute(params: IParams): boolean;
|
|
||||||
/** CSI e */ vPositionRelative(params: IParams): boolean;
|
|
||||||
/** CSI f */ hVPosition(params: IParams): boolean;
|
|
||||||
/** CSI g */ tabClear(params: IParams): boolean;
|
|
||||||
/** CSI h */ setMode(params: IParams, collect?: string): boolean;
|
|
||||||
/** CSI l */ resetMode(params: IParams, collect?: string): boolean;
|
|
||||||
/** CSI m */ charAttributes(params: IParams): boolean;
|
|
||||||
/** CSI n */ deviceStatus(params: IParams, collect?: string): boolean;
|
|
||||||
/** CSI p */ softReset(params: IParams, collect?: string): boolean;
|
|
||||||
/** CSI q */ setCursorStyle(params: IParams, collect?: string): boolean;
|
|
||||||
/** CSI r */ setScrollRegion(params: IParams, collect?: string): boolean;
|
|
||||||
/** CSI s */ saveCursor(params: IParams): boolean;
|
|
||||||
/** CSI u */ restoreCursor(params: IParams): boolean;
|
|
||||||
/** CSI ' } */ insertColumns(params: IParams): boolean;
|
|
||||||
/** CSI ' ~ */ deleteColumns(params: IParams): boolean;
|
|
||||||
|
|
||||||
/** OSC 0 */
|
|
||||||
/** OSC 2 */ setTitle(data: string): boolean;
|
|
||||||
/** OSC 4 */ setOrReportIndexedColor(data: string): boolean;
|
|
||||||
/** OSC 10 */ setOrReportFgColor(data: string): boolean;
|
|
||||||
/** OSC 11 */ setOrReportBgColor(data: string): boolean;
|
|
||||||
/** OSC 12 */ setOrReportCursorColor(data: string): boolean;
|
|
||||||
/** OSC 104 */ restoreIndexedColor(data: string): boolean;
|
|
||||||
/** OSC 110 */ restoreFgColor(data: string): boolean;
|
|
||||||
/** OSC 111 */ restoreBgColor(data: string): boolean;
|
|
||||||
/** OSC 112 */ restoreCursorColor(data: string): boolean;
|
|
||||||
|
|
||||||
/** ESC E */ nextLine(): boolean;
|
|
||||||
/** ESC = */ keypadApplicationMode(): boolean;
|
|
||||||
/** ESC > */ keypadNumericMode(): boolean;
|
|
||||||
/** ESC % G */
|
|
||||||
/** ESC % @ */ selectDefaultCharset(): boolean;
|
|
||||||
/** ESC ( C */
|
|
||||||
/** ESC ) C */
|
|
||||||
/** ESC * C */
|
|
||||||
/** ESC + C */
|
|
||||||
/** ESC - C */
|
|
||||||
/** ESC . C */
|
|
||||||
/** ESC / C */ selectCharset(collectAndFlag: string): boolean;
|
|
||||||
/** ESC D */ index(): boolean;
|
|
||||||
/** ESC H */ tabSet(): boolean;
|
|
||||||
/** ESC M */ reverseIndex(): boolean;
|
|
||||||
/** ESC c */ fullReset(): boolean;
|
|
||||||
/** ESC n */
|
|
||||||
/** ESC o */
|
|
||||||
/** ESC | */
|
|
||||||
/** ESC } */
|
|
||||||
/** ESC ~ */ setgLevel(level: number): boolean;
|
|
||||||
/** ESC # 8 */ screenAlignmentPattern(): boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IParseStack {
|
|
||||||
paused: boolean;
|
|
||||||
cursorStartX: number;
|
|
||||||
cursorStartY: number;
|
|
||||||
decodedLength: number;
|
|
||||||
position: number;
|
|
||||||
}
|
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
* Minimal async helpers for xterm.js core.
|
* Minimal async helpers for xterm.js core.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { DisposableStore, IDisposable, toDisposable } from 'common/Lifecycle';
|
import { DisposableStore, IDisposable, toDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export function timeout(millis: number): Promise<void> {
|
export function timeout(millis: number): Promise<void> {
|
||||||
return new Promise(resolve => setTimeout(resolve, millis));
|
return new Promise(resolve => setTimeout(resolve, millis));
|
||||||
@@ -3,7 +3,9 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ICharset } from 'common/Types';
|
export interface ICharset {
|
||||||
|
[key: string]: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The character sets supported by the terminal. These enable several languages
|
* The character sets supported by the terminal. These enable several languages
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { CircularList } from 'common/CircularList';
|
import { CircularList } from 'common/base/CircularList';
|
||||||
|
|
||||||
describe('CircularList', () => {
|
describe('CircularList', () => {
|
||||||
describe('push', () => {
|
describe('push', () => {
|
||||||
@@ -3,9 +3,8 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ICircularList } from 'common/Types';
|
import { Disposable } from 'common/base/Lifecycle';
|
||||||
import { Disposable } from 'common/Lifecycle';
|
import { Emitter, type IEvent } from 'common/base/Event';
|
||||||
import { Emitter } from 'common/Event';
|
|
||||||
|
|
||||||
export interface IInsertEvent {
|
export interface IInsertEvent {
|
||||||
index: number;
|
index: number;
|
||||||
@@ -17,6 +16,28 @@ export interface IDeleteEvent {
|
|||||||
amount: number;
|
amount: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ICircularList<T> {
|
||||||
|
length: number;
|
||||||
|
maxLength: number;
|
||||||
|
isFull: boolean;
|
||||||
|
|
||||||
|
onDeleteEmitter: Emitter<IDeleteEvent>;
|
||||||
|
onDelete: IEvent<IDeleteEvent>;
|
||||||
|
onInsertEmitter: Emitter<IInsertEvent>;
|
||||||
|
onInsert: IEvent<IInsertEvent>;
|
||||||
|
onTrimEmitter: Emitter<number>;
|
||||||
|
onTrim: IEvent<number>;
|
||||||
|
|
||||||
|
get(index: number): T | undefined;
|
||||||
|
set(index: number, value: T): void;
|
||||||
|
push(value: T): void;
|
||||||
|
recycle(): T;
|
||||||
|
pop(): T | undefined;
|
||||||
|
splice(start: number, deleteCount: number, ...items: T[]): void;
|
||||||
|
trimStart(count: number): void;
|
||||||
|
shiftElements(start: number, count: number, offset: number): void;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a circular list; a list with a maximum size that wraps around when push is called,
|
* Represents a circular list; a list with a maximum size that wraps around when push is called,
|
||||||
* overriding values at the start of the list.
|
* overriding values at the start of the list.
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { channels, color, css, rgb, rgba, toPaddedHex, contrastRatio } from 'common/Color';
|
import { channels, color, css, rgb, rgba, toPaddedHex, contrastRatio } from 'common/base/Color';
|
||||||
|
|
||||||
describe('Color', () => {
|
describe('Color', () => {
|
||||||
|
|
||||||
@@ -3,7 +3,8 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { IColor, IColorRGB } from 'common/Types';
|
import type { IColor } from 'common/base/ColorTypes';
|
||||||
|
import type { IColorRGB } from 'common/base/ColorTypes';
|
||||||
|
|
||||||
let $r = 0;
|
let $r = 0;
|
||||||
let $g = 0;
|
let $g = 0;
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2018 The xterm.js authors. All rights reserved.
|
||||||
|
* @license MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
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];
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { Emitter } from 'common/Event';
|
import { Emitter } from 'common/base/Event';
|
||||||
|
|
||||||
describe('Emitter', () => {
|
describe('Emitter', () => {
|
||||||
it('should fire with 0 listeners without error', () => {
|
it('should fire with 0 listeners without error', () => {
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
* Simplified from VS Code's event.ts - no leak detection/profiling.
|
* Simplified from VS Code's event.ts - no leak detection/profiling.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { IDisposable, DisposableStore, toDisposable } from 'common/Lifecycle';
|
import { IDisposable, DisposableStore, toDisposable } from 'common/base/Lifecycle';
|
||||||
|
|
||||||
export interface IEvent<T> {
|
export interface IEvent<T> {
|
||||||
(listener: (e: T) => any, thisArgs?: any, disposables?: IDisposable[] | DisposableStore): IDisposable;
|
(listener: (e: T) => any, thisArgs?: any, disposables?: IDisposable[] | DisposableStore): IDisposable;
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { FourKeyMap, TwoKeyMap } from 'common/MultiKeyMap';
|
import { FourKeyMap, TwoKeyMap } from 'common/base/MultiKeyMap';
|
||||||
|
|
||||||
const strictEqual = assert.strictEqual;
|
const strictEqual = assert.strictEqual;
|
||||||
|
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { LimitedStringBuilder, StringBuilder } from 'common/StringBuilder';
|
import { LimitedStringBuilder, StringBuilder } from 'common/base/StringBuilder';
|
||||||
|
|
||||||
describe('StringBuilder', () => {
|
describe('StringBuilder', () => {
|
||||||
it('should start empty', () => {
|
it('should start empty', () => {
|
||||||
@@ -3,7 +3,9 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import type { ILogService } from 'common/services/Services';
|
export interface ITaskQueueLogService {
|
||||||
|
warn(message: any, ...optionalParams: any[]): void;
|
||||||
|
}
|
||||||
|
|
||||||
interface ITaskQueue {
|
interface ITaskQueue {
|
||||||
/**
|
/**
|
||||||
@@ -34,9 +36,9 @@ abstract class TaskQueue implements ITaskQueue {
|
|||||||
private _tasks: (() => boolean | void)[] = [];
|
private _tasks: (() => boolean | void)[] = [];
|
||||||
private _idleCallback?: number;
|
private _idleCallback?: number;
|
||||||
private _i = 0;
|
private _i = 0;
|
||||||
protected readonly _logService: ILogService;
|
protected readonly _logService: ITaskQueueLogService;
|
||||||
|
|
||||||
constructor(logService: ILogService) {
|
constructor(logService: ITaskQueueLogService) {
|
||||||
this._logService = logService;
|
this._logService = logService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,7 +158,7 @@ export const IdleTaskQueue = ('requestIdleCallback' in globalThis) ? IdleTaskQue
|
|||||||
export class DebouncedIdleTask {
|
export class DebouncedIdleTask {
|
||||||
private _queue: ITaskQueue;
|
private _queue: ITaskQueue;
|
||||||
|
|
||||||
constructor(logService: ILogService) {
|
constructor(logService: ITaskQueueLogService) {
|
||||||
this._queue = new IdleTaskQueue(logService);
|
this._queue = new IdleTaskQueue(logService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { assert } from 'chai';
|
import { assert } from 'chai';
|
||||||
import { StringToUtf32, stringFromCodePoint, Utf8ToUtf32, utf32ToString } from 'common/input/TextDecoder';
|
import { StringToUtf32, stringFromCodePoint, Utf8ToUtf32, utf32ToString } from 'common/base/TextDecoder';
|
||||||
|
|
||||||
|
|
||||||
// convert UTF32 codepoints to string
|
// convert UTF32 codepoints to string
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"extends": "../../tsconfig-library-base",
|
||||||
|
"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/*": ["./*"],
|
||||||
|
"common/buffer/*": ["../buffer/*"],
|
||||||
|
"common/parser/*": ["../parser/*"],
|
||||||
|
"common/input/*": ["../input/*"],
|
||||||
|
"common/services/*": ["../services/*"],
|
||||||
|
"common/terminal/*": ["../terminal/*"],
|
||||||
|
"common/public/*": ["../public/*"],
|
||||||
|
"common/*": ["../*"],
|
||||||
|
"*": ["../../*"]
|
||||||
|
},
|
||||||
|
"outDir": "../../../out/common/base",
|
||||||
|
"rootDir": "."
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"./**/*",
|
||||||
|
"../../../typings/xterm.d.ts"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"**/*.test.ts"
|
||||||
|
]
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user