mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-08 09:38:26 -05:00
* Squash merge commits for 1.26 (#1) (#2323) * Polish tag search as per feedback (#55269) * Polish tag search as per feedback * Updated regex * Allow users to opt-out of features that send online requests in the background (#55097) * settings sweep #54690 * Minor css tweaks to enable eoverflow elipsis in more places (#55277) * fix an issue with titlebarheight when not scaling with zoom * Settings descriptions update #54690 * fixes #55209 * Settings editor - many padding fixes * More space above level 2 label * Fixing Cannot debug npm script using Yarn #55103 * Settings editor - show ellipsis when description overflows * Settings editor - ... fix measuring around links, relayout * Setting descriptions * Settings editor - fix ... for some short lines, fix select container width * Settings editor - overlay trees so scrollable shadow is full width * Fix #54133 - missing extension settings after reload * Settings color token description tweak * Settings editor - disable overflow indicator temporarily, needs to be faster * Added command to Run the selected npm script * fixes #54452 * fixes #54929 * fixes #55248 * prefix command with extension name * Contribute run selected to the context menu * node-debug@1.26.6 * Allow terminal rendererType to be swapped out at runtime Part of #53274 Fixes #55344 * Settings editor - fix not focusing search when restoring editor setInput must be actually async. Will be fixed naturally when we aren't using winJS promises... * Settings editor - TOC should only expand the section with a selected item * Bump node-debug2 * Settings editor - Tree focus outlines * Settings editor - don't blink the scrollbar when toc selection changes And hide TOC correctly when the editor is narrow * Settings editor - header rows should not be selectable * fixes #54877 * change debug assignee to isi * Settings sweep (#54690) * workaround for #55051 * Settings sweep (#54690) * settings sweep #54690 * Don't try closing tags when you type > after another > * Describe what implementation code lens does Fixes #55370 * fix javadoc formatter setting description * fixes #55325 * update to officical TS version * Settings editor - Even more padding, use semibold instead of bold * Fix #55357 - fix TOC twistie * fixes #55288 * explorer: refresh on di change file system provider registration fixes #53256 * Disable push to Linux repo to test standalone publisher * New env var to notify log level to extensions #54001 * Disable snippets in extension search (when not in suggest dropdown) (#55281) * Disable snippits in extension search (when not in suggest dropdown) * Add monaco input contributions * Fix bug preventing snippetSuggestions from taking effect in sub-editors * Latest emmet helper to fix #52366 * Fix comment updates for threads within same file * Allow extensions to log telemetry to log files #54001 * Pull latest css grammar * files.exclude control - use same style for "add" vs "edit" * files.exclude control - focus/keyboard behavior * don't show menubar too early * files.exclude - better styling * Place cursor at end of extensions search box on autofill (#55254) * Place cursor at end of extensions search box on autofill * Use position instead of selection * fix linux build issue (empty if block) * Settings editor - fix extension category prefixes * Settings editor - add simple ellipsis for first line that overflows, doesn't cover case when first line does not overflow but there is more text, TODO * File/Text search provider docs * Fixes #52655 * Include epoch (#55008) * Fixes #53385 * Fixes #49480 * VS Code Insiders (Users) not opening Fixes #55353 * Better handling of the case when the extension host fails to start * Fixes #53966 * Remove confusing Start from wordPartLeft commands ID * vscode-xterm@3.6.0-beta12 Fixes #55488 * Initial size is set to infinity!! Fixes #55461 * Polish embeddedEditorBackground * configuration service misses event * Fix #55224 - fix duplicate results in multiroot workspace from splitting the diskseach query * Select all not working in issue reporter on mac, fixes #55424 * Disable fuzzy matching for extensions autosuggest (#55498) * Fix clipping of extensions search border in some third party themes (#55504) * fixes #55538 * Fix bug causing an aria alert to not be shown the third time (and odd numbers thereafter) * Settings editor - work around rendering glitch with webkit-line-clamp * Settings editor - revert earlier '...' changes * Settings editor - move enumDescription to its own div, because it disturbs -webkit-line-clamp for some reason * Settings editor - better overflow indicator * Don't show existing filters in autocomplete (#55495) * Dont show existing filters in autocomplete * Simplify * Settings Editor: Add aria labels for input elements Fixes: #54836 (#55543) * fixes #55223 * Update vscode-css-languageservice to 3.0.10-next.1 * Fix #55509 - settings navigation * Fix #55519 * Fix #55520 * FIx #55524 * Fix #55556 - include wordSeparators in all search queries, so findTextInFiles can respect isWordMatch correctly * oss updates for endgame * Fix unit tests * fixes #55522 * Avoid missing manifest error from bubbling up #54757 * Settings format crawl * Search provider - Fix FileSearchProvider to return array, not progress * Fix #55598 * Settings editor - fix NPE rendering settings with no description * dont render inden guides in search box (#55600) * fixes #55454 * More settings crawl * Another change for #55598 - maxResults applies to FileSearch and TextSearch but not FileIndex * Fix FileSearchProvider unit tests for progress change * fixes #55561 * Settings description update for #54690 * Update setting descriptions for online services * Minor edits * fixes #55513 * fixes #55451 * Fix #55612 - fix findTextInFiles cancellation * fixes #55539 * More setting description tweaks * Setting to disable online experiments #54354 * fixes #55507 * fixes #55515 * Show online services action only in Insiders for now * Settings editor - change toc behavior default to 'filter' * Settings editor - nicer filter count style during search * Fix #55617 - search viewlet icons * Settings editor - better styling for element count indicator * SearchProvider - fix NPE when searching extraFileResources * Allow extends to work without json suffix Fixes #16905 * Remove accessability options logic entirely Follow up on #55451 * use latest version of DAP * fixes #55490 * fixes #55122 * fixes #52332 * Avoid assumptions about git: URIs (fixes #36236) * relative path for descriptions * resourece: get rid of isFile context key fixes #48275 * Register previous ids for compatibility (#53497) * more tuning for #48275 * no need to always re-read "files explorer" fixes #52003 * read out active composites properly fixes #51967 * Update link colors for hc theme to meet color contrast ratio, fixes #55651 Also updated link color for `textLinkActiveForeground` to be the same as `textLinkForeground` as it wasn't properly updated * detect 'winpty-agent.exe'; fixes #55672 * node-debug@1.26.7 * reset counter on new label * Settings editor - fix multiple setting links in one description * Settings editor - color code blocks in setting descriptions, fix #55532 * Settings editor - hover color in TOC * Settings editor - fix navigation NPE * Settings editor - fix text control width * Settings editor - maybe fix #55684 * Fix bug causing cursor to not move on paste * fixes #53582 * Use ctrlCmd instead of ctrl for go down from search box * fixes #55264 * fixes #55456 * filter for spcaes before triggering search (#55611) * Fix #55698 - don't lose filtered TOC counts when refreshing TOC * fixes #55421 * fixes #28979 * fixes #55576 * only add check for updates to windows/linux help * readonly files: append decoration to label fixes #53022 * debug: do not show toolbar while initialising fixes #55026 * Opening launch.json should not activate debug extensions fixes #55029 * fixes #55435 * fixes #55434 * fixes #55439 * trigger menu only on altkey up * Fix #50555 - fix settings editor memory leak * Fix #55712 - no need to focus 'a' anymore when restoring control focus after tree render * fixes #55335 * proper fix for readonly model fixes #53022 * improve FoldingRangeKind spec (for #55686) * Use class with static fields (fixes #55494) * Fixes #53671 * fixes #54630 * [html] should disable ionic suggestions by default. Currently forces deprecated Ionic v1 suggestions in .html files while typing. Fixes #53324 * cleanup deps * debug issues back to andre * update electron for smoketest * Fix #55757 - prevent settings tabs from overflowing * Fix #53897 - revert setting menu defaults to old editor * Add enum descriptions to `typescript.preferences.importModuleSpecifier` * Fix #55767 - leaking style elements from settings editor * Fix #55521 - prevent flashing when clicking in exclude control * Update Git modified color for contrast ratio, fixes #53140 * Revert "Merge branch 'master' of github.com:Microsoft/vscode" This reverts commit bf46b6bfbae0cab99c2863e1244a916181fa9fbc, reversing changes made to e275a424483dfb4ed33b428c97d5e2c441d6b917. * Revert "Revert "Merge branch 'master' of github.com:Microsoft/vscode"" This reverts commit 53949d963f39e40757557c6526332354a31d9154. * don't ask to install an incomplete menu * Fix NPE in terminal AccessibilityManager Fixes #55744 * don't display fallback menu unless we've closed the last window * fixes #55547 * Fix smoke tests for extension search box * Update OSSREADME.json for Electron 2.0.5 * Update distro Includes Chromium license changes * fix #55455 * fix #55865 * fixes #55893 * Fix bug causing workspace recommendations to go away upon ignoring a recommendation (#55805) * Fix bug causing workspace recommendations to go away upon ignoring a recommendation * ONly show on @recommended or @recommended:workspace * Make more consistant * Fix #55911 * Understand json activity (#55926) * Understand json file activity * Refactoring * adding composer.json * Distro update for experiments * use terminal.processId for auto-attach; fixes #55918 * Reject invalid URI with vscode.openFolder (for #55891) * improve win32 setup system vs user detection fixes #55840 fixes #55840 delay winreg import related to #55840 show notification earlier related to #55840 fix #55840 update inno setup message related to #55840 * Fix #55593 - this code only operates on local paths, so use fsPath and Uri.file instead * Bring back the old menu due to electron 2.0 issues (#55913) * add the old menu back for native menus * make menu labels match * `vscode.openFolder`: treat missing URI schema gracefully (for #55891) * delay EH reattach; fixes #55955 * Mark all json files under appSettingsHome as settings * Use localized strings for telemetry opt-out * Exception when saving file editor opened from remote file provider (fixes #55051) * Remove terminal menu from stable Fixes 56003 * VSCode Insiders crashes on open with TypeError: Cannot read property 'lastIndexOf' of undefined. Fixes #54933 * improve fix for #55891 * fix #55916 * Improve #55891 * increase EH debugging restart delay; fixes #55955 * Revert "Don't include non-resource entries in history quick pick" This reverts commit 37209a838e9f7e9abe6dc53ed73cdf1e03b72060. * Diff editor: horizontal scrollbar height is smaller (fixes #56062) * improve openFolder uri fix (correctly treat backslashes) * fixes #56116 repair ipc for native menubar keybindings * Fix #56240 - Open the JSON settings editor instead of the UI editor * Fix #55536 * uriDisplay: if no formatter is registered fall back to getPathlabel fixes #56104 * VSCode hangs when opening python file. Fixes #56377 * VS Code Hangs When Opening Specific PowerShell File. Fixes #56430 * Fix #56433 - search extraFileResources even when no folders open * Workaround #55649 * Fix in master #56371 * Fix tests #56371 * Fix in master #56317 * increase version to 1.26.1 * Fixes #56387: Handle SIGPIPE in extension host * fixes #56185 * Fix merge issues (part 1) * Fix build breaks (part 1) * Build breaks (part 2) * Build breaks (part 3) * More build breaks (part 4) * Fix build breaks (part 5) * WIP * Fix menus * Render query result and message panels (#2363) * Put back query editor hot exit changes * Fix grid changes that broke profiler (#2365) * Update APIs for saving query editor state * Fix restore view state for profiler and edit data * Updating custom default themes to support 4.5:1 contrast ratio * Test updates * Fix Extension Manager and Windows Setup * Update license headers * Add appveyor and travis files back * Fix hidden modal dropdown issue
733 lines
21 KiB
TypeScript
733 lines
21 KiB
TypeScript
/**
|
|
* @license MIT
|
|
*
|
|
* This contains the type declarations for the xterm.js library. Note that
|
|
* some interfaces differ between this file and the actual implementation in
|
|
* src/, that's because this file declares the *public* API which is intended
|
|
* to be stable and consumed by external programs.
|
|
*/
|
|
|
|
declare module 'vscode-xterm' {
|
|
/**
|
|
* A string representing text font weight.
|
|
*/
|
|
export type FontWeight = 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
|
|
|
|
/**
|
|
* A string representing a renderer type.
|
|
*/
|
|
export type RendererType = 'dom' | 'canvas';
|
|
|
|
/**
|
|
* An object containing start up options for the terminal.
|
|
*/
|
|
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.
|
|
*/
|
|
allowTransparency?: boolean;
|
|
|
|
/**
|
|
* A data uri of the sound to use for the bell (needs bellStyle = 'sound').
|
|
*/
|
|
bellSound?: string;
|
|
|
|
/**
|
|
* The type of the bell notification the terminal will use.
|
|
*/
|
|
bellStyle?: 'none' /*| 'visual'*/ | 'sound' /*| 'both'*/;
|
|
|
|
/**
|
|
* The number of columns in the terminal.
|
|
*/
|
|
cols?: number;
|
|
|
|
/**
|
|
* Whether the cursor blinks.
|
|
*/
|
|
cursorBlink?: boolean;
|
|
|
|
/**
|
|
* The style of the cursor.
|
|
*/
|
|
cursorStyle?: 'block' | 'underline' | 'bar';
|
|
|
|
/**
|
|
* Whether input should be disabled.
|
|
*/
|
|
disableStdin?: boolean;
|
|
|
|
/**
|
|
* Whether to draw bold text in bright colors. The default is true.
|
|
*/
|
|
drawBoldTextInBrightColors?: boolean;
|
|
|
|
/**
|
|
* Whether to enable the rendering of bold text.
|
|
*
|
|
* @deprecated Use fontWeight and fontWeightBold instead.
|
|
*/
|
|
enableBold?: boolean;
|
|
|
|
/**
|
|
* What character atlas implementation to use. The character atlas caches drawn characters,
|
|
* speeding up rendering significantly. However, it can introduce some minor rendering
|
|
* artifacts.
|
|
*
|
|
* - 'none': Don't use an atlas.
|
|
* - 'static': Generate an atlas when the terminal starts or is reconfigured. This atlas will
|
|
* only contain ASCII characters in 16 colors.
|
|
* - 'dynamic': Generate an atlas using a LRU cache as characters are requested. Limited to
|
|
* ASCII characters (for now), but supports 256 colors. For characters covered by the static
|
|
* cache, it's slightly slower in comparison, since there's more overhead involved in
|
|
* managing the cache.
|
|
*
|
|
* Currently defaults to 'static'. This option may be removed in the future. If it is, passed
|
|
* parameters will be ignored.
|
|
*/
|
|
experimentalCharAtlas?: 'none' | 'static' | 'dynamic';
|
|
|
|
/**
|
|
* The font size used to render text.
|
|
*/
|
|
fontSize?: number;
|
|
|
|
/**
|
|
* The font family used to render text.
|
|
*/
|
|
fontFamily?: string;
|
|
|
|
/**
|
|
* The font weight used to render non-bold text.
|
|
*/
|
|
fontWeight?: FontWeight;
|
|
|
|
/**
|
|
* The font weight used to render bold text.
|
|
*/
|
|
fontWeightBold?: FontWeight;
|
|
|
|
/**
|
|
* The spacing in whole pixels between characters..
|
|
*/
|
|
letterSpacing?: number;
|
|
|
|
/**
|
|
* The line height used to render text.
|
|
*/
|
|
lineHeight?: number;
|
|
|
|
/**
|
|
* Whether to treat option as the meta key.
|
|
*/
|
|
macOptionIsMeta?: boolean;
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
macOptionClickForcesSelection?: boolean;
|
|
|
|
/**
|
|
* (EXPERIMENTAL) The type of renderer to use, this allows using the
|
|
* fallback DOM renderer when canvas is too slow for the environment. The
|
|
* following features do not work when the DOM renderer is used:
|
|
*
|
|
* - Links
|
|
* - Line height
|
|
* - Letter spacing
|
|
* - Cursor blink
|
|
* - Cursor style
|
|
*
|
|
* This option is marked as experiemental because it will eventually be
|
|
* moved to an addon. You can only set this option in the constructor (not
|
|
* setOption).
|
|
*/
|
|
rendererType?: RendererType;
|
|
|
|
/**
|
|
* Whether to select the word under the cursor on right click, this is
|
|
* standard behavior in a lot of macOS applications.
|
|
*/
|
|
rightClickSelectsWord?: boolean;
|
|
|
|
/**
|
|
* The number of rows in the terminal.
|
|
*/
|
|
rows?: number;
|
|
|
|
/**
|
|
* Whether screen reader support is enabled. When on this will expose
|
|
* supporting elements in the DOM to support NVDA on Windows and VoiceOver
|
|
* on macOS.
|
|
*/
|
|
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.
|
|
*/
|
|
scrollback?: number;
|
|
|
|
/**
|
|
* The size of tab stops in the terminal.
|
|
*/
|
|
tabStopWidth?: number;
|
|
|
|
/**
|
|
* The color theme of the terminal.
|
|
*/
|
|
theme?: ITheme;
|
|
}
|
|
|
|
/**
|
|
* Contains colors to theme the terminal with.
|
|
*/
|
|
export interface ITheme {
|
|
/** The default foreground color */
|
|
foreground?: string,
|
|
/** The default background color */
|
|
background?: string,
|
|
/** The cursor color */
|
|
cursor?: string,
|
|
/** The accent color of the cursor (used as the foreground color for a block cursor) */
|
|
cursorAccent?: string,
|
|
/** The selection color (can be transparent) */
|
|
selection?: string,
|
|
/** ANSI black (eg. `\x1b[30m`) */
|
|
black?: string,
|
|
/** ANSI red (eg. `\x1b[31m`) */
|
|
red?: string,
|
|
/** ANSI green (eg. `\x1b[32m`) */
|
|
green?: string,
|
|
/** ANSI yellow (eg. `\x1b[33m`) */
|
|
yellow?: string,
|
|
/** ANSI blue (eg. `\x1b[34m`) */
|
|
blue?: string,
|
|
/** ANSI magenta (eg. `\x1b[35m`) */
|
|
magenta?: string,
|
|
/** ANSI cyan (eg. `\x1b[36m`) */
|
|
cyan?: string,
|
|
/** ANSI white (eg. `\x1b[37m`) */
|
|
white?: string,
|
|
/** ANSI bright black (eg. `\x1b[1;30m`) */
|
|
brightBlack?: string,
|
|
/** ANSI bright red (eg. `\x1b[1;31m`) */
|
|
brightRed?: string,
|
|
/** ANSI bright green (eg. `\x1b[1;32m`) */
|
|
brightGreen?: string,
|
|
/** ANSI bright yellow (eg. `\x1b[1;33m`) */
|
|
brightYellow?: string,
|
|
/** ANSI bright blue (eg. `\x1b[1;34m`) */
|
|
brightBlue?: string,
|
|
/** ANSI bright magenta (eg. `\x1b[1;35m`) */
|
|
brightMagenta?: string,
|
|
/** ANSI bright cyan (eg. `\x1b[1;36m`) */
|
|
brightCyan?: string,
|
|
/** ANSI bright white (eg. `\x1b[1;37m`) */
|
|
brightWhite?: string
|
|
}
|
|
|
|
/**
|
|
* An object containing options for a link matcher.
|
|
*/
|
|
export interface ILinkMatcherOptions {
|
|
/**
|
|
* The index of the link from the regex.match(text) call. This defaults to 0
|
|
* (for regular expressions without capture groups).
|
|
*/
|
|
matchIndex?: number;
|
|
|
|
/**
|
|
* A callback that validates whether to create an individual link, pass
|
|
* whether the link is valid to the callback.
|
|
*/
|
|
validationCallback?: (uri: string, callback: (isValid: boolean) => void) => void;
|
|
|
|
/**
|
|
* A callback that fires when the mouse hovers over a link for a moment.
|
|
*/
|
|
tooltipCallback?: (event: MouseEvent, uri: string) => boolean | void;
|
|
|
|
/**
|
|
* A callback that fires when the mouse leaves a link. Note that this can
|
|
* happen even when tooltipCallback hasn't fired for the link yet.
|
|
*/
|
|
leaveCallback?: (event: MouseEvent, uri: string) => boolean | 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
|
|
* default value is 0.
|
|
*/
|
|
priority?: number;
|
|
|
|
/**
|
|
* A callback that fires when the mousedown and click events occur that
|
|
* determines whether a link will be activated upon click. This enables
|
|
* only activating a link when a certain modifier is held down, if not the
|
|
* mouse event will continue propagation (eg. double click to select word).
|
|
*/
|
|
willLinkActivate?: (event: MouseEvent, uri: string) => boolean;
|
|
}
|
|
|
|
export interface IEventEmitter {
|
|
on(type: string, listener: (...args: any[]) => void): void;
|
|
off(type: string, listener: (...args: any[]) => void): void;
|
|
emit(type: string, data?: any): void;
|
|
addDisposableListener(type: string, handler: (...args: any[]) => void): IDisposable;
|
|
}
|
|
|
|
/**
|
|
* An object that can be disposed via a dispose function.
|
|
*/
|
|
export interface IDisposable {
|
|
dispose(): void;
|
|
}
|
|
|
|
export interface IMarker extends IDisposable {
|
|
readonly id: number;
|
|
readonly isDisposed: boolean;
|
|
readonly line: number;
|
|
}
|
|
|
|
export interface ILocalizableStrings {
|
|
blankLine: string;
|
|
promptLabel: string;
|
|
tooMuchOutput: string;
|
|
}
|
|
|
|
/**
|
|
* The class that represents an xterm.js terminal.
|
|
*/
|
|
export class Terminal implements IEventEmitter, IDisposable {
|
|
/**
|
|
* The element containing the terminal.
|
|
*/
|
|
element: HTMLElement;
|
|
|
|
/**
|
|
* The textarea that accepts input for the terminal.
|
|
*/
|
|
textarea: HTMLTextAreaElement;
|
|
|
|
/**
|
|
* The number of rows in the terminal's viewport.
|
|
*/
|
|
rows: number;
|
|
|
|
/**
|
|
* The number of columns in the terminal's viewport.
|
|
*/
|
|
cols: number;
|
|
|
|
/**
|
|
* (EXPERIMENTAL) Get all markers registered against the buffer. If the alt
|
|
* buffer is active this will always return [].
|
|
*/
|
|
markers: IMarker[];
|
|
|
|
/**
|
|
* Natural language strings that can be localized.
|
|
*/
|
|
static strings: ILocalizableStrings;
|
|
|
|
/**
|
|
* Creates a new `Terminal` object.
|
|
*
|
|
* @param options An object containing a set of options.
|
|
*/
|
|
constructor(options?: ITerminalOptions);
|
|
|
|
/**
|
|
* Unfocus the terminal.
|
|
*/
|
|
blur(): void;
|
|
|
|
/**
|
|
* Focus the terminal.
|
|
*/
|
|
focus(): void;
|
|
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: 'blur' | 'focus' | 'linefeed' | 'selection', listener: () => void): void;
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: 'data', listener: (...args: any[]) => void): void;
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: 'key', listener: (key?: string, event?: KeyboardEvent) => void): void;
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: 'keypress' | 'keydown', listener: (event?: KeyboardEvent) => void): void;
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: 'refresh', listener: (data?: { start: number, end: number }) => void): void;
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: 'resize', listener: (data?: { cols: number, rows: number }) => void): void;
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: 'scroll', listener: (ydisp?: number) => void): void;
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: 'title', listener: (title?: string) => void): void;
|
|
/**
|
|
* Registers an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
on(type: string, listener: (...args: any[]) => void): void;
|
|
|
|
/**
|
|
* Deregisters an event listener.
|
|
* @param type The type of the event.
|
|
* @param listener The listener.
|
|
*/
|
|
off(type: 'blur' | 'focus' | 'linefeed' | 'selection' | 'data' | 'key' | 'keypress' | 'keydown' | 'refresh' | 'resize' | 'scroll' | 'title' | string, listener: (...args: any[]) => void): void;
|
|
|
|
emit(type: string, data?: any): void;
|
|
|
|
addDisposableListener(type: string, handler: (...args: any[]) => void): IDisposable;
|
|
|
|
/**
|
|
* Resizes the terminal.
|
|
* @param x The number of columns to resize to.
|
|
* @param y The number of rows to resize to.
|
|
*/
|
|
resize(columns: number, rows: number): void;
|
|
|
|
/**
|
|
* Writes text to the terminal, followed by a break line character (\n).
|
|
* @param data The text to write to the terminal.
|
|
*/
|
|
writeln(data: string): void;
|
|
|
|
/**
|
|
* Opens the terminal within an element.
|
|
* @param parent The element to create the terminal within. This element
|
|
* must be visible (have dimensions) when `open` is called as several DOM-
|
|
* based measurements need to be performed when this function is called.
|
|
*/
|
|
open(parent: HTMLElement): void;
|
|
|
|
/**
|
|
* Attaches a custom key event handler which is run before keys are
|
|
* processed, giving consumers of xterm.js ultimate control as to what keys
|
|
* should be processed by the terminal and what keys should not.
|
|
* @param customKeyEventHandler The custom KeyboardEvent handler to attach.
|
|
* This is a function that takes a KeyboardEvent, allowing consumers to stop
|
|
* propogation and/or prevent the default action. The function returns
|
|
* whether the event should be processed by xterm.js.
|
|
*/
|
|
attachCustomKeyEventHandler(customKeyEventHandler: (event: KeyboardEvent) => boolean): void;
|
|
|
|
/**
|
|
* (EXPERIMENTAL) Registers a link matcher, allowing custom link patterns to
|
|
* be matched and handled.
|
|
* @param regex The regular expression to search for, specifically this
|
|
* searches the textContent of the rows. You will want to use \s to match a
|
|
* space ' ' character for example.
|
|
* @param handler The callback when the link is called.
|
|
* @param options Options for the link matcher.
|
|
* @return The ID of the new matcher, this can be used to deregister.
|
|
*/
|
|
registerLinkMatcher(regex: RegExp, handler: (event: MouseEvent, uri: string) => void, options?: ILinkMatcherOptions): number;
|
|
|
|
/**
|
|
* (EXPERIMENTAL) Deregisters a link matcher if it has been registered.
|
|
* @param matcherId The link matcher's ID (returned after register)
|
|
*/
|
|
deregisterLinkMatcher(matcherId: number): void;
|
|
|
|
/**
|
|
* (EXPERIMENTAL) Adds a marker to the normal buffer and returns it. If the
|
|
* alt buffer is active, undefined is returned.
|
|
* @param cursorYOffset The y position offset of the marker from the cursor.
|
|
*/
|
|
addMarker(cursorYOffset: number): IMarker;
|
|
|
|
/**
|
|
* Gets whether the terminal has an active selection.
|
|
*/
|
|
hasSelection(): boolean;
|
|
|
|
/**
|
|
* Gets the terminal's current selection, this is useful for implementing
|
|
* copy behavior outside of xterm.js.
|
|
*/
|
|
getSelection(): string;
|
|
|
|
/**
|
|
* Clears the current terminal selection.
|
|
*/
|
|
clearSelection(): void;
|
|
|
|
/**
|
|
* Selects all text within the terminal.
|
|
*/
|
|
selectAll(): void;
|
|
|
|
/**
|
|
* Selects text in the buffer between 2 lines.
|
|
* @param start The 0-based line index to select from (inclusive).
|
|
* @param end The 0-based line index to select to (inclusive).
|
|
*/
|
|
selectLines(start: number, end: number): void;
|
|
|
|
/*
|
|
* Disposes of the terminal, detaching it from the DOM and removing any
|
|
* active listeners.
|
|
*/
|
|
dispose(): void;
|
|
|
|
/**
|
|
* Destroys the terminal and detaches it from the DOM.
|
|
*
|
|
* @deprecated Use dispose() instead.
|
|
*/
|
|
destroy(): void;
|
|
|
|
/**
|
|
* Scroll the display of the terminal
|
|
* @param amount The number of lines to scroll down (negative scroll up).
|
|
*/
|
|
scrollLines(amount: number): void;
|
|
|
|
/**
|
|
* Scroll the display of the terminal by a number of pages.
|
|
* @param pageCount The number of pages to scroll (negative scrolls up).
|
|
*/
|
|
scrollPages(pageCount: number): void;
|
|
|
|
/**
|
|
* Scrolls the display of the terminal to the top.
|
|
*/
|
|
scrollToTop(): void;
|
|
|
|
/**
|
|
* Scrolls the display of the terminal to the bottom.
|
|
*/
|
|
scrollToBottom(): void;
|
|
|
|
/**
|
|
* Scrolls to a line within the buffer.
|
|
* @param line The 0-based line index to scroll to.
|
|
*/
|
|
scrollToLine(line: number): void;
|
|
|
|
/**
|
|
* Clear the entire buffer, making the prompt line the new first line.
|
|
*/
|
|
clear(): void;
|
|
|
|
/**
|
|
* Writes text to the terminal.
|
|
* @param data The text to write to the terminal.
|
|
*/
|
|
write(data: string): void;
|
|
|
|
/**
|
|
* Retrieves an option's value from the terminal.
|
|
* @param key The option key.
|
|
*/
|
|
getOption(key: 'bellSound' | 'bellStyle' | 'cursorStyle' | 'fontFamily' | 'fontWeight' | 'fontWeightBold' | 'rendererType' | 'termName'): string;
|
|
/**
|
|
* Retrieves an option's value from the terminal.
|
|
* @param key The option key.
|
|
*/
|
|
getOption(key: 'allowTransparency' | 'cancelEvents' | 'convertEol' | 'cursorBlink' | 'debug' | 'disableStdin' | 'enableBold' | 'macOptionIsMeta' | 'rightClickSelectsWord' | 'popOnBell' | 'screenKeys' | 'useFlowControl' | 'visualBell'): boolean;
|
|
/**
|
|
* Retrieves an option's value from the terminal.
|
|
* @param key The option key.
|
|
*/
|
|
getOption(key: 'colors'): string[];
|
|
/**
|
|
* Retrieves an option's value from the terminal.
|
|
* @param key The option key.
|
|
*/
|
|
getOption(key: 'cols' | 'fontSize' | 'letterSpacing' | 'lineHeight' | 'rows' | 'tabStopWidth' | 'scrollback'): number;
|
|
/**
|
|
* Retrieves an option's value from the terminal.
|
|
* @param key The option key.
|
|
*/
|
|
getOption(key: 'handler'): (data: string) => void;
|
|
/**
|
|
* Retrieves an option's value from the terminal.
|
|
* @param key The option key.
|
|
*/
|
|
getOption(key: string): any;
|
|
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'fontFamily' | 'termName' | 'bellSound', value: string): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'fontWeight' | 'fontWeightBold', value: null | 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'bellStyle', value: null | 'none' | 'visual' | 'sound' | 'both'): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'cursorStyle', value: null | 'block' | 'underline' | 'bar'): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'allowTransparency' | 'cancelEvents' | 'convertEol' | 'cursorBlink' | 'debug' | 'disableStdin' | 'enableBold' | 'macOptionIsMeta' | 'popOnBell' | 'rightClickSelectsWord' | 'screenKeys' | 'useFlowControl' | 'visualBell', value: boolean): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'colors', value: string[]): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'fontSize' | 'letterSpacing' | 'lineHeight' | 'tabStopWidth' | 'scrollback', value: number): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'handler', value: (data: string) => void): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'theme', value: ITheme): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: 'cols' | 'rows', value: number): void;
|
|
/**
|
|
* Sets an option on the terminal.
|
|
* @param key The option key.
|
|
* @param value The option value.
|
|
*/
|
|
setOption(key: string, value: any): void;
|
|
|
|
/**
|
|
* Tells the renderer to refresh terminal content between two rows
|
|
* (inclusive) at the next opportunity.
|
|
* @param start The row to start from (between 0 and this.rows - 1).
|
|
* @param end The row to end at (between start and this.rows - 1).
|
|
*/
|
|
refresh(start: number, end: number): void;
|
|
|
|
/**
|
|
* Perform a full reset (RIS, aka '\x1bc').
|
|
*/
|
|
reset(): void
|
|
|
|
/**
|
|
* Applies an addon to the Terminal prototype, making it available to all
|
|
* newly created Terminals.
|
|
* @param addon The addon to apply.
|
|
*/
|
|
static applyAddon(addon: any): void;
|
|
}
|
|
}
|
|
|
|
// Modifications to official .d.ts below
|
|
declare module 'vscode-xterm' {
|
|
interface TerminalCore {
|
|
debug: boolean;
|
|
|
|
buffer: {
|
|
y: number;
|
|
ybase: number;
|
|
ydisp: number;
|
|
x: number;
|
|
lines: any[];
|
|
|
|
translateBufferLineToString(lineIndex: number, trimRight: boolean): string;
|
|
};
|
|
|
|
send(text: string): void;
|
|
|
|
/**
|
|
* Emit an event on the terminal.
|
|
*/
|
|
emit(type: string, data: any): void;
|
|
|
|
charMeasure?: { height: number, width: number };
|
|
|
|
renderer: {
|
|
_renderLayers: any[];
|
|
onIntersectionChange: any;
|
|
};
|
|
}
|
|
|
|
interface Terminal {
|
|
_core: TerminalCore;
|
|
|
|
webLinksInit(handler?: (event: MouseEvent, uri: string) => void, options?: ILinkMatcherOptions): void;
|
|
winptyCompatInit(): void;
|
|
|
|
/**
|
|
* Find the next instance of the term, then scroll to and select it. If it
|
|
* doesn't exist, do nothing.
|
|
* @param term Tne search term.
|
|
* @return Whether a result was found.
|
|
*/
|
|
findNext(term: string): boolean;
|
|
|
|
/**
|
|
* Find the previous instance of the term, then scroll to and select it. If it
|
|
* doesn't exist, do nothing.
|
|
* @param term Tne search term.
|
|
* @return Whether a result was found.
|
|
*/
|
|
findPrevious(term: string): boolean;
|
|
}
|
|
}
|