From 921da1a2ea4c72fd70ebd83edea1e94a9127fcee Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 23 Aug 2023 04:47:53 -0700 Subject: [PATCH] Ignore no-unused-vars in .api, organize all remaining imports --- .eslintrc.json | 5 +- addons/xterm-addon-canvas/src/CanvasAddon.ts | 8 +-- .../xterm-addon-canvas/src/CanvasRenderer.ts | 4 +- .../src/CursorRenderLayer.ts | 20 +++---- .../xterm-addon-canvas/src/LinkRenderLayer.ts | 12 ++-- .../src/SerializeAddon.ts | 5 +- .../test/SerializeAddon.api.ts | 2 - addons/xterm-addon-webgl/src/GlyphRenderer.ts | 13 ++-- .../src/RectangleRenderer.ts | 22 +++---- addons/xterm-addon-webgl/src/WebglRenderer.ts | 23 ++++--- .../src/renderLayer/BaseRenderLayer.ts | 12 ++-- .../test/WebglRenderer.api.ts | 2 +- src/browser/Linkifier2.ts | 12 ++-- src/browser/Terminal.ts | 60 +++++++++---------- src/browser/Types.d.ts | 7 +-- src/browser/Viewport.ts | 10 ++-- src/browser/public/Terminal.ts | 14 ++--- .../renderer/shared/CellColorResolver.ts | 2 +- src/browser/renderer/shared/RendererUtils.ts | 2 +- src/browser/renderer/shared/TextureAtlas.ts | 16 ++--- src/browser/services/SelectionService.ts | 18 +++--- src/browser/services/ThemeService.ts | 2 +- src/common/buffer/BufferLine.ts | 8 +-- src/common/buffer/BufferSet.ts | 8 +-- src/common/input/WriteBuffer.ts | 2 +- src/common/services/BufferService.ts | 8 +-- src/common/services/CoreService.ts | 6 +- src/common/services/DecorationService.ts | 2 +- src/common/services/OptionsService.ts | 6 +- src/common/services/UnicodeService.ts | 4 +- 30 files changed, 151 insertions(+), 164 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index b748c5de..7e8be09c 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -237,7 +237,10 @@ }, "overrides": [ { - "files": ["**/*.test.ts"], + "files": [ + "**/*.api.ts", + "**/*.test.ts" + ], "rules": { "object-curly-spacing": "off", "max-len": "off", diff --git a/addons/xterm-addon-canvas/src/CanvasAddon.ts b/addons/xterm-addon-canvas/src/CanvasAddon.ts index 2fbec324..91438a4c 100644 --- a/addons/xterm-addon-canvas/src/CanvasAddon.ts +++ b/addons/xterm-addon-canvas/src/CanvasAddon.ts @@ -3,14 +3,14 @@ * @license MIT */ -import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IRenderService, ISelectionService, IThemeService } from 'browser/services/Services'; +import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services'; import { ITerminal } from 'browser/Types'; -import { CanvasRenderer } from './CanvasRenderer'; -import { IBufferService, ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services'; -import { ITerminalAddon, Terminal } from 'xterm'; import { EventEmitter, forwardEvent } from 'common/EventEmitter'; import { Disposable, toDisposable } from 'common/Lifecycle'; import { setTraceLogger } from 'common/services/LogService'; +import { IBufferService, IDecorationService, ILogService } from 'common/services/Services'; +import { ITerminalAddon, Terminal } from 'xterm'; +import { CanvasRenderer } from './CanvasRenderer'; export class CanvasAddon extends Disposable implements ITerminalAddon { private _terminal?: Terminal; diff --git a/addons/xterm-addon-canvas/src/CanvasRenderer.ts b/addons/xterm-addon-canvas/src/CanvasRenderer.ts index 2109654e..cd05f921 100644 --- a/addons/xterm-addon-canvas/src/CanvasRenderer.ts +++ b/addons/xterm-addon-canvas/src/CanvasRenderer.ts @@ -3,12 +3,12 @@ * @license MIT */ +import { ILinkifier2 } from 'browser/Types'; import { removeTerminalFromCache } from 'browser/renderer/shared/CharAtlasCache'; import { observeDevicePixelDimensions } from 'browser/renderer/shared/DevicePixelObserver'; import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils'; import { IRenderDimensions, IRenderer, IRequestRedrawEvent } from 'browser/renderer/shared/Types'; -import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, ISelectionService, IThemeService } from 'browser/services/Services'; -import { ILinkifier2 } from 'browser/Types'; +import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IThemeService } from 'browser/services/Services'; import { EventEmitter, forwardEvent } from 'common/EventEmitter'; import { Disposable, toDisposable } from 'common/Lifecycle'; import { IBufferService, ICoreService, IDecorationService, IOptionsService } from 'common/services/Services'; diff --git a/addons/xterm-addon-canvas/src/CursorRenderLayer.ts b/addons/xterm-addon-canvas/src/CursorRenderLayer.ts index 2ef1d072..9f4ac896 100644 --- a/addons/xterm-addon-canvas/src/CursorRenderLayer.ts +++ b/addons/xterm-addon-canvas/src/CursorRenderLayer.ts @@ -3,18 +3,17 @@ * @license MIT */ +import { CursorBlinkStateManager } from 'browser/renderer/shared/CursorBlinkStateManager'; import { IRenderDimensions, IRequestRedrawEvent } from 'browser/renderer/shared/Types'; -import { BaseRenderLayer } from './BaseRenderLayer'; -import { ICellData } from 'common/Types'; -import { CellData } from 'common/buffer/CellData'; -import { IColorSet, ReadonlyColorSet } from 'browser/Types'; -import { IBufferService, IOptionsService, ICoreService, IDecorationService } from 'common/services/Services'; -import { IEventEmitter } from 'common/EventEmitter'; import { ICoreBrowserService, IThemeService } from 'browser/services/Services'; -import { Terminal } from 'xterm'; +import { IEventEmitter } from 'common/EventEmitter'; import { toDisposable } from 'common/Lifecycle'; import { isFirefox } from 'common/Platform'; -import { CursorBlinkStateManager } from 'browser/renderer/shared/CursorBlinkStateManager'; +import { ICellData } from 'common/Types'; +import { CellData } from 'common/buffer/CellData'; +import { IBufferService, ICoreService, IDecorationService, IOptionsService } from 'common/services/Services'; +import { Terminal } from 'xterm'; +import { BaseRenderLayer } from './BaseRenderLayer'; interface ICursorState { x: number; @@ -24,11 +23,6 @@ interface ICursorState { width: number; } -/** - * The time between cursor blinks. - */ -const BLINK_INTERVAL = 600; - export class CursorRenderLayer extends BaseRenderLayer { private _state: ICursorState; private _cursorRenderers: {[key: string]: (x: number, y: number, cell: ICellData) => void}; diff --git a/addons/xterm-addon-canvas/src/LinkRenderLayer.ts b/addons/xterm-addon-canvas/src/LinkRenderLayer.ts index 2d4c217c..882f7d8c 100644 --- a/addons/xterm-addon-canvas/src/LinkRenderLayer.ts +++ b/addons/xterm-addon-canvas/src/LinkRenderLayer.ts @@ -3,14 +3,14 @@ * @license MIT */ -import { IRenderDimensions } from 'browser/renderer/shared/Types'; -import { BaseRenderLayer } from './BaseRenderLayer'; -import { INVERTED_DEFAULT_COLOR } from 'browser/renderer/shared/Constants'; -import { ICoreBrowserService, IThemeService } from 'browser/services/Services'; -import { IColorSet, ILinkifierEvent, ILinkifier2, ReadonlyColorSet } from 'browser/Types'; -import { IBufferService, IDecorationService, IOptionsService } from 'common/services/Services'; +import { ILinkifier2, ILinkifierEvent } from 'browser/Types'; import { is256Color } from 'browser/renderer/shared/CharAtlasUtils'; +import { INVERTED_DEFAULT_COLOR } from 'browser/renderer/shared/Constants'; +import { IRenderDimensions } from 'browser/renderer/shared/Types'; +import { ICoreBrowserService, IThemeService } from 'browser/services/Services'; +import { IBufferService, IDecorationService, IOptionsService } from 'common/services/Services'; import { Terminal } from 'xterm'; +import { BaseRenderLayer } from './BaseRenderLayer'; export class LinkRenderLayer extends BaseRenderLayer { private _state: ILinkifierEvent | undefined; diff --git a/addons/xterm-addon-serialize/src/SerializeAddon.ts b/addons/xterm-addon-serialize/src/SerializeAddon.ts index 737d529a..ace31315 100644 --- a/addons/xterm-addon-serialize/src/SerializeAddon.ts +++ b/addons/xterm-addon-serialize/src/SerializeAddon.ts @@ -5,10 +5,9 @@ * (EXPERIMENTAL) This Addon is still under development */ -import { Terminal, ITerminalAddon, IBuffer, IBufferCell, IBufferRange } from 'xterm'; -import { IColorSet } from 'browser/Types'; -import { IAttributeData, IColor } from 'common/Types'; import { DEFAULT_ANSI_COLORS } from 'browser/services/ThemeService'; +import { IAttributeData, IColor } from 'common/Types'; +import { IBuffer, IBufferCell, IBufferRange, ITerminalAddon, Terminal } from 'xterm'; function constrain(value: number, low: number, high: number): number { return Math.max(low, Math.min(value, high)); diff --git a/addons/xterm-addon-serialize/test/SerializeAddon.api.ts b/addons/xterm-addon-serialize/test/SerializeAddon.api.ts index 5128910a..522d3010 100644 --- a/addons/xterm-addon-serialize/test/SerializeAddon.api.ts +++ b/addons/xterm-addon-serialize/test/SerializeAddon.api.ts @@ -204,7 +204,6 @@ describe('SerializeAddon', () => { sgr(NO_INVISIBLE) + line, sgr(NO_STRIKETHROUGH) + line ]; - const rows = lines.length; await writeSync(page, lines.join('\\r\\n')); assert.equal(await page.evaluate(`serializeAddon.serialize();`), lines.join('\r\n')); }); @@ -593,7 +592,6 @@ const FG_RGB_GREEN = '38;2;0;255;0'; const FG_RGB_YELLOW = '38;2;255;255;0'; const FG_RESET = '39'; - const BG_P16_RED = '41'; const BG_P16_GREEN = '42'; const BG_P16_YELLOW = '43'; diff --git a/addons/xterm-addon-webgl/src/GlyphRenderer.ts b/addons/xterm-addon-webgl/src/GlyphRenderer.ts index 269d9374..4dc80d33 100644 --- a/addons/xterm-addon-webgl/src/GlyphRenderer.ts +++ b/addons/xterm-addon-webgl/src/GlyphRenderer.ts @@ -3,16 +3,15 @@ * @license MIT */ -import { createProgram, GLTexture, PROJECTION_MATRIX } from './WebglUtils'; -import { IWebGL2RenderingContext, IWebGLVertexArrayObject, IRenderModel } from './Types'; -import { NULL_CELL_CODE } from 'common/buffer/Constants'; -import { Terminal } from 'xterm'; -import { IRasterizedGlyph, IRenderDimensions, ITextureAtlas } from 'browser/renderer/shared/Types'; -import { Disposable, toDisposable } from 'common/Lifecycle'; import { throwIfFalsy } from 'browser/renderer/shared/RendererUtils'; import { TextureAtlas } from 'browser/renderer/shared/TextureAtlas'; -import { ILogService } from 'common/services/Services'; +import { IRasterizedGlyph, IRenderDimensions, ITextureAtlas } from 'browser/renderer/shared/Types'; +import { NULL_CELL_CODE } from 'common/buffer/Constants'; +import { Disposable, toDisposable } from 'common/Lifecycle'; import { traceCall } from 'common/services/LogService'; +import { Terminal } from 'xterm'; +import { IRenderModel, IWebGL2RenderingContext, IWebGLVertexArrayObject } from './Types'; +import { createProgram, GLTexture, PROJECTION_MATRIX } from './WebglUtils'; interface IVertices { attributes: Float32Array; diff --git a/addons/xterm-addon-webgl/src/RectangleRenderer.ts b/addons/xterm-addon-webgl/src/RectangleRenderer.ts index b2e5d0fa..5e9c364e 100644 --- a/addons/xterm-addon-webgl/src/RectangleRenderer.ts +++ b/addons/xterm-addon-webgl/src/RectangleRenderer.ts @@ -3,18 +3,17 @@ * @license MIT */ -import { createProgram, expandFloat32Array, PROJECTION_MATRIX } from './WebglUtils'; -import { IRenderModel, IWebGLVertexArrayObject, IWebGL2RenderingContext } from './Types'; -import { Attributes, BgFlags, FgFlags } from 'common/buffer/Constants'; -import { Terminal } from 'xterm'; -import { IColor } from 'common/Types'; -import { IColorSet, ReadonlyColorSet } from 'browser/Types'; -import { IRenderDimensions } from 'browser/renderer/shared/Types'; -import { RENDER_MODEL_BG_OFFSET, RENDER_MODEL_FG_OFFSET, RENDER_MODEL_INDICIES_PER_CELL } from './RenderModel'; -import { Disposable, toDisposable } from 'common/Lifecycle'; -import { DIM_OPACITY } from 'browser/renderer/shared/Constants'; import { throwIfFalsy } from 'browser/renderer/shared/RendererUtils'; +import { IRenderDimensions } from 'browser/renderer/shared/Types'; import { IThemeService } from 'browser/services/Services'; +import { ReadonlyColorSet } from 'browser/Types'; +import { Attributes, FgFlags } from 'common/buffer/Constants'; +import { Disposable, toDisposable } from 'common/Lifecycle'; +import { IColor } from 'common/Types'; +import { Terminal } from 'xterm'; +import { RENDER_MODEL_BG_OFFSET, RENDER_MODEL_FG_OFFSET, RENDER_MODEL_INDICIES_PER_CELL } from './RenderModel'; +import { IRenderModel, IWebGL2RenderingContext, IWebGLVertexArrayObject } from './Types'; +import { createProgram, expandFloat32Array, PROJECTION_MATRIX } from './WebglUtils'; const enum VertexAttribLocations { POSITION = 0, @@ -67,7 +66,6 @@ class Vertices { // Work variables to avoid garbage collection let $rgba = 0; -let $isDefault = false; let $x1 = 0; let $y1 = 0; let $r = 0; @@ -310,7 +308,6 @@ export class RectangleRenderer extends Disposable { } private _updateRectangle(vertices: Vertices, offset: number, fg: number, bg: number, startX: number, endX: number, y: number): void { - $isDefault = false; if (fg & FgFlags.INVERSE) { switch (fg & Attributes.CM_MASK) { case Attributes.CM_P16: @@ -336,7 +333,6 @@ export class RectangleRenderer extends Disposable { case Attributes.CM_DEFAULT: default: $rgba = this._themeService.colors.background.rgba; - $isDefault = true; } } diff --git a/addons/xterm-addon-webgl/src/WebglRenderer.ts b/addons/xterm-addon-webgl/src/WebglRenderer.ts index ae770410..20db5faf 100644 --- a/addons/xterm-addon-webgl/src/WebglRenderer.ts +++ b/addons/xterm-addon-webgl/src/WebglRenderer.ts @@ -4,30 +4,29 @@ */ import { addDisposableDomListener } from 'browser/Lifecycle'; +import { ITerminal } from 'browser/Types'; import { CellColorResolver } from 'browser/renderer/shared/CellColorResolver'; import { acquireTextureAtlas, removeTerminalFromCache } from 'browser/renderer/shared/CharAtlasCache'; +import { CursorBlinkStateManager } from 'browser/renderer/shared/CursorBlinkStateManager'; import { observeDevicePixelDimensions } from 'browser/renderer/shared/DevicePixelObserver'; -import { createRenderDimensions, throwIfFalsy } from 'browser/renderer/shared/RendererUtils'; -import { TextureAtlas } from 'browser/renderer/shared/TextureAtlas'; +import { createRenderDimensions } from 'browser/renderer/shared/RendererUtils'; import { IRenderDimensions, IRenderer, IRequestRedrawEvent, ITextureAtlas } from 'browser/renderer/shared/Types'; -import { ICharacterJoinerService, ICharSizeService, ICoreBrowserService, IThemeService } from 'browser/services/Services'; -import { ITerminal } from 'browser/Types'; +import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IThemeService } from 'browser/services/Services'; +import { EventEmitter, forwardEvent } from 'common/EventEmitter'; +import { Disposable, MutableDisposable, getDisposeArrayDisposable, toDisposable } from 'common/Lifecycle'; +import { CharData, IBufferLine, ICellData } from 'common/Types'; import { AttributeData } from 'common/buffer/AttributeData'; import { CellData } from 'common/buffer/CellData'; import { Attributes, Content, NULL_CELL_CHAR, NULL_CELL_CODE } from 'common/buffer/Constants'; -import { EventEmitter, forwardEvent } from 'common/EventEmitter'; -import { Disposable, MutableDisposable, getDisposeArrayDisposable, toDisposable } from 'common/Lifecycle'; -import { ICoreService, IDecorationService, ILogService, IOptionsService } from 'common/services/Services'; -import { CharData, IBufferLine, ICellData } from 'common/Types'; +import { traceCall } from 'common/services/LogService'; +import { ICoreService, IDecorationService, IOptionsService } from 'common/services/Services'; import { IDisposable, Terminal } from 'xterm'; import { GlyphRenderer } from './GlyphRenderer'; import { RectangleRenderer } from './RectangleRenderer'; -import { CursorBlinkStateManager } from 'browser/renderer/shared/CursorBlinkStateManager'; +import { COMBINED_CHAR_BIT_MASK, RENDER_MODEL_BG_OFFSET, RENDER_MODEL_EXT_OFFSET, RENDER_MODEL_FG_OFFSET, RENDER_MODEL_INDICIES_PER_CELL, RenderModel } from './RenderModel'; +import { IWebGL2RenderingContext } from './Types'; import { LinkRenderLayer } from './renderLayer/LinkRenderLayer'; import { IRenderLayer } from './renderLayer/Types'; -import { COMBINED_CHAR_BIT_MASK, RenderModel, RENDER_MODEL_BG_OFFSET, RENDER_MODEL_EXT_OFFSET, RENDER_MODEL_FG_OFFSET, RENDER_MODEL_INDICIES_PER_CELL } from './RenderModel'; -import { IWebGL2RenderingContext } from './Types'; -import { traceCall } from 'common/services/LogService'; export class WebglRenderer extends Disposable implements IRenderer { private _renderLayers: IRenderLayer[]; diff --git a/addons/xterm-addon-webgl/src/renderLayer/BaseRenderLayer.ts b/addons/xterm-addon-webgl/src/renderLayer/BaseRenderLayer.ts index 6296e2f1..f5449c4d 100644 --- a/addons/xterm-addon-webgl/src/renderLayer/BaseRenderLayer.ts +++ b/addons/xterm-addon-webgl/src/renderLayer/BaseRenderLayer.ts @@ -3,17 +3,17 @@ * @license MIT */ -import { IRenderLayer } from './Types'; +import { ReadonlyColorSet } from 'browser/Types'; import { acquireTextureAtlas } from 'browser/renderer/shared/CharAtlasCache'; -import { Terminal } from 'xterm'; -import { IColorSet, ReadonlyColorSet } from 'browser/Types'; import { TEXT_BASELINE } from 'browser/renderer/shared/Constants'; -import { ICoreBrowserService, IThemeService } from 'browser/services/Services'; -import { IRenderDimensions, ITextureAtlas } from 'browser/renderer/shared/Types'; -import { CellData } from 'common/buffer/CellData'; import { throwIfFalsy } from 'browser/renderer/shared/RendererUtils'; +import { IRenderDimensions, ITextureAtlas } from 'browser/renderer/shared/Types'; +import { ICoreBrowserService, IThemeService } from 'browser/services/Services'; import { Disposable, toDisposable } from 'common/Lifecycle'; +import { CellData } from 'common/buffer/CellData'; import { IOptionsService } from 'common/services/Services'; +import { Terminal } from 'xterm'; +import { IRenderLayer } from './Types'; export abstract class BaseRenderLayer extends Disposable implements IRenderLayer { private _canvas: HTMLCanvasElement; diff --git a/addons/xterm-addon-webgl/test/WebglRenderer.api.ts b/addons/xterm-addon-webgl/test/WebglRenderer.api.ts index 8d84b200..5d9cc0f0 100644 --- a/addons/xterm-addon-webgl/test/WebglRenderer.api.ts +++ b/addons/xterm-addon-webgl/test/WebglRenderer.api.ts @@ -6,7 +6,7 @@ import { assert } from 'chai'; import { Browser, Page } from 'playwright'; import { ITheme } from 'xterm'; -import { getBrowserType, launchBrowser, openTerminal, pollFor, timeout, writeSync } from '../../../out-test/api/TestUtils'; +import { getBrowserType, launchBrowser, openTerminal, pollFor, writeSync } from '../../../out-test/api/TestUtils'; import { ITerminalOptions } from '../../../src/common/Types'; const APP = 'http://127.0.0.1:3001/test'; diff --git a/src/browser/Linkifier2.ts b/src/browser/Linkifier2.ts index 64467426..28002e04 100644 --- a/src/browser/Linkifier2.ts +++ b/src/browser/Linkifier2.ts @@ -3,13 +3,13 @@ * @license MIT */ -import { ILinkifier2, ILinkProvider, IBufferCellPosition, ILink, ILinkifierEvent, ILinkDecorations, ILinkWithState } from 'browser/Types'; -import { IDisposable } from 'common/Types'; -import { IMouseService, IRenderService } from './services/Services'; -import { IBufferService } from 'common/services/Services'; -import { EventEmitter, IEvent } from 'common/EventEmitter'; -import { Disposable, getDisposeArrayDisposable, disposeArray, toDisposable } from 'common/Lifecycle'; import { addDisposableDomListener } from 'browser/Lifecycle'; +import { IBufferCellPosition, ILink, ILinkDecorations, ILinkProvider, ILinkWithState, ILinkifier2, ILinkifierEvent } from 'browser/Types'; +import { EventEmitter } from 'common/EventEmitter'; +import { Disposable, disposeArray, getDisposeArrayDisposable, toDisposable } from 'common/Lifecycle'; +import { IDisposable } from 'common/Types'; +import { IBufferService } from 'common/services/Services'; +import { IMouseService, IRenderService } from './services/Services'; export class Linkifier2 extends Disposable implements ILinkifier2 { private _element: HTMLElement | undefined; diff --git a/src/browser/Terminal.ts b/src/browser/Terminal.ts index b17f0dd8..24dace2f 100644 --- a/src/browser/Terminal.ts +++ b/src/browser/Terminal.ts @@ -21,42 +21,42 @@ * http://linux.die.net/man/7/urxvt */ -import { ICompositionHelper, ITerminal, IBrowser, CustomKeyEventHandler, IViewport, ILinkifier2, CharacterJoinerHandler, IBufferRange, IBufferElementProvider } from 'browser/Types'; -import { IRenderer } from 'browser/renderer/shared/Types'; -import { CompositionHelper } from 'browser/input/CompositionHelper'; -import { Viewport } from 'browser/Viewport'; -import { rightClickHandler, moveTextAreaUnderMouseCursor, handlePasteEvent, copyHandler, paste } from 'browser/Clipboard'; -import { C0, C1_ESCAPED } from 'common/data/EscapeSequences'; -import { WindowsOptionsReportType } from '../common/InputHandler'; -import { SelectionService } from 'browser/services/SelectionService'; -import * as Browser from 'common/Platform'; +import { copyHandler, handlePasteEvent, moveTextAreaUnderMouseCursor, paste, rightClickHandler } from 'browser/Clipboard'; import { addDisposableDomListener } from 'browser/Lifecycle'; -import * as Strings from 'browser/LocalizableStrings'; -import { AccessibilityManager } from './AccessibilityManager'; -import { ITheme, IMarker, IDisposable, ILinkProvider, IDecorationOptions, IDecoration } from 'xterm'; -import { DomRenderer } from 'browser/renderer/dom/DomRenderer'; -import { KeyboardResultType, CoreMouseEventType, CoreMouseButton, CoreMouseAction, ITerminalOptions, ScrollSource, IColorEvent, ColorIndex, ColorRequestType, SpecialColorIndex } from 'common/Types'; -import { evaluateKeyboardEvent } from 'common/input/Keyboard'; -import { EventEmitter, IEvent, forwardEvent } from 'common/EventEmitter'; -import { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine'; -import { RenderService } from 'browser/services/RenderService'; -import { ICharSizeService, IRenderService, IMouseService, ISelectionService, ICoreBrowserService, ICharacterJoinerService, IThemeService } from 'browser/services/Services'; -import { CharSizeService } from 'browser/services/CharSizeService'; -import { IBuffer } from 'common/buffer/Types'; -import { MouseService } from 'browser/services/MouseService'; import { Linkifier2 } from 'browser/Linkifier2'; -import { CoreBrowserService } from 'browser/services/CoreBrowserService'; -import { CoreTerminal } from 'common/CoreTerminal'; -import { color, rgba } from 'common/Color'; -import { CharacterJoinerService } from 'browser/services/CharacterJoinerService'; -import { toRgbString } from 'common/input/XParseColor'; +import * as Strings from 'browser/LocalizableStrings'; +import { OscLinkProvider } from 'browser/OscLinkProvider'; +import { CharacterJoinerHandler, CustomKeyEventHandler, IBrowser, IBufferRange, ICompositionHelper, ILinkifier2, ITerminal, IViewport } from 'browser/Types'; +import { Viewport } from 'browser/Viewport'; import { BufferDecorationRenderer } from 'browser/decorations/BufferDecorationRenderer'; import { OverviewRulerRenderer } from 'browser/decorations/OverviewRulerRenderer'; +import { CompositionHelper } from 'browser/input/CompositionHelper'; +import { DomRenderer } from 'browser/renderer/dom/DomRenderer'; +import { IRenderer } from 'browser/renderer/shared/Types'; +import { CharSizeService } from 'browser/services/CharSizeService'; +import { CharacterJoinerService } from 'browser/services/CharacterJoinerService'; +import { CoreBrowserService } from 'browser/services/CoreBrowserService'; +import { MouseService } from 'browser/services/MouseService'; +import { RenderService } from 'browser/services/RenderService'; +import { SelectionService } from 'browser/services/SelectionService'; +import { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, IMouseService, IRenderService, ISelectionService, IThemeService } from 'browser/services/Services'; +import { ThemeService } from 'browser/services/ThemeService'; +import { color, rgba } from 'common/Color'; +import { CoreTerminal } from 'common/CoreTerminal'; +import { EventEmitter, IEvent, forwardEvent } from 'common/EventEmitter'; +import { toDisposable } from 'common/Lifecycle'; +import * as Browser from 'common/Platform'; +import { ColorRequestType, CoreMouseAction, CoreMouseButton, CoreMouseEventType, IColorEvent, ITerminalOptions, KeyboardResultType, ScrollSource, SpecialColorIndex } from 'common/Types'; +import { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine'; +import { IBuffer } from 'common/buffer/Types'; +import { C0, C1_ESCAPED } from 'common/data/EscapeSequences'; +import { evaluateKeyboardEvent } from 'common/input/Keyboard'; +import { toRgbString } from 'common/input/XParseColor'; import { DecorationService } from 'common/services/DecorationService'; import { IDecorationService } from 'common/services/Services'; -import { OscLinkProvider } from 'browser/OscLinkProvider'; -import { toDisposable } from 'common/Lifecycle'; -import { ThemeService } from 'browser/services/ThemeService'; +import { IDecoration, IDecorationOptions, IDisposable, ILinkProvider, IMarker } from 'xterm'; +import { WindowsOptionsReportType } from '../common/InputHandler'; +import { AccessibilityManager } from './AccessibilityManager'; // Let it work inside Node.js for automated testing purposes. const document: Document = (typeof window !== 'undefined') ? window.document : null as any; diff --git a/src/browser/Types.d.ts b/src/browser/Types.d.ts index 776790cd..f2b5e220 100644 --- a/src/browser/Types.d.ts +++ b/src/browser/Types.d.ts @@ -3,12 +3,11 @@ * @license MIT */ -import { IDecorationOptions, IDecoration, IDisposable, IMarker, Terminal as ITerminalApi } from 'xterm'; import { IEvent } from 'common/EventEmitter'; -import { ICoreTerminal, CharData, ITerminalOptions, IColor } from 'common/Types'; -import { IMouseService, IRenderService } from './services/Services'; +import { CharData, IColor, ICoreTerminal, ITerminalOptions } from 'common/Types'; import { IBuffer } from 'common/buffer/Types'; -import { IFunctionIdentifier, IParams } from 'common/parser/Types'; +import { IDisposable, Terminal as ITerminalApi } from 'xterm'; +import { IMouseService, IRenderService } from './services/Services'; /** * A portion of the public API that are implemented identially internally and simply passed through. diff --git a/src/browser/Viewport.ts b/src/browser/Viewport.ts index 049bf77c..c6e8732f 100644 --- a/src/browser/Viewport.ts +++ b/src/browser/Viewport.ts @@ -3,14 +3,14 @@ * @license MIT */ -import { Disposable } from 'common/Lifecycle'; import { addDisposableDomListener } from 'browser/Lifecycle'; -import { IColorSet, IViewport, ReadonlyColorSet } from 'browser/Types'; -import { ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services'; -import { IBufferService, IOptionsService } from 'common/services/Services'; -import { IBuffer } from 'common/buffer/Types'; +import { IViewport, ReadonlyColorSet } from 'browser/Types'; import { IRenderDimensions } from 'browser/renderer/shared/Types'; +import { ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services'; import { EventEmitter } from 'common/EventEmitter'; +import { Disposable } from 'common/Lifecycle'; +import { IBuffer } from 'common/buffer/Types'; +import { IBufferService, IOptionsService } from 'common/services/Services'; const FALLBACK_SCROLL_BAR_WIDTH = 15; diff --git a/src/browser/public/Terminal.ts b/src/browser/public/Terminal.ts index 77f8fdde..4db5f7aa 100644 --- a/src/browser/public/Terminal.ts +++ b/src/browser/public/Terminal.ts @@ -3,17 +3,17 @@ * @license MIT */ -import { Terminal as ITerminalApi, IMarker, IDisposable, ILocalizableStrings, ITerminalAddon, IBufferNamespace as IBufferNamespaceApi, IParser, ILinkProvider, IUnicodeHandling, IModes, IDecorationOptions, IDecoration, IBufferElementProvider, ITerminalInitOnlyOptions } from 'xterm'; -import { IBufferRange, ITerminal } from 'browser/Types'; -import { Terminal as TerminalCore } from 'browser/Terminal'; import * as Strings from 'browser/LocalizableStrings'; +import { Terminal as TerminalCore } from 'browser/Terminal'; +import { IBufferRange, ITerminal } from 'browser/Types'; import { IEvent } from 'common/EventEmitter'; -import { ParserApi } from 'common/public/ParserApi'; -import { UnicodeApi } from 'common/public/UnicodeApi'; +import { Disposable } from 'common/Lifecycle'; +import { ITerminalOptions } from 'common/Types'; import { AddonManager } from 'common/public/AddonManager'; import { BufferNamespaceApi } from 'common/public/BufferNamespaceApi'; -import { ITerminalOptions } from 'common/Types'; -import { Disposable } from 'common/Lifecycle'; +import { ParserApi } from 'common/public/ParserApi'; +import { UnicodeApi } from 'common/public/UnicodeApi'; +import { IBufferNamespace as IBufferNamespaceApi, IDecoration, IDecorationOptions, IDisposable, ILinkProvider, ILocalizableStrings, IMarker, IModes, IParser, ITerminalAddon, Terminal as ITerminalApi, ITerminalInitOnlyOptions, IUnicodeHandling } from 'xterm'; /** * The set of options that only have an effect when set in the Terminal constructor. diff --git a/src/browser/renderer/shared/CellColorResolver.ts b/src/browser/renderer/shared/CellColorResolver.ts index ae5019e2..66e6a344 100644 --- a/src/browser/renderer/shared/CellColorResolver.ts +++ b/src/browser/renderer/shared/CellColorResolver.ts @@ -1,6 +1,6 @@ import { ISelectionRenderModel } from 'browser/renderer/shared/Types'; import { ICoreBrowserService, IThemeService } from 'browser/services/Services'; -import { IColorSet, ReadonlyColorSet } from 'browser/Types'; +import { ReadonlyColorSet } from 'browser/Types'; import { Attributes, BgFlags, FgFlags } from 'common/buffer/Constants'; import { IDecorationService } from 'common/services/Services'; import { ICellData } from 'common/Types'; diff --git a/src/browser/renderer/shared/RendererUtils.ts b/src/browser/renderer/shared/RendererUtils.ts index 052f2894..70c9ad86 100644 --- a/src/browser/renderer/shared/RendererUtils.ts +++ b/src/browser/renderer/shared/RendererUtils.ts @@ -3,7 +3,7 @@ * @license MIT */ -import { IDimensions, IOffset, IRenderDimensions } from 'browser/renderer/shared/Types'; +import { IDimensions, IRenderDimensions } from 'browser/renderer/shared/Types'; export function throwIfFalsy(value: T | undefined | null): T { if (!value) { diff --git a/src/browser/renderer/shared/TextureAtlas.ts b/src/browser/renderer/shared/TextureAtlas.ts index 3ee21519..c7b85a7e 100644 --- a/src/browser/renderer/shared/TextureAtlas.ts +++ b/src/browser/renderer/shared/TextureAtlas.ts @@ -3,20 +3,20 @@ * @license MIT */ +import { IColorContrastCache } from 'browser/Types'; import { DIM_OPACITY, TEXT_BASELINE } from 'browser/renderer/shared/Constants'; -import { DEFAULT_COLOR, Attributes, DEFAULT_EXT, UnderlineStyle } from 'common/buffer/Constants'; -import { IColor } from 'common/Types'; -import { AttributeData } from 'common/buffer/AttributeData'; -import { color, NULL_COLOR, rgba } from 'common/Color'; import { tryDrawCustomChar } from 'browser/renderer/shared/CustomGlyphs'; import { excludeFromContrastRatioDemands, isPowerlineGlyph, isRestrictedPowerlineGlyph, throwIfFalsy } from 'browser/renderer/shared/RendererUtils'; -import { IUnicodeService } from 'common/services/Services'; +import { IBoundingBox, ICharAtlasConfig, IRasterizedGlyph, ITextureAtlas } from 'browser/renderer/shared/Types'; +import { NULL_COLOR, color, rgba } from 'common/Color'; +import { EventEmitter } from 'common/EventEmitter'; import { FourKeyMap } from 'common/MultiKeyMap'; import { IdleTaskQueue } from 'common/TaskQueue'; -import { IBoundingBox, ICharAtlasConfig, IRasterizedGlyph, IRequestRedrawEvent, ITextureAtlas } from 'browser/renderer/shared/Types'; -import { EventEmitter } from 'common/EventEmitter'; -import { IColorContrastCache } from 'browser/Types'; +import { IColor } from 'common/Types'; +import { AttributeData } from 'common/buffer/AttributeData'; +import { Attributes, DEFAULT_COLOR, DEFAULT_EXT, UnderlineStyle } from 'common/buffer/Constants'; import { traceCall } from 'common/services/LogService'; +import { IUnicodeService } from 'common/services/Services'; /** * A shared object which is used to draw nothing for a particular cell. diff --git a/src/browser/services/SelectionService.ts b/src/browser/services/SelectionService.ts index 486c1941..e6a14cb6 100644 --- a/src/browser/services/SelectionService.ts +++ b/src/browser/services/SelectionService.ts @@ -3,20 +3,20 @@ * @license MIT */ -import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types'; -import { IBuffer } from 'common/buffer/Types'; -import { IBufferLine, IDisposable } from 'common/Types'; -import * as Browser from 'common/Platform'; -import { SelectionModel } from 'browser/selection/SelectionModel'; -import { CellData } from 'common/buffer/CellData'; -import { EventEmitter, IEvent } from 'common/EventEmitter'; -import { IMouseService, ISelectionService, IRenderService, ICoreBrowserService } from 'browser/services/Services'; import { IBufferRange, ILinkifier2 } from 'browser/Types'; -import { IBufferService, IOptionsService, ICoreService } from 'common/services/Services'; import { getCoordsRelativeToElement } from 'browser/input/Mouse'; import { moveToCellSequence } from 'browser/input/MoveToCell'; +import { SelectionModel } from 'browser/selection/SelectionModel'; +import { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types'; +import { ICoreBrowserService, IMouseService, IRenderService, ISelectionService } from 'browser/services/Services'; +import { EventEmitter } from 'common/EventEmitter'; import { Disposable, toDisposable } from 'common/Lifecycle'; +import * as Browser from 'common/Platform'; +import { IBufferLine, IDisposable } from 'common/Types'; import { getRangeLength } from 'common/buffer/BufferRange'; +import { CellData } from 'common/buffer/CellData'; +import { IBuffer } from 'common/buffer/Types'; +import { IBufferService, ICoreService, IOptionsService } from 'common/services/Services'; /** * The number of pixels the mouse needs to be above or below the viewport in diff --git a/src/browser/services/ThemeService.ts b/src/browser/services/ThemeService.ts index 58c9f354..199b3ace 100644 --- a/src/browser/services/ThemeService.ts +++ b/src/browser/services/ThemeService.ts @@ -10,7 +10,7 @@ import { channels, color, css, NULL_COLOR } from 'common/Color'; import { EventEmitter } from 'common/EventEmitter'; import { Disposable } from 'common/Lifecycle'; import { IOptionsService, ITheme } from 'common/services/Services'; -import { ColorIndex, SpecialColorIndex, IColor, AllColorIndex } from 'common/Types'; +import { AllColorIndex, IColor, SpecialColorIndex } from 'common/Types'; interface IRestoreColorSet { foreground: IColor; diff --git a/src/common/buffer/BufferLine.ts b/src/common/buffer/BufferLine.ts index c3d127cd..de25dc28 100644 --- a/src/common/buffer/BufferLine.ts +++ b/src/common/buffer/BufferLine.ts @@ -3,11 +3,11 @@ * @license MIT */ -import { CharData, IBufferLine, ICellData, IAttributeData, IExtendedAttrs } from 'common/Types'; -import { stringFromCodePoint } from 'common/input/TextDecoder'; -import { CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, CHAR_DATA_ATTR_INDEX, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE, WHITESPACE_CELL_CHAR, Content, BgFlags, FgFlags, Attributes } from 'common/buffer/Constants'; -import { CellData } from 'common/buffer/CellData'; +import { CharData, IAttributeData, IBufferLine, ICellData, IExtendedAttrs } from 'common/Types'; import { AttributeData, ExtendedAttrs } from 'common/buffer/AttributeData'; +import { CellData } from 'common/buffer/CellData'; +import { Attributes, BgFlags, CHAR_DATA_ATTR_INDEX, CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, Content, NULL_CELL_CHAR, NULL_CELL_CODE, NULL_CELL_WIDTH, WHITESPACE_CELL_CHAR } from 'common/buffer/Constants'; +import { stringFromCodePoint } from 'common/input/TextDecoder'; /** * buffer memory layout: diff --git a/src/common/buffer/BufferSet.ts b/src/common/buffer/BufferSet.ts index da902aff..61165fa1 100644 --- a/src/common/buffer/BufferSet.ts +++ b/src/common/buffer/BufferSet.ts @@ -3,12 +3,12 @@ * @license MIT */ -import { IBuffer, IBufferSet } from 'common/buffer/Types'; +import { EventEmitter } from 'common/EventEmitter'; +import { Disposable } from 'common/Lifecycle'; import { IAttributeData } from 'common/Types'; import { Buffer } from 'common/buffer/Buffer'; -import { EventEmitter, IEvent } from 'common/EventEmitter'; -import { IOptionsService, IBufferService } from 'common/services/Services'; -import { Disposable } from 'common/Lifecycle'; +import { IBuffer, IBufferSet } from 'common/buffer/Types'; +import { IBufferService, IOptionsService } from 'common/services/Services'; /** * The BufferSet represents the set of two buffers used by xterm terminals (normal and alt) and diff --git a/src/common/input/WriteBuffer.ts b/src/common/input/WriteBuffer.ts index 6c3dbf64..ac0730cb 100644 --- a/src/common/input/WriteBuffer.ts +++ b/src/common/input/WriteBuffer.ts @@ -4,7 +4,7 @@ * @license MIT */ -import { EventEmitter, IEvent } from 'common/EventEmitter'; +import { EventEmitter } from 'common/EventEmitter'; import { Disposable } from 'common/Lifecycle'; declare const setTimeout: (handler: () => void, timeout?: number) => void; diff --git a/src/common/services/BufferService.ts b/src/common/services/BufferService.ts index 7d8e2846..d20d0cea 100644 --- a/src/common/services/BufferService.ts +++ b/src/common/services/BufferService.ts @@ -3,12 +3,12 @@ * @license MIT */ -import { IBufferService, IOptionsService } from 'common/services/Services'; -import { BufferSet } from 'common/buffer/BufferSet'; -import { IBufferSet, IBuffer } from 'common/buffer/Types'; -import { EventEmitter, IEventEmitter, IEvent } from 'common/EventEmitter'; +import { EventEmitter } from 'common/EventEmitter'; import { Disposable } from 'common/Lifecycle'; import { IAttributeData, IBufferLine, ScrollSource } from 'common/Types'; +import { BufferSet } from 'common/buffer/BufferSet'; +import { IBuffer, IBufferSet } from 'common/buffer/Types'; +import { IBufferService, IOptionsService } from 'common/services/Services'; export const MINIMUM_COLS = 2; // Less than 2 can mess with wide chars export const MINIMUM_ROWS = 1; diff --git a/src/common/services/CoreService.ts b/src/common/services/CoreService.ts index 5299fb0d..71985a17 100644 --- a/src/common/services/CoreService.ts +++ b/src/common/services/CoreService.ts @@ -3,11 +3,11 @@ * @license MIT */ -import { ICoreService, ILogService, IOptionsService, IBufferService } from 'common/services/Services'; -import { EventEmitter, IEvent } from 'common/EventEmitter'; -import { IDecPrivateModes, IModes } from 'common/Types'; import { clone } from 'common/Clone'; +import { EventEmitter } from 'common/EventEmitter'; import { Disposable } from 'common/Lifecycle'; +import { IDecPrivateModes, IModes } from 'common/Types'; +import { IBufferService, ICoreService, ILogService, IOptionsService } from 'common/services/Services'; const DEFAULT_MODES: IModes = Object.freeze({ insertMode: false diff --git a/src/common/services/DecorationService.ts b/src/common/services/DecorationService.ts index ed96fb35..36faa509 100644 --- a/src/common/services/DecorationService.ts +++ b/src/common/services/DecorationService.ts @@ -9,7 +9,7 @@ import { Disposable, toDisposable } from 'common/Lifecycle'; import { IDecorationService, IInternalDecoration } from 'common/services/Services'; import { SortedList } from 'common/SortedList'; import { IColor } from 'common/Types'; -import { IDecorationOptions, IDecoration, IMarker, IEvent } from 'xterm'; +import { IDecoration, IDecorationOptions, IMarker } from 'xterm'; // Work variables to avoid garbage collection let $xmin = 0; diff --git a/src/common/services/OptionsService.ts b/src/common/services/OptionsService.ts index fb4251d9..3c572445 100644 --- a/src/common/services/OptionsService.ts +++ b/src/common/services/OptionsService.ts @@ -3,11 +3,11 @@ * @license MIT */ -import { IOptionsService, ITerminalOptions, FontWeight } from 'common/services/Services'; -import { EventEmitter, IEvent } from 'common/EventEmitter'; +import { EventEmitter } from 'common/EventEmitter'; +import { Disposable } from 'common/Lifecycle'; import { isMac } from 'common/Platform'; import { CursorStyle, IDisposable } from 'common/Types'; -import { Disposable } from 'common/Lifecycle'; +import { FontWeight, IOptionsService, ITerminalOptions } from 'common/services/Services'; export const DEFAULT_OPTIONS: Readonly> = { cols: 80, diff --git a/src/common/services/UnicodeService.ts b/src/common/services/UnicodeService.ts index 5c5b74f6..4f3596d2 100644 --- a/src/common/services/UnicodeService.ts +++ b/src/common/services/UnicodeService.ts @@ -2,9 +2,9 @@ * Copyright (c) 2019 The xterm.js authors. All rights reserved. * @license MIT */ -import { IUnicodeService, IUnicodeVersionProvider } from 'common/services/Services'; -import { EventEmitter, IEvent } from 'common/EventEmitter'; +import { EventEmitter } from 'common/EventEmitter'; import { UnicodeV6 } from 'common/input/UnicodeV6'; +import { IUnicodeService, IUnicodeVersionProvider } from 'common/services/Services'; export class UnicodeService implements IUnicodeService { public serviceBrand: any;