@xterm/xterm 6.1.0-beta.2 → 6.1.0-beta.200
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -38
- package/css/xterm.css +29 -22
- package/lib/xterm.js +1 -1
- package/lib/xterm.js.map +1 -1
- package/lib/xterm.mjs +8 -34
- package/lib/xterm.mjs.map +4 -4
- package/package.json +36 -24
- package/src/browser/AccessibilityManager.ts +6 -3
- package/src/browser/Clipboard.ts +6 -3
- package/src/browser/CoreBrowserTerminal.ts +147 -318
- package/src/browser/Dom.ts +178 -0
- package/src/browser/Linkifier.ts +11 -11
- package/src/browser/OscLinkProvider.ts +4 -2
- package/src/browser/RenderDebouncer.ts +2 -2
- package/src/browser/TimeBasedDebouncer.ts +2 -2
- package/src/browser/Types.ts +12 -11
- package/src/browser/Viewport.ts +55 -20
- package/src/browser/decorations/BufferDecorationRenderer.ts +1 -1
- package/src/browser/decorations/OverviewRulerRenderer.ts +33 -17
- package/src/browser/input/CompositionHelper.ts +44 -8
- package/src/browser/public/Terminal.ts +25 -28
- package/src/browser/renderer/dom/DomRenderer.ts +205 -41
- package/src/browser/renderer/dom/DomRendererRowFactory.ts +19 -13
- package/src/browser/renderer/dom/WidthCache.ts +54 -52
- package/src/browser/renderer/shared/Constants.ts +7 -0
- package/src/browser/renderer/shared/TextBlinkStateManager.ts +97 -0
- package/src/browser/renderer/shared/Types.ts +8 -2
- package/src/browser/scrollable/abstractScrollbar.ts +300 -0
- package/src/browser/scrollable/fastDomNode.ts +126 -0
- package/src/browser/scrollable/globalPointerMoveMonitor.ts +90 -0
- package/src/browser/scrollable/horizontalScrollbar.ts +85 -0
- package/src/browser/scrollable/mouseEvent.ts +292 -0
- package/src/browser/scrollable/scrollable.ts +486 -0
- package/src/browser/scrollable/scrollableElement.ts +579 -0
- package/src/browser/scrollable/scrollableElementOptions.ts +161 -0
- package/src/browser/scrollable/scrollbarArrow.ts +110 -0
- package/src/browser/scrollable/scrollbarState.ts +246 -0
- package/src/browser/scrollable/scrollbarVisibilityController.ts +113 -0
- package/src/browser/scrollable/touch.ts +485 -0
- package/src/browser/scrollable/verticalScrollbar.ts +143 -0
- package/src/browser/scrollable/widget.ts +23 -0
- package/src/browser/services/CharSizeService.ts +2 -2
- package/src/browser/services/CoreBrowserService.ts +7 -5
- package/src/browser/services/KeyboardService.ts +67 -0
- package/src/browser/services/LinkProviderService.ts +1 -1
- package/src/browser/services/MouseCoordsService.ts +47 -0
- package/src/browser/services/MouseService.ts +518 -25
- package/src/browser/services/RenderService.ts +22 -16
- package/src/browser/services/SelectionService.ts +16 -8
- package/src/browser/services/Services.ts +40 -17
- package/src/browser/services/ThemeService.ts +2 -2
- package/src/common/Async.ts +105 -0
- package/src/common/CircularList.ts +2 -2
- package/src/common/Color.ts +8 -0
- package/src/common/CoreTerminal.ts +29 -21
- package/src/common/Event.ts +118 -0
- package/src/common/InputHandler.ts +256 -36
- package/src/common/Lifecycle.ts +113 -0
- package/src/common/Platform.ts +13 -3
- package/src/common/SortedList.ts +7 -3
- package/src/common/TaskQueue.ts +14 -5
- package/src/common/Types.ts +36 -16
- package/src/common/Version.ts +9 -0
- package/src/common/buffer/Buffer.ts +22 -16
- package/src/common/buffer/BufferLine.ts +4 -5
- package/src/common/buffer/BufferSet.ts +7 -6
- package/src/common/buffer/CellData.ts +57 -0
- package/src/common/buffer/Marker.ts +2 -2
- package/src/common/buffer/Types.ts +6 -2
- package/src/common/data/Charsets.ts +1 -1
- package/src/common/data/EscapeSequences.ts +71 -70
- package/src/common/input/Keyboard.ts +14 -7
- package/src/common/input/KittyKeyboard.ts +519 -0
- package/src/common/input/Win32InputMode.ts +297 -0
- package/src/common/input/WriteBuffer.ts +34 -2
- package/src/common/input/XParseColor.ts +2 -2
- package/src/common/parser/ApcParser.ts +245 -0
- package/src/common/parser/Constants.ts +22 -4
- package/src/common/parser/DcsParser.ts +5 -5
- package/src/common/parser/EscapeSequenceParser.ts +155 -43
- package/src/common/parser/OscParser.ts +5 -5
- package/src/common/parser/Types.ts +34 -1
- package/src/common/public/BufferLineApiView.ts +2 -2
- package/src/common/public/BufferNamespaceApi.ts +2 -2
- package/src/common/public/ParserApi.ts +3 -0
- package/src/common/services/BufferService.ts +8 -5
- package/src/common/services/CharsetService.ts +4 -0
- package/src/common/services/CoreService.ts +18 -4
- package/src/common/services/DecorationService.ts +24 -8
- package/src/common/services/LogService.ts +1 -31
- package/src/common/services/{CoreMouseService.ts → MouseStateService.ts} +21 -132
- package/src/common/services/OptionsService.ts +13 -7
- package/src/common/services/Services.ts +47 -44
- package/src/common/services/UnicodeService.ts +1 -1
- package/typings/xterm.d.ts +320 -45
- package/src/common/TypedArrayUtils.ts +0 -17
- package/src/vs/base/browser/browser.ts +0 -141
- package/src/vs/base/browser/canIUse.ts +0 -49
- package/src/vs/base/browser/dom.ts +0 -2369
- package/src/vs/base/browser/fastDomNode.ts +0 -316
- package/src/vs/base/browser/globalPointerMoveMonitor.ts +0 -112
- package/src/vs/base/browser/iframe.ts +0 -135
- package/src/vs/base/browser/keyboardEvent.ts +0 -213
- package/src/vs/base/browser/mouseEvent.ts +0 -229
- package/src/vs/base/browser/touch.ts +0 -372
- package/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts +0 -303
- package/src/vs/base/browser/ui/scrollbar/horizontalScrollbar.ts +0 -114
- package/src/vs/base/browser/ui/scrollbar/scrollableElement.ts +0 -720
- package/src/vs/base/browser/ui/scrollbar/scrollableElementOptions.ts +0 -165
- package/src/vs/base/browser/ui/scrollbar/scrollbarArrow.ts +0 -114
- package/src/vs/base/browser/ui/scrollbar/scrollbarState.ts +0 -243
- package/src/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.ts +0 -118
- package/src/vs/base/browser/ui/scrollbar/verticalScrollbar.ts +0 -116
- package/src/vs/base/browser/ui/widget.ts +0 -57
- package/src/vs/base/browser/window.ts +0 -14
- package/src/vs/base/common/arrays.ts +0 -887
- package/src/vs/base/common/arraysFind.ts +0 -202
- package/src/vs/base/common/assert.ts +0 -71
- package/src/vs/base/common/async.ts +0 -1992
- package/src/vs/base/common/cancellation.ts +0 -148
- package/src/vs/base/common/charCode.ts +0 -450
- package/src/vs/base/common/collections.ts +0 -140
- package/src/vs/base/common/decorators.ts +0 -130
- package/src/vs/base/common/equals.ts +0 -146
- package/src/vs/base/common/errors.ts +0 -303
- package/src/vs/base/common/event.ts +0 -1778
- package/src/vs/base/common/functional.ts +0 -32
- package/src/vs/base/common/hash.ts +0 -316
- package/src/vs/base/common/iterator.ts +0 -159
- package/src/vs/base/common/keyCodes.ts +0 -526
- package/src/vs/base/common/keybindings.ts +0 -284
- package/src/vs/base/common/lazy.ts +0 -47
- package/src/vs/base/common/lifecycle.ts +0 -801
- package/src/vs/base/common/linkedList.ts +0 -142
- package/src/vs/base/common/map.ts +0 -202
- package/src/vs/base/common/numbers.ts +0 -98
- package/src/vs/base/common/observable.ts +0 -76
- package/src/vs/base/common/observableInternal/api.ts +0 -31
- package/src/vs/base/common/observableInternal/autorun.ts +0 -281
- package/src/vs/base/common/observableInternal/base.ts +0 -489
- package/src/vs/base/common/observableInternal/debugName.ts +0 -145
- package/src/vs/base/common/observableInternal/derived.ts +0 -428
- package/src/vs/base/common/observableInternal/lazyObservableValue.ts +0 -146
- package/src/vs/base/common/observableInternal/logging.ts +0 -328
- package/src/vs/base/common/observableInternal/promise.ts +0 -209
- package/src/vs/base/common/observableInternal/utils.ts +0 -610
- package/src/vs/base/common/platform.ts +0 -281
- package/src/vs/base/common/scrollable.ts +0 -522
- package/src/vs/base/common/sequence.ts +0 -34
- package/src/vs/base/common/stopwatch.ts +0 -43
- package/src/vs/base/common/strings.ts +0 -557
- package/src/vs/base/common/symbols.ts +0 -9
- package/src/vs/base/common/uint.ts +0 -59
- package/src/vs/patches/nls.ts +0 -90
- package/src/vs/typings/base-common.d.ts +0 -20
- package/src/vs/typings/require.d.ts +0 -42
- package/src/vs/typings/vscode-globals-nls.d.ts +0 -36
- package/src/vs/typings/vscode-globals-product.d.ts +0 -33
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { IDisposable, IMarker } from 'common/Types';
|
|
7
|
-
import { Emitter } from '
|
|
8
|
-
import { dispose } from '
|
|
7
|
+
import { Emitter } from 'common/Event';
|
|
8
|
+
import { dispose } from 'common/Lifecycle';
|
|
9
9
|
|
|
10
10
|
export class Marker implements IMarker {
|
|
11
11
|
private static _nextId = 1;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { IAttributeData, ICircularList, IBufferLine, ICellData, IMarker, ICharset, IDisposable } from 'common/Types';
|
|
7
|
-
import type {
|
|
7
|
+
import type { IEvent } from 'common/Event';
|
|
8
8
|
|
|
9
9
|
// BufferIndex denotes a position in the buffer: [rowIndex, colIndex]
|
|
10
10
|
export type BufferIndex = [number, number];
|
|
@@ -22,6 +22,10 @@ export interface IBuffer {
|
|
|
22
22
|
savedY: number;
|
|
23
23
|
savedX: number;
|
|
24
24
|
savedCharset: ICharset | undefined;
|
|
25
|
+
savedCharsets: (ICharset | undefined)[];
|
|
26
|
+
savedGlevel: number;
|
|
27
|
+
savedOriginMode: boolean;
|
|
28
|
+
savedWraparoundMode: boolean;
|
|
25
29
|
savedCurAttrData: IAttributeData;
|
|
26
30
|
isCursorInViewport: boolean;
|
|
27
31
|
markers: IMarker[];
|
|
@@ -42,7 +46,7 @@ export interface IBufferSet extends IDisposable {
|
|
|
42
46
|
normal: IBuffer;
|
|
43
47
|
active: IBuffer;
|
|
44
48
|
|
|
45
|
-
onBufferActivate:
|
|
49
|
+
onBufferActivate: IEvent<{ activeBuffer: IBuffer, inactiveBuffer: IBuffer }>;
|
|
46
50
|
|
|
47
51
|
activateNormalBuffer(): void;
|
|
48
52
|
activateAltBuffer(fillAttr?: IAttributeData): void;
|
|
@@ -7,147 +7,148 @@
|
|
|
7
7
|
* C0 control codes
|
|
8
8
|
* See = https://en.wikipedia.org/wiki/C0_and_C1_control_codes
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export const enum C0 {
|
|
11
11
|
/** Null (Caret = ^@, C = \0) */
|
|
12
|
-
|
|
12
|
+
NUL = '\x00',
|
|
13
13
|
/** Start of Heading (Caret = ^A) */
|
|
14
|
-
|
|
14
|
+
SOH = '\x01',
|
|
15
15
|
/** Start of Text (Caret = ^B) */
|
|
16
|
-
|
|
16
|
+
STX = '\x02',
|
|
17
17
|
/** End of Text (Caret = ^C) */
|
|
18
|
-
|
|
18
|
+
ETX = '\x03',
|
|
19
19
|
/** End of Transmission (Caret = ^D) */
|
|
20
|
-
|
|
20
|
+
EOT = '\x04',
|
|
21
21
|
/** Enquiry (Caret = ^E) */
|
|
22
|
-
|
|
22
|
+
ENQ = '\x05',
|
|
23
23
|
/** Acknowledge (Caret = ^F) */
|
|
24
|
-
|
|
24
|
+
ACK = '\x06',
|
|
25
25
|
/** Bell (Caret = ^G, C = \a) */
|
|
26
|
-
|
|
26
|
+
BEL = '\x07',
|
|
27
27
|
/** Backspace (Caret = ^H, C = \b) */
|
|
28
|
-
|
|
28
|
+
BS = '\x08',
|
|
29
29
|
/** Character Tabulation, Horizontal Tabulation (Caret = ^I, C = \t) */
|
|
30
|
-
|
|
30
|
+
HT = '\x09',
|
|
31
31
|
/** Line Feed (Caret = ^J, C = \n) */
|
|
32
|
-
|
|
32
|
+
LF = '\x0a',
|
|
33
33
|
/** Line Tabulation, Vertical Tabulation (Caret = ^K, C = \v) */
|
|
34
|
-
|
|
34
|
+
VT = '\x0b',
|
|
35
35
|
/** Form Feed (Caret = ^L, C = \f) */
|
|
36
|
-
|
|
36
|
+
FF = '\x0c',
|
|
37
37
|
/** Carriage Return (Caret = ^M, C = \r) */
|
|
38
|
-
|
|
38
|
+
CR = '\x0d',
|
|
39
39
|
/** Shift Out (Caret = ^N) */
|
|
40
|
-
|
|
40
|
+
SO = '\x0e',
|
|
41
41
|
/** Shift In (Caret = ^O) */
|
|
42
|
-
|
|
42
|
+
SI = '\x0f',
|
|
43
43
|
/** Data Link Escape (Caret = ^P) */
|
|
44
|
-
|
|
44
|
+
DLE = '\x10',
|
|
45
45
|
/** Device Control One (XON) (Caret = ^Q) */
|
|
46
|
-
|
|
46
|
+
DC1 = '\x11',
|
|
47
47
|
/** Device Control Two (Caret = ^R) */
|
|
48
|
-
|
|
48
|
+
DC2 = '\x12',
|
|
49
49
|
/** Device Control Three (XOFF) (Caret = ^S) */
|
|
50
|
-
|
|
50
|
+
DC3 = '\x13',
|
|
51
51
|
/** Device Control Four (Caret = ^T) */
|
|
52
|
-
|
|
52
|
+
DC4 = '\x14',
|
|
53
53
|
/** Negative Acknowledge (Caret = ^U) */
|
|
54
|
-
|
|
54
|
+
NAK = '\x15',
|
|
55
55
|
/** Synchronous Idle (Caret = ^V) */
|
|
56
|
-
|
|
56
|
+
SYN = '\x16',
|
|
57
57
|
/** End of Transmission Block (Caret = ^W) */
|
|
58
|
-
|
|
58
|
+
ETB = '\x17',
|
|
59
59
|
/** Cancel (Caret = ^X) */
|
|
60
|
-
|
|
60
|
+
CAN = '\x18',
|
|
61
61
|
/** End of Medium (Caret = ^Y) */
|
|
62
|
-
|
|
62
|
+
EM = '\x19',
|
|
63
63
|
/** Substitute (Caret = ^Z) */
|
|
64
|
-
|
|
64
|
+
SUB = '\x1a',
|
|
65
65
|
/** Escape (Caret = ^[, C = \e) */
|
|
66
|
-
|
|
66
|
+
ESC = '\x1b',
|
|
67
67
|
/** File Separator (Caret = ^\) */
|
|
68
|
-
|
|
68
|
+
FS = '\x1c',
|
|
69
69
|
/** Group Separator (Caret = ^]) */
|
|
70
|
-
|
|
70
|
+
GS = '\x1d',
|
|
71
71
|
/** Record Separator (Caret = ^^) */
|
|
72
|
-
|
|
72
|
+
RS = '\x1e',
|
|
73
73
|
/** Unit Separator (Caret = ^_) */
|
|
74
|
-
|
|
74
|
+
US = '\x1f',
|
|
75
75
|
/** Space */
|
|
76
|
-
|
|
76
|
+
SP = '\x20',
|
|
77
77
|
/** Delete (Caret = ^?) */
|
|
78
|
-
|
|
78
|
+
DEL = '\x7f'
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
/**
|
|
82
82
|
* C1 control codes
|
|
83
83
|
* See = https://en.wikipedia.org/wiki/C0_and_C1_control_codes
|
|
84
84
|
*/
|
|
85
|
-
export
|
|
85
|
+
export const enum C1 {
|
|
86
86
|
/** padding character */
|
|
87
|
-
|
|
87
|
+
PAD = '\x80',
|
|
88
88
|
/** High Octet Preset */
|
|
89
|
-
|
|
89
|
+
HOP = '\x81',
|
|
90
90
|
/** Break Permitted Here */
|
|
91
|
-
|
|
91
|
+
BPH = '\x82',
|
|
92
92
|
/** No Break Here */
|
|
93
|
-
|
|
93
|
+
NBH = '\x83',
|
|
94
94
|
/** Index */
|
|
95
|
-
|
|
95
|
+
IND = '\x84',
|
|
96
96
|
/** Next Line */
|
|
97
|
-
|
|
97
|
+
NEL = '\x85',
|
|
98
98
|
/** Start of Selected Area */
|
|
99
|
-
|
|
99
|
+
SSA = '\x86',
|
|
100
100
|
/** End of Selected Area */
|
|
101
|
-
|
|
101
|
+
ESA = '\x87',
|
|
102
102
|
/** Horizontal Tabulation Set */
|
|
103
|
-
|
|
103
|
+
HTS = '\x88',
|
|
104
104
|
/** Horizontal Tabulation With Justification */
|
|
105
|
-
|
|
105
|
+
HTJ = '\x89',
|
|
106
106
|
/** Vertical Tabulation Set */
|
|
107
|
-
|
|
107
|
+
VTS = '\x8a',
|
|
108
108
|
/** Partial Line Down */
|
|
109
|
-
|
|
109
|
+
PLD = '\x8b',
|
|
110
110
|
/** Partial Line Up */
|
|
111
|
-
|
|
111
|
+
PLU = '\x8c',
|
|
112
112
|
/** Reverse Index */
|
|
113
|
-
|
|
113
|
+
RI = '\x8d',
|
|
114
114
|
/** Single-Shift 2 */
|
|
115
|
-
|
|
115
|
+
SS2 = '\x8e',
|
|
116
116
|
/** Single-Shift 3 */
|
|
117
|
-
|
|
117
|
+
SS3 = '\x8f',
|
|
118
118
|
/** Device Control String */
|
|
119
|
-
|
|
119
|
+
DCS = '\x90',
|
|
120
120
|
/** Private Use 1 */
|
|
121
|
-
|
|
121
|
+
PU1 = '\x91',
|
|
122
122
|
/** Private Use 2 */
|
|
123
|
-
|
|
123
|
+
PU2 = '\x92',
|
|
124
124
|
/** Set Transmit State */
|
|
125
|
-
|
|
125
|
+
STS = '\x93',
|
|
126
126
|
/** Destructive backspace, intended to eliminate ambiguity about meaning of BS. */
|
|
127
|
-
|
|
127
|
+
CCH = '\x94',
|
|
128
128
|
/** Message Waiting */
|
|
129
|
-
|
|
129
|
+
MW = '\x95',
|
|
130
130
|
/** Start of Protected Area */
|
|
131
|
-
|
|
131
|
+
SPA = '\x96',
|
|
132
132
|
/** End of Protected Area */
|
|
133
|
-
|
|
133
|
+
EPA = '\x97',
|
|
134
134
|
/** Start of String */
|
|
135
|
-
|
|
135
|
+
SOS = '\x98',
|
|
136
136
|
/** Single Graphic Character Introducer */
|
|
137
|
-
|
|
137
|
+
SGCI = '\x99',
|
|
138
138
|
/** Single Character Introducer */
|
|
139
|
-
|
|
139
|
+
SCI = '\x9a',
|
|
140
140
|
/** Control Sequence Introducer */
|
|
141
|
-
|
|
141
|
+
CSI = '\x9b',
|
|
142
142
|
/** String Terminator */
|
|
143
|
-
|
|
143
|
+
ST = '\x9c',
|
|
144
144
|
/** Operating System Command */
|
|
145
|
-
|
|
145
|
+
OSC = '\x9d',
|
|
146
146
|
/** Privacy Message */
|
|
147
|
-
|
|
147
|
+
PM = '\x9e',
|
|
148
148
|
/** Application Program Command */
|
|
149
|
-
|
|
149
|
+
APC = '\x9f'
|
|
150
150
|
}
|
|
151
|
-
|
|
152
|
-
|
|
151
|
+
|
|
152
|
+
export const enum C1ESCAPED {
|
|
153
|
+
ST = '\x1b\\'
|
|
153
154
|
}
|
|
@@ -99,7 +99,13 @@ export function evaluateKeyboardEvent(
|
|
|
99
99
|
break;
|
|
100
100
|
case 13:
|
|
101
101
|
// return/enter
|
|
102
|
-
|
|
102
|
+
if (ev.key === 'c' && ev.ctrlKey) {
|
|
103
|
+
// HACK: Safari on iPad, iOS, AppleVisionPro sends key 13 when typing ctrl-c on hardware
|
|
104
|
+
// keyboard
|
|
105
|
+
result.key = C0.ETX;
|
|
106
|
+
} else {
|
|
107
|
+
result.key = ev.altKey ? C0.ESC + C0.CR : C0.CR;
|
|
108
|
+
}
|
|
103
109
|
result.cancel = true;
|
|
104
110
|
break;
|
|
105
111
|
case 27:
|
|
@@ -315,6 +321,8 @@ export function evaluateKeyboardEvent(
|
|
|
315
321
|
result.key = String.fromCharCode(ev.keyCode - 51 + 27);
|
|
316
322
|
} else if (ev.keyCode === 56) {
|
|
317
323
|
result.key = C0.DEL;
|
|
324
|
+
} else if (ev.key === '/') {
|
|
325
|
+
result.key = C0.US; // https://github.com/xtermjs/xterm.js/issues/5457
|
|
318
326
|
} else if (ev.keyCode === 219) {
|
|
319
327
|
result.key = C0.ESC;
|
|
320
328
|
} else if (ev.keyCode === 220) {
|
|
@@ -358,12 +366,11 @@ export function evaluateKeyboardEvent(
|
|
|
358
366
|
// Include only keys that that result in a _single_ character; don't include num lock,
|
|
359
367
|
// volume up, etc.
|
|
360
368
|
result.key = ev.key;
|
|
361
|
-
} else if (ev.key && ev.ctrlKey) {
|
|
362
|
-
|
|
363
|
-
result.key = C0.US;
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
result.key = C0.NUL;
|
|
369
|
+
} else if (ev.key && ev.ctrlKey && ev.shiftKey) {
|
|
370
|
+
switch (ev.code) {
|
|
371
|
+
case 'Minus': result.key = C0.US; break; // ^_ (Ctrl+Shift+-_
|
|
372
|
+
case 'Digit2': result.key = C0.NUL; break; // ^@ (Ctrl+Shift+2)
|
|
373
|
+
case 'Digit6': result.key = C0.RS; break; // ^^ (Ctrl+Shift+6)
|
|
367
374
|
}
|
|
368
375
|
}
|
|
369
376
|
break;
|