@xterm/xterm 6.1.0-beta.3 → 6.1.0-beta.300
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 +69 -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 +57 -45
- package/src/browser/AccessibilityManager.ts +18 -13
- package/src/browser/Clipboard.ts +8 -5
- package/src/browser/ColorContrastCache.ts +3 -3
- package/src/browser/CoreBrowserTerminal.ts +180 -352
- package/src/browser/Dom.ts +178 -0
- package/src/browser/Linkifier.ts +14 -14
- package/src/browser/OscLinkProvider.ts +87 -19
- package/src/browser/RenderDebouncer.ts +7 -9
- package/src/browser/TimeBasedDebouncer.ts +12 -5
- package/src/browser/Types.ts +16 -14
- package/src/browser/Viewport.ts +58 -23
- package/src/browser/decorations/BufferDecorationRenderer.ts +3 -3
- package/src/browser/decorations/ColorZoneStore.ts +1 -1
- package/src/browser/decorations/OverviewRulerRenderer.ts +36 -20
- package/src/browser/input/CompositionHelper.ts +47 -11
- package/src/browser/input/Mouse.ts +5 -9
- package/src/browser/input/MoveToCell.ts +3 -3
- package/src/browser/public/Terminal.ts +33 -36
- package/src/browser/renderer/dom/DomRenderer.ts +265 -89
- package/src/browser/renderer/dom/DomRendererRowFactory.ts +34 -27
- package/src/browser/renderer/dom/WidthCache.ts +57 -55
- package/src/browser/renderer/shared/Constants.ts +7 -0
- package/src/browser/renderer/shared/RendererUtils.ts +1 -1
- package/src/browser/renderer/shared/SelectionRenderModel.ts +2 -2
- package/src/browser/renderer/shared/TextBlinkStateManager.ts +97 -0
- package/src/browser/renderer/shared/Types.ts +10 -4
- 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 +581 -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/selection/SelectionModel.ts +4 -3
- package/src/browser/services/CharSizeService.ts +4 -4
- package/src/browser/services/CharacterJoinerService.ts +13 -11
- package/src/browser/services/CoreBrowserService.ts +7 -5
- package/src/browser/services/KeyboardService.ts +67 -0
- package/src/browser/services/LinkProviderService.ts +3 -3
- package/src/browser/services/MouseCoordsService.ts +47 -0
- package/src/browser/services/MouseService.ts +610 -23
- package/src/browser/services/RenderService.ts +33 -22
- package/src/browser/services/SelectionService.ts +73 -55
- package/src/browser/services/Services.ts +44 -21
- package/src/browser/services/ThemeService.ts +9 -9
- package/src/common/Async.ts +141 -0
- package/src/common/CircularList.ts +24 -3
- package/src/common/Color.ts +13 -5
- package/src/common/CoreTerminal.ts +62 -38
- package/src/common/Event.ts +118 -0
- package/src/common/InputHandler.ts +303 -104
- package/src/common/Lifecycle.ts +113 -0
- package/src/common/Platform.ts +15 -5
- package/src/common/SortedList.ts +8 -4
- package/src/common/StringBuilder.ts +67 -0
- package/src/common/TaskQueue.ts +17 -8
- package/src/common/Types.ts +68 -206
- package/src/common/Version.ts +9 -0
- package/src/common/WindowsMode.ts +2 -2
- package/src/common/buffer/AttributeData.ts +3 -2
- package/src/common/buffer/Buffer.ts +49 -34
- package/src/common/buffer/BufferLine.ts +175 -100
- package/src/common/buffer/BufferLineStringCache.ts +69 -0
- package/src/common/buffer/BufferReflow.ts +7 -4
- package/src/common/buffer/BufferSet.ts +13 -9
- package/src/common/buffer/CellData.ts +61 -4
- package/src/common/buffer/Constants.ts +13 -13
- package/src/common/buffer/Marker.ts +4 -4
- package/src/common/buffer/Types.ts +153 -3
- package/src/common/data/Charsets.ts +5 -8
- package/src/common/data/EscapeSequences.ts +71 -70
- package/src/common/input/Keyboard.ts +17 -10
- package/src/common/input/KittyKeyboard.ts +526 -0
- package/src/common/input/TextDecoder.ts +3 -3
- package/src/common/input/UnicodeV6.ts +3 -2
- package/src/common/input/Win32InputMode.ts +297 -0
- package/src/common/input/WriteBuffer.ts +108 -39
- package/src/common/input/XParseColor.ts +2 -2
- package/src/common/parser/ApcParser.ts +196 -0
- package/src/common/parser/Constants.ts +14 -4
- package/src/common/parser/DcsParser.ts +15 -16
- package/src/common/parser/EscapeSequenceParser.ts +214 -72
- package/src/common/parser/OscParser.ts +14 -15
- package/src/common/parser/Params.ts +31 -12
- package/src/common/parser/Types.ts +40 -30
- package/src/common/public/BufferApiView.ts +3 -3
- package/src/common/public/BufferLineApiView.ts +4 -4
- package/src/common/public/BufferNamespaceApi.ts +5 -5
- package/src/common/public/ParserApi.ts +5 -2
- package/src/common/public/UnicodeApi.ts +1 -1
- package/src/common/services/BufferService.ts +17 -13
- package/src/common/services/CharsetService.ts +6 -2
- package/src/common/services/CoreService.ts +23 -10
- package/src/common/services/DecorationService.ts +260 -15
- package/src/common/services/InstantiationService.ts +2 -2
- package/src/common/services/LogService.ts +2 -32
- package/src/common/services/{CoreMouseService.ts → MouseStateService.ts} +22 -133
- package/src/common/services/OptionsService.ts +17 -10
- package/src/common/services/OscLinkService.ts +3 -2
- package/src/common/services/ServiceRegistry.ts +14 -8
- package/src/common/services/Services.ts +54 -54
- package/src/common/services/UnicodeService.ts +6 -11
- package/typings/xterm.d.ts +333 -47
- package/src/common/Clone.ts +0 -23
- 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
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Copyright (c) 2022 The xterm.js authors. All rights reserved.
|
|
3
3
|
* @license MIT
|
|
4
4
|
*/
|
|
5
|
-
import { IBufferService, IOscLinkService } from '
|
|
6
|
-
import {
|
|
5
|
+
import { IBufferService, IOscLinkService } from './Services';
|
|
6
|
+
import { IOscLinkData } from '../Types';
|
|
7
|
+
import { IMarker } from '../buffer/Types';
|
|
7
8
|
|
|
8
9
|
export class OscLinkService implements IOscLinkService {
|
|
9
10
|
public serviceBrand: any;
|
|
@@ -9,15 +9,21 @@
|
|
|
9
9
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
10
10
|
*--------------------------------------------------------------------------------------------*/
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
export interface IServiceIdentifier<T> {
|
|
13
|
+
(...args: any[]): void;
|
|
14
|
+
type: T;
|
|
15
|
+
_id: string;
|
|
16
|
+
}
|
|
13
17
|
|
|
14
|
-
const
|
|
15
|
-
|
|
18
|
+
const enum Constants {
|
|
19
|
+
DI_TARGET = 'di$target',
|
|
20
|
+
DI_DEPENDENCIES = 'di$dependencies'
|
|
21
|
+
}
|
|
16
22
|
|
|
17
23
|
export const serviceRegistry: Map<string, IServiceIdentifier<any>> = new Map();
|
|
18
24
|
|
|
19
25
|
export function getServiceDependencies(ctor: any): { id: IServiceIdentifier<any>, index: number, optional: boolean }[] {
|
|
20
|
-
return ctor[DI_DEPENDENCIES] || [];
|
|
26
|
+
return ctor[Constants.DI_DEPENDENCIES] || [];
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
export function createDecorator<T>(id: string): IServiceIdentifier<T> {
|
|
@@ -40,10 +46,10 @@ export function createDecorator<T>(id: string): IServiceIdentifier<T> {
|
|
|
40
46
|
}
|
|
41
47
|
|
|
42
48
|
function storeServiceDependency(id: Function, target: Function, index: number): void {
|
|
43
|
-
if ((target as any)[DI_TARGET] === target) {
|
|
44
|
-
(target as any)[DI_DEPENDENCIES].push({ id, index });
|
|
49
|
+
if ((target as any)[Constants.DI_TARGET] === target) {
|
|
50
|
+
(target as any)[Constants.DI_DEPENDENCIES].push({ id, index });
|
|
45
51
|
} else {
|
|
46
|
-
(target as any)[DI_DEPENDENCIES] = [{ id, index }];
|
|
47
|
-
(target as any)[DI_TARGET] = target;
|
|
52
|
+
(target as any)[Constants.DI_DEPENDENCIES] = [{ id, index }];
|
|
53
|
+
(target as any)[Constants.DI_TARGET] = target;
|
|
48
54
|
}
|
|
49
55
|
}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* @license MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { IDecoration, IDecorationOptions, ILinkHandler, ILogger, IWindowsPty,
|
|
7
|
-
import { CoreMouseEncoding, CoreMouseEventType, CursorInactiveStyle, CursorStyle,
|
|
8
|
-
import { IBuffer, IBufferSet } from '
|
|
9
|
-
import { createDecorator } from '
|
|
10
|
-
import type { Emitter,
|
|
6
|
+
import type { IDecoration, IDecorationOptions, ILinkHandler, ILogger, IWindowsPty, IOverviewRulerOptions } from '@xterm/xterm';
|
|
7
|
+
import { CoreMouseEncoding, CoreMouseEventType, CursorInactiveStyle, CursorStyle, ICharset, IColor, ICoreMouseEvent, ICoreMouseProtocol, IDecPrivateModes, IDisposable, IKittyKeyboardState, IModes, IOscLinkData, IWindowOptions } from '../Types';
|
|
8
|
+
import { IAttributeData, IBuffer, IBufferSet } from '../buffer/Types';
|
|
9
|
+
import { createDecorator, IServiceIdentifier } from './ServiceRegistry';
|
|
10
|
+
import type { Emitter, IEvent } from '../Event';
|
|
11
11
|
|
|
12
12
|
export const IBufferService = createDecorator<IBufferService>('BufferService');
|
|
13
13
|
export interface IBufferService {
|
|
@@ -18,8 +18,8 @@ export interface IBufferService {
|
|
|
18
18
|
readonly buffer: IBuffer;
|
|
19
19
|
readonly buffers: IBufferSet;
|
|
20
20
|
isUserScrolling: boolean;
|
|
21
|
-
onResize:
|
|
22
|
-
onScroll:
|
|
21
|
+
onResize: IEvent<IBufferResizeEvent>;
|
|
22
|
+
onScroll: IEvent<number>;
|
|
23
23
|
scroll(eraseAttr: IAttributeData, isWrapped?: boolean): void;
|
|
24
24
|
scrollLines(disp: number, suppressScrollEvent?: boolean): void;
|
|
25
25
|
resize(cols: number, rows: number): void;
|
|
@@ -33,8 +33,8 @@ export interface IBufferResizeEvent {
|
|
|
33
33
|
rowsChanged: boolean;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
export const
|
|
37
|
-
export interface
|
|
36
|
+
export const IMouseStateService = createDecorator<IMouseStateService>('MouseStateService');
|
|
37
|
+
export interface IMouseStateService {
|
|
38
38
|
serviceBrand: undefined;
|
|
39
39
|
|
|
40
40
|
activeProtocol: string;
|
|
@@ -43,33 +43,17 @@ export interface ICoreMouseService {
|
|
|
43
43
|
addProtocol(name: string, protocol: ICoreMouseProtocol): void;
|
|
44
44
|
addEncoding(name: string, encoding: CoreMouseEncoding): void;
|
|
45
45
|
reset(): void;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* Triggers a mouse event to be sent.
|
|
49
|
-
*
|
|
50
|
-
* Returns true if the event passed all protocol restrictions and a report
|
|
51
|
-
* was sent, otherwise false. The return value may be used to decide whether
|
|
52
|
-
* the default event action in the bowser component should be omitted.
|
|
53
|
-
*
|
|
54
|
-
* Note: The method will change values of the given event object
|
|
55
|
-
* to fullfill protocol and encoding restrictions.
|
|
56
|
-
*/
|
|
57
|
-
triggerMouseEvent(event: ICoreMouseEvent): boolean;
|
|
46
|
+
setCustomWheelEventHandler(customWheelEventHandler: ((event: WheelEvent) => boolean) | undefined): void;
|
|
47
|
+
allowCustomWheelEvent(ev: WheelEvent): boolean;
|
|
58
48
|
|
|
59
49
|
/**
|
|
60
50
|
* Event to announce changes in mouse tracking.
|
|
61
51
|
*/
|
|
62
|
-
onProtocolChange:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
explainEvents(events: CoreMouseEventType): { [event: string]: boolean };
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Process wheel event taking partial scroll into account.
|
|
71
|
-
*/
|
|
72
|
-
consumeWheelEvent(ev: WheelEvent, cellHeight?: number, dpr?: number): number;
|
|
52
|
+
onProtocolChange: IEvent<CoreMouseEventType>;
|
|
53
|
+
restrictMouseEvent(event: ICoreMouseEvent): boolean;
|
|
54
|
+
encodeMouseEvent(event: ICoreMouseEvent): string;
|
|
55
|
+
readonly isDefaultEncoding: boolean;
|
|
56
|
+
readonly isPixelEncoding: boolean;
|
|
73
57
|
}
|
|
74
58
|
|
|
75
59
|
export const ICoreService = createDecorator<ICoreService>('CoreService');
|
|
@@ -85,11 +69,12 @@ export interface ICoreService {
|
|
|
85
69
|
|
|
86
70
|
readonly modes: IModes;
|
|
87
71
|
readonly decPrivateModes: IDecPrivateModes;
|
|
72
|
+
readonly kittyKeyboard: IKittyKeyboardState;
|
|
88
73
|
|
|
89
|
-
readonly onData:
|
|
90
|
-
readonly onUserInput:
|
|
91
|
-
readonly onBinary:
|
|
92
|
-
readonly onRequestScrollToBottom:
|
|
74
|
+
readonly onData: IEvent<string>;
|
|
75
|
+
readonly onUserInput: IEvent<void>;
|
|
76
|
+
readonly onBinary: IEvent<string>;
|
|
77
|
+
readonly onRequestScrollToBottom: IEvent<void>;
|
|
93
78
|
|
|
94
79
|
reset(): void;
|
|
95
80
|
|
|
@@ -116,6 +101,7 @@ export interface ICharsetService {
|
|
|
116
101
|
|
|
117
102
|
charset: ICharset | undefined;
|
|
118
103
|
readonly glevel: number;
|
|
104
|
+
readonly charsets: (ICharset | undefined)[];
|
|
119
105
|
|
|
120
106
|
reset(): void;
|
|
121
107
|
|
|
@@ -133,12 +119,6 @@ export interface ICharsetService {
|
|
|
133
119
|
setgCharset(g: number, charset: ICharset | undefined): void;
|
|
134
120
|
}
|
|
135
121
|
|
|
136
|
-
export interface IServiceIdentifier<T> {
|
|
137
|
-
(...args: any[]): void;
|
|
138
|
-
type: T;
|
|
139
|
-
_id: string;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
122
|
export interface IBrandedService {
|
|
143
123
|
serviceBrand: undefined;
|
|
144
124
|
}
|
|
@@ -199,7 +179,7 @@ export interface IOptionsService {
|
|
|
199
179
|
/**
|
|
200
180
|
* Adds an event listener for when any option changes.
|
|
201
181
|
*/
|
|
202
|
-
readonly onOptionChange:
|
|
182
|
+
readonly onOptionChange: IEvent<keyof ITerminalOptions>;
|
|
203
183
|
|
|
204
184
|
/**
|
|
205
185
|
* Adds an event listener for when a specific option changes, this is a convenience method that is
|
|
@@ -227,15 +207,13 @@ export interface ITerminalOptions {
|
|
|
227
207
|
cols?: number;
|
|
228
208
|
convertEol?: boolean;
|
|
229
209
|
cursorBlink?: boolean;
|
|
210
|
+
blinkIntervalDuration?: number;
|
|
230
211
|
cursorStyle?: CursorStyle;
|
|
231
212
|
cursorWidth?: number;
|
|
232
213
|
cursorInactiveStyle?: CursorInactiveStyle;
|
|
233
|
-
customGlyphs?: boolean;
|
|
234
214
|
disableStdin?: boolean;
|
|
235
215
|
documentOverride?: any | null;
|
|
236
216
|
drawBoldTextInBrightColors?: boolean;
|
|
237
|
-
/** @deprecated No longer supported */
|
|
238
|
-
fastScrollModifier?: 'none' | 'alt' | 'ctrl' | 'shift';
|
|
239
217
|
fastScrollSensitivity?: number;
|
|
240
218
|
fontSize?: number;
|
|
241
219
|
fontFamily?: string;
|
|
@@ -250,10 +228,12 @@ export interface ITerminalOptions {
|
|
|
250
228
|
macOptionIsMeta?: boolean;
|
|
251
229
|
macOptionClickForcesSelection?: boolean;
|
|
252
230
|
minimumContrastRatio?: number;
|
|
231
|
+
mouseEventsRequireAlt?: boolean;
|
|
253
232
|
reflowCursorLine?: boolean;
|
|
254
233
|
rescaleOverlappingGlyphs?: boolean;
|
|
255
234
|
rightClickSelectsWord?: boolean;
|
|
256
235
|
rows?: number;
|
|
236
|
+
showCursorImmediately?: boolean;
|
|
257
237
|
screenReaderMode?: boolean;
|
|
258
238
|
scrollback?: number;
|
|
259
239
|
scrollOnUserInput?: boolean;
|
|
@@ -261,15 +241,15 @@ export interface ITerminalOptions {
|
|
|
261
241
|
smoothScrollDuration?: number;
|
|
262
242
|
tabStopWidth?: number;
|
|
263
243
|
theme?: ITheme;
|
|
264
|
-
windowsMode?: boolean;
|
|
265
244
|
windowsPty?: IWindowsPty;
|
|
266
245
|
windowOptions?: IWindowOptions;
|
|
267
246
|
wordSeparator?: string;
|
|
268
|
-
|
|
247
|
+
quirks?: ITerminalQuirks;
|
|
248
|
+
scrollbar?: IScrollbarOptions;
|
|
269
249
|
scrollOnEraseInDisplay?: boolean;
|
|
250
|
+
vtExtensions?: IVtExtensions;
|
|
270
251
|
|
|
271
252
|
[key: string]: any;
|
|
272
|
-
cancelEvents: boolean;
|
|
273
253
|
termName: string;
|
|
274
254
|
}
|
|
275
255
|
|
|
@@ -304,6 +284,24 @@ export interface ITheme {
|
|
|
304
284
|
extendedAnsi?: string[];
|
|
305
285
|
}
|
|
306
286
|
|
|
287
|
+
export interface ITerminalQuirks {
|
|
288
|
+
allowSetCursorBlink?: boolean;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
export interface IScrollbarOptions {
|
|
292
|
+
showScrollbar?: boolean;
|
|
293
|
+
showArrows?: boolean;
|
|
294
|
+
width?: number;
|
|
295
|
+
overviewRuler?: IOverviewRulerOptions;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export interface IVtExtensions {
|
|
299
|
+
kittyKeyboard?: boolean;
|
|
300
|
+
kittySgrBoldFaintControl?: boolean;
|
|
301
|
+
win32InputMode?: boolean;
|
|
302
|
+
colorSchemeQuery?: boolean;
|
|
303
|
+
}
|
|
304
|
+
|
|
307
305
|
export const IOscLinkService = createDecorator<IOscLinkService>('OscLinkService');
|
|
308
306
|
export interface IOscLinkService {
|
|
309
307
|
serviceBrand: undefined;
|
|
@@ -346,14 +344,14 @@ export type UnicodeCharWidth = 0 | 1 | 2;
|
|
|
346
344
|
export const IUnicodeService = createDecorator<IUnicodeService>('UnicodeService');
|
|
347
345
|
export interface IUnicodeService {
|
|
348
346
|
serviceBrand: undefined;
|
|
349
|
-
/** Register
|
|
347
|
+
/** Register a Unicode version provider. */
|
|
350
348
|
register(provider: IUnicodeVersionProvider): void;
|
|
351
349
|
/** Registered Unicode versions. */
|
|
352
350
|
readonly versions: string[];
|
|
353
351
|
/** Currently active version. */
|
|
354
352
|
activeVersion: string;
|
|
355
|
-
/** Event triggered
|
|
356
|
-
readonly onChange:
|
|
353
|
+
/** Event triggered when the active version changes. */
|
|
354
|
+
readonly onChange: IEvent<string>;
|
|
357
355
|
|
|
358
356
|
/**
|
|
359
357
|
* Unicode version dependent
|
|
@@ -378,8 +376,8 @@ export const IDecorationService = createDecorator<IDecorationService>('Decoratio
|
|
|
378
376
|
export interface IDecorationService extends IDisposable {
|
|
379
377
|
serviceBrand: undefined;
|
|
380
378
|
readonly decorations: IterableIterator<IInternalDecoration>;
|
|
381
|
-
readonly onDecorationRegistered:
|
|
382
|
-
readonly onDecorationRemoved:
|
|
379
|
+
readonly onDecorationRegistered: IEvent<IInternalDecoration>;
|
|
380
|
+
readonly onDecorationRemoved: IEvent<IInternalDecoration>;
|
|
383
381
|
registerDecoration(decorationOptions: IDecorationOptions): IDecoration | undefined;
|
|
384
382
|
reset(): void;
|
|
385
383
|
/**
|
|
@@ -393,4 +391,6 @@ export interface IInternalDecoration extends IDecoration {
|
|
|
393
391
|
readonly backgroundColorRGB: IColor | undefined;
|
|
394
392
|
readonly foregroundColorRGB: IColor | undefined;
|
|
395
393
|
readonly onRenderEmitter: Emitter<HTMLElement>;
|
|
394
|
+
/** @internal Start line for line-index removal; kept in sync on buffer line shifts. */
|
|
395
|
+
_indexedStartLine: number;
|
|
396
396
|
}
|
|
@@ -3,16 +3,15 @@
|
|
|
3
3
|
* @license MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { Emitter } from 'vs/base/common/event';
|
|
6
|
+
import { IUnicodeService, IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from './Services';
|
|
7
|
+
import { Emitter } from '../Event';
|
|
9
8
|
|
|
10
9
|
export class UnicodeService implements IUnicodeService {
|
|
11
10
|
public serviceBrand: any;
|
|
12
11
|
|
|
13
12
|
private _providers: {[key: string]: IUnicodeVersionProvider} = Object.create(null);
|
|
14
13
|
private _active: string = '';
|
|
15
|
-
private _activeProvider
|
|
14
|
+
private _activeProvider!: IUnicodeVersionProvider;
|
|
16
15
|
|
|
17
16
|
private readonly _onChange = new Emitter<string>();
|
|
18
17
|
public readonly onChange = this._onChange.event;
|
|
@@ -30,13 +29,6 @@ export class UnicodeService implements IUnicodeService {
|
|
|
30
29
|
return ((state & 0xffffff) << 3) | ((width & 3) << 1) | (shouldJoin?1:0);
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
constructor() {
|
|
34
|
-
const defaultProvider = new UnicodeV6();
|
|
35
|
-
this.register(defaultProvider);
|
|
36
|
-
this._active = defaultProvider.version;
|
|
37
|
-
this._activeProvider = defaultProvider;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
32
|
public dispose(): void {
|
|
41
33
|
this._onChange.dispose();
|
|
42
34
|
}
|
|
@@ -60,6 +52,9 @@ export class UnicodeService implements IUnicodeService {
|
|
|
60
52
|
|
|
61
53
|
public register(provider: IUnicodeVersionProvider): void {
|
|
62
54
|
this._providers[provider.version] = provider;
|
|
55
|
+
if (!this._active) {
|
|
56
|
+
this.activeVersion = provider.version;
|
|
57
|
+
}
|
|
63
58
|
}
|
|
64
59
|
|
|
65
60
|
/**
|