From f59b3f000d30b568a47817884cf65eba5806eb73 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Jun 2019 11:46:20 -0700 Subject: [PATCH 1/3] Move Strings to browser --- src/AccessibilityManager.ts | 2 +- src/Terminal.ts | 2 +- src/{Strings.ts => browser/LocalizableStrings.ts} | 0 src/public/Terminal.ts | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename src/{Strings.ts => browser/LocalizableStrings.ts} (100%) diff --git a/src/AccessibilityManager.ts b/src/AccessibilityManager.ts index 58949cba..9124a477 100644 --- a/src/AccessibilityManager.ts +++ b/src/AccessibilityManager.ts @@ -3,7 +3,7 @@ * @license MIT */ -import * as Strings from './Strings'; +import * as Strings from './browser/LocalizableStrings'; import { ITerminal } from './Types'; import { IBuffer } from 'common/buffer/Types'; import { isMac } from 'common/Platform'; diff --git a/src/Terminal.ts b/src/Terminal.ts index 835ff420..d6093316 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -33,7 +33,7 @@ import { Linkifier } from './Linkifier'; import { SelectionManager } from './SelectionManager'; import * as Browser from 'common/Platform'; import { addDisposableDomListener } from 'browser/Lifecycle'; -import * as Strings from './Strings'; +import * as Strings from './browser/LocalizableStrings'; import { MouseHelper } from 'browser/input/MouseHelper'; import { SoundManager } from './SoundManager'; import { MouseZoneManager } from './MouseZoneManager'; diff --git a/src/Strings.ts b/src/browser/LocalizableStrings.ts similarity index 100% rename from src/Strings.ts rename to src/browser/LocalizableStrings.ts diff --git a/src/public/Terminal.ts b/src/public/Terminal.ts index 1c019b16..0dae4def 100644 --- a/src/public/Terminal.ts +++ b/src/public/Terminal.ts @@ -8,7 +8,7 @@ import { ITerminal } from '../Types'; import { IBufferLine } from 'common/Types'; import { IBuffer } from 'common/buffer/Types'; import { Terminal as TerminalCore } from '../Terminal'; -import * as Strings from '../Strings'; +import * as Strings from '../browser/LocalizableStrings'; import { IEvent } from 'common/EventEmitter'; import { AddonManager } from './AddonManager'; From 39cff978dfc903adc85e30224404012e74325219 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Jun 2019 12:02:39 -0700 Subject: [PATCH 2/3] Add missing docs to xterm.d.ts Fixes #2215 --- typings/xterm.d.ts | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 3dc08782..a30f2ae1 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -283,15 +283,45 @@ declare module 'xterm' { (listener: (e: T) => any): IDisposable; } + /** + * Represents a specific line in the terminal that is tracked when scrollback + * is trimmed and lines are added or removed. + */ export interface IMarker extends IDisposable { + /** + * A unique identifier for this marker. + */ readonly id: number; + + /** + * Whether this marker is disposed. + */ readonly isDisposed: boolean; + + /** + * The actual line index in the buffer at this point in time. + */ readonly line: number; } + /** + * The set of localizable strings. + */ export interface ILocalizableStrings { + /** + * Announcement for a blank line when `screenReaderMode` is enabled. + */ blankLine: string; + + /** + * The aria label for the underlying input textarea for the terminal. + */ promptLabel: string; + + /** + * Announcement for when line reading is suppressed due to too many lines + * being printed to the terminal when `screenReaderMode` is enabled. + */ tooMuchOutput: string; } @@ -774,7 +804,7 @@ declare module 'xterm' { } /** - * An object representing a selecrtion within the terminal. + * An object representing a selection within the terminal. */ interface ISelectionPosition { /** @@ -798,6 +828,9 @@ declare module 'xterm' { endRow: number; } + /** + * Represents a terminal buffer. + */ interface IBuffer { /** * The y position of the cursor. This ranges between `0` (when the @@ -839,6 +872,9 @@ declare module 'xterm' { getLine(y: number): IBufferLine | undefined; } + /** + * Represents a line in the terminal's buffer. + */ interface IBufferLine { /** * Whether the line is wrapped from the previous line. @@ -866,6 +902,9 @@ declare module 'xterm' { translateToString(trimRight?: boolean, startColumn?: number, endColumn?: number): string; } + /** + * Represents a single cell in the terminal's buffer. + */ interface IBufferCell { /** * The character within the cell. From 46ce3d29c30f11db84396094f60ed131c70002bf Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Jun 2019 12:07:27 -0700 Subject: [PATCH 3/3] API polish/grammar/wrapping --- typings/xterm.d.ts | 49 +++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index a30f2ae1..042ca537 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -26,13 +26,14 @@ declare module 'xterm' { export interface ITerminalOptions { /** * Whether background should support non-opaque color. It must be set before - * executing open() method and can't be changed later without excuting it again. - * Warning: Enabling this option can reduce performances somewhat. + * executing the `Terminal.open()` method and can't be changed later without + * executing it again. Note that enabling this can negatively impact + * performance. */ allowTransparency?: boolean; /** - * A data uri of the sound to use for the bell (needs bellStyle = 'sound'). + * A data uri of the sound to use for the bell when `bellStyle = 'sound'`. */ bellSound?: string; @@ -114,9 +115,9 @@ declare module 'xterm' { /** * Whether holding a modifier key will force normal selection behavior, * regardless of whether the terminal is in mouse events mode. This will - * also prevent mouse events from being emitted by the terminal. For example, - * this allows you to use xterm.js' regular selection inside tmux with - * mouse mode enabled. + * also prevent mouse events from being emitted by the terminal. For + * example, this allows you to use xterm.js' regular selection inside tmux + * with mouse mode enabled. */ macOptionClickForcesSelection?: boolean; @@ -149,8 +150,9 @@ declare module 'xterm' { screenReaderMode?: boolean; /** - * The amount of scrollback in the terminal. Scrollback is the amount of rows - * that are retained when lines are scrolled beyond the initial viewport. + * The amount of scrollback in the terminal. Scrollback is the amount of + * rows that are retained when lines are scrolled beyond the initial + * viewport. */ scrollback?: number; @@ -187,7 +189,7 @@ declare module 'xterm' { background?: string, /** The cursor color */ cursor?: string, - /** The accent color of the cursor (used as the foreground color for a block cursor) */ + /** The accent color of the cursor (fg color for a block cursor) */ cursorAccent?: string, /** The selection color (can be transparent) */ selection?: string, @@ -253,8 +255,8 @@ declare module 'xterm' { leaveCallback?: () => void; /** - * The priority of the link matcher, this defines the order in which the link - * matcher is evaluated relative to others, from highest to lowest. The + * The priority of the link matcher, this defines the order in which the + * link matcher is evaluated relative to others, from highest to lowest. The * default value is 0. */ priority?: number; @@ -660,9 +662,9 @@ declare module 'xterm' { writeln(data: string): void; /** - * Writes UTF8 data to the terminal. - * This has a slight performance advantage over the string based write method - * due to lesser data conversions needed on the way from the pty to xterm.js. + * Writes UTF8 data to the terminal. This has a slight performance advantage + * over the string based write method due to lesser data conversions needed + * on the way from the pty to xterm.js. * @param data The data to write to the terminal. */ writeUtf8(data: Uint8Array): void; @@ -798,7 +800,7 @@ declare module 'xterm' { */ export interface ITerminalAddon extends IDisposable { /** - * (EXPERIMENTAL) This is called when the addon is activated within xterm.js. + * (EXPERIMENTAL) This is called when the addon is activated. */ activate(terminal: Terminal): void; } @@ -862,10 +864,12 @@ declare module 'xterm' { readonly length: number; /** - * Gets a line from the buffer, or undefined if the line index does not exist. + * Gets a line from the buffer, or undefined if the line index does not + * exist. * - * Note that the result of this function should be used immediately after calling as when the - * terminal updates it could lead to unexpected behavior. + * Note that the result of this function should be used immediately after + * calling as when the terminal updates it could lead to unexpected + * behavior. * * @param y The line index to get. */ @@ -884,16 +888,17 @@ declare module 'xterm' { /** * Gets a cell from the line, or undefined if the line index does not exist. * - * Note that the result of this function should be used immediately after calling as when the - * terminal updates it could lead to unexpected behavior. + * Note that the result of this function should be used immediately after + * calling as when the terminal updates it could lead to unexpected + * behavior. * * @param x The character index to get. */ getCell(x: number): IBufferCell | undefined; /** - * Gets the line as a string. Note that this is gets only the string for the line, not taking - * isWrapped into account. + * Gets the line as a string. Note that this is gets only the string for the + * line, not taking isWrapped into account. * * @param trimRight Whether to trim any whitespace at the right of the line. * @param startColumn The column to start from (inclusive).