diff --git a/bin/extract_vtfeatures.js b/bin/extract_vtfeatures.js
index 9b5ab898..60979cce 100644
--- a/bin/extract_vtfeatures.js
+++ b/bin/extract_vtfeatures.js
@@ -82,14 +82,15 @@ This document lists xterm.js' support of terminal sequences. The sequences are g
- OSC - Operating System Command: sequence starting with \`ESC ]\` (7bit) or OSC (\`\\x9D\`, 8bit)
Application Program Command (APC), Privacy Message (PM) and Start of String (SOS) are recognized but not supported,
-any sequence of these types will be ignored. They are also not hookable by the API.
+any sequence of these types will be silently ignored. They are also not hookable by the API.
-Note that the list only contains sequences implemented in xterm.js' core codebase. Missing sequences are either
-not supported or unstable/experimental. Furthermore addons or integrations can provide additional custom sequences.
+Note that the list only marks sequences implemented in xterm.js' core codebase as supported. Missing sequences are either
+not supported or unstable/experimental. Furthermore addons or integrations can provide additional custom sequences
+(denoted as "External" where known).
To denote the sequences the tables use the same abbreviations as xterm does:
- \`Ps\`: A single (usually optional) numeric parameter, composed of one or more decimal digits.
-- \`Pm\`: A multiple numeric parameter composed of any number of single numeric parameters, separated by ; character(s),
+- \`Pm\`: Multiple numeric parameters composed of any number of single numeric parameters, separated by ; character(s),
e.g. \` Ps ; Ps ; ... \`.
- \`Pt\`: A text parameter composed of printable characters. Note that for most commands with \`Pt\` only
ASCII printables are specified to work. Additionally the parser will let pass any codepoint greater than C1 as printable.
@@ -334,7 +335,9 @@ const MACRO = [
// #P[reason] - partial support with a reason as title
[/#P\[(.*?)\]/g, (s, p1) => `Partial`],
// #B[reason] - supported but broken in a certain way, reason in title
- [/#B\[(.*?)\]/g, (s, p1) => `Broken`]
+ [/#B\[(.*?)\]/g, (s, p1) => `Broken`],
+ // #E[notes] - support via external resource, eg. addon
+ [/#E\[(.*?)\]/g, (s, p1) => `External`]
];
function applyMacros(s) {
diff --git a/src/common/InputHandler.ts b/src/common/InputHandler.ts
index 64352d28..328070ab 100644
--- a/src/common/InputHandler.ts
+++ b/src/common/InputHandler.ts
@@ -47,10 +47,13 @@ const GLEVEL: { [key: string]: number } = { '(': 0, ')': 1, '*': 2, '+': 3, '-':
// @vt: #Y C0 ESC "Escape" "\e, \x1B" "Start of a sequence. Cancels any other sequence."
/**
- * Document common VT features here that are currently unsupported
+ * Document xterm VT features here that are currently unsupported
*/
-// @vt: #N DCS SIXEL "SIXEL Graphics" "DCS Ps ; Ps ; Ps ; q Pt ST" "Draw SIXEL image starting at cursor position."
-// @vt: #N OSC 1 "Set Icon Name" "OSC 1 ; Pt BEL" "Set icon name."
+// @vt: #E[Supported via xterm-addon-image.] DCS SIXEL "SIXEL Graphics" "DCS Ps ; Ps ; Ps ; q Pt ST" "Draw SIXEL image."
+// @vt: #N DCS DECUDK "User Defined Keys" "DCS Ps ; Ps \| Pt ST" "Definitions for user-defined keys."
+// @vt: #N DCS XTGETTCAP "Request Terminfo String" "DCS + q Pt ST" "Request Terminfo String."
+// @vt: #N DCS XTSETTCAP "Set Terminfo Data" "DCS + p Pt ST" "Set Terminfo Data."
+// @vt: #N OSC 1 "Set Icon Name" "OSC 1 ; Pt BEL" "Set icon name."
/**
* Max length of the UTF32 input buffer. Real memory consumption is 4 times higher.
@@ -2281,7 +2284,7 @@ export class InputHandler extends Disposable implements IInputHandler {
* | 7 | Inverse. Flips foreground and background color. | #Y |
* | 8 | Invisible (hidden). | #Y |
* | 9 | Crossed-out characters (strikethrough). | #Y |
- * | 21 | Doubly underlined. | #P[Currently outputs a single underline.] |
+ * | 21 | Doubly underlined. | #Y |
* | 22 | Normal (neither bold nor faint). | #Y |
* | 23 | No italic. | #Y |
* | 24 | Not underlined. | #Y |
@@ -2309,6 +2312,7 @@ export class InputHandler extends Disposable implements IInputHandler {
* | 47 | Background color: White. | #Y |
* | 48 | Background color: Extended color. | #P[Support for RGB and indexed colors, see below.] |
* | 49 | Background color: Default (original). | #Y |
+ * | 58 | Underline color: Extended color. | #P[Support for RGB and indexed colors, see below.] |
* | 90 - 97 | Bright foreground color (analogous to 30 - 37). | #Y |
* | 100 - 107 | Bright background color (analogous to 40 - 47). | #Y |
*
@@ -2318,13 +2322,13 @@ export class InputHandler extends Disposable implements IInputHandler {
* | ------ | ------------------------------------------------------------- | ------- |
* | 0 | No underline. Same as `SGR 24 m`. | #Y |
* | 1 | Single underline. Same as `SGR 4 m`. | #Y |
- * | 2 | Double underline. | #P[Currently outputs a single underline.] |
- * | 3 | Curly underline. | #P[Currently outputs a single underline.] |
- * | 4 | Dotted underline. | #P[Currently outputs a single underline.] |
- * | 5 | Dashed underline. | #P[Currently outputs a single underline.] |
+ * | 2 | Double underline. | #Y |
+ * | 3 | Curly underline. | #Y |
+ * | 4 | Dotted underline. | #Y |
+ * | 5 | Dashed underline. | #Y |
* | other | Single underline. Same as `SGR 4 m`. | #Y |
*
- * Extended colors are supported for foreground (Ps=38) and background (Ps=48) as follows:
+ * Extended colors are supported for foreground (Ps=38), background (Ps=48) and underline (Ps=58) as follows:
*
* | Ps + 1 | Meaning | Support |
* | ------ | ------------------------------------------------------------- | ------- |
@@ -3209,7 +3213,7 @@ export class InputHandler extends Disposable implements IInputHandler {
* Request Status String (DECRQSS), VT420 and up.
* Response: DECRPSS (https://vt100.net/docs/vt510-rm/DECRPSS.html)
*
- * @vt: #P[See limited support below.] DCS DECRQSS "Request Selection or Setting" "DCS $ q Pt ST" "Request several terminal settings."
+ * @vt: #P[Limited support, see below.] DCS DECRQSS "Request Selection or Setting" "DCS $ q Pt ST" "Request several terminal settings."
* Response is in the form `ESC P 1 $ r Pt ST` for valid requests, where `Pt` contains the corresponding CSI string,
* `ESC P 0 ST` for invalid requests.
*
@@ -3220,7 +3224,7 @@ export class InputHandler extends Disposable implements IInputHandler {
* | Graphic Rendition (SGR) | `DCS $ q m ST` | always reporting `0m` (currently broken) |
* | Top and Bottom Margins (DECSTBM) | `DCS $ q r ST` | `Ps ; Ps r` |
* | Cursor Style (DECSCUSR) | `DCS $ q SP q ST` | `Ps SP q` |
- * | Protection Attribute (DECSCA) | `DCS $ q " q ST` | `Ps " q` (DECSCA 2 is reported as 0) |
+ * | Protection Attribute (DECSCA) | `DCS $ q " q ST` | `Ps " q` (DECSCA 2 is reported as Ps = 0) |
* | Conformance Level (DECSCL) | `DCS $ q " p ST` | always reporting `61 ; 1 " p` (DECSCL is unsupported) |
*
*
@@ -3249,32 +3253,3 @@ export class InputHandler extends Disposable implements IInputHandler {
return f(`P0$r`);
}
}
-
-
-/**
- * Unimplemented DCS functions (kept for documentation purpose)
- */
-
-/**
- * DCS Ps; Ps| Pt ST
- * DECUDK (https://vt100.net/docs/vt510-rm/DECUDK.html)
- * not supported
- *
- * @vt: #N DCS DECUDK "User Defined Keys" "DCS Ps ; Ps | Pt ST" "Definitions for user-defined keys."
- */
-
-/**
- * DCS + q Pt ST (xterm)
- * Request Terminfo String
- * not implemented
- *
- * @vt: #N DCS XTGETTCAP "Request Terminfo String" "DCS + q Pt ST" "Request Terminfo String."
- */
-
-/**
- * DCS + p Pt ST (xterm)
- * Set Terminfo Data
- * not supported
- *
- * @vt: #N DCS XTSETTCAP "Set Terminfo Data" "DCS + p Pt ST" "Set Terminfo Data."
- */