@xterm/xterm 6.1.0-beta.28 → 6.1.0-beta.281
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 +62 -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 +56 -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 +179 -348
- package/src/browser/Dom.ts +178 -0
- package/src/browser/Linkifier.ts +14 -14
- package/src/browser/OscLinkProvider.ts +86 -18
- 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 +1 -1
- 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 +619 -23
- package/src/browser/services/RenderService.ts +33 -21
- package/src/browser/services/SelectionService.ts +72 -54
- 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 +61 -35
- package/src/common/Event.ts +118 -0
- package/src/common/InputHandler.ts +286 -105
- 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 +1 -1
- package/src/common/WindowsMode.ts +2 -2
- package/src/common/buffer/AttributeData.ts +3 -2
- package/src/common/buffer/Buffer.ts +47 -32
- 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 +4 -7
- 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 -7
- package/src/common/services/OscLinkService.ts +3 -2
- package/src/common/services/ServiceRegistry.ts +14 -8
- package/src/common/services/Services.ts +54 -50
- package/src/common/services/UnicodeService.ts +6 -11
- package/typings/xterm.d.ts +329 -34
- 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
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xterm/xterm",
|
|
3
3
|
"description": "Full xterm terminal, in your browser",
|
|
4
|
-
"version": "6.1.0-beta.
|
|
4
|
+
"version": "6.1.0-beta.281",
|
|
5
5
|
"main": "lib/xterm.js",
|
|
6
6
|
"module": "lib/xterm.mjs",
|
|
7
7
|
"style": "css/xterm.css",
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
"workspaces": [
|
|
12
12
|
"addons/*"
|
|
13
13
|
],
|
|
14
|
+
"overrides": {
|
|
15
|
+
"serialize-javascript": "^7.0.3"
|
|
16
|
+
},
|
|
14
17
|
"keywords": [
|
|
15
18
|
"cli",
|
|
16
19
|
"command-line",
|
|
@@ -27,29 +30,37 @@
|
|
|
27
30
|
"xterm"
|
|
28
31
|
],
|
|
29
32
|
"scripts": {
|
|
30
|
-
"
|
|
33
|
+
"presetup": "npm run build",
|
|
34
|
+
"setup": "npm run esbuild",
|
|
35
|
+
"setup-full": "node bin/setup-full.mjs",
|
|
36
|
+
"postsetup": "npm run esbuild-demo-server",
|
|
31
37
|
"start": "node demo/start",
|
|
38
|
+
"dev": "concurrently -k -p [{name}] -n tsc,esbuild,esbuild-demo-client,esbuild-demo-server,server -c blue,yellow,cyan,green,magenta \"npm:tsc-watch\" \"npm:esbuild-watch\" \"npm:esbuild-demo-client-watch\" \"npm:esbuild-demo-server-watch\" \"npm:start\"",
|
|
32
39
|
"build": "npm run tsc",
|
|
33
40
|
"watch": "npm run tsc-watch",
|
|
34
|
-
"tsc": "
|
|
35
|
-
"tsc-watch": "
|
|
41
|
+
"tsc": "tsgo -b ./tsconfig.all.json",
|
|
42
|
+
"tsc-watch": "tsgo -b -w ./tsconfig.all.json --preserveWatchOutput",
|
|
36
43
|
"esbuild": "node bin/esbuild_all.mjs",
|
|
37
44
|
"esbuild-watch": "node bin/esbuild_all.mjs --watch",
|
|
38
45
|
"esbuild-package": "node bin/esbuild_all.mjs --prod",
|
|
39
46
|
"esbuild-package-watch": "node bin/esbuild_all.mjs --prod --watch",
|
|
40
47
|
"esbuild-package-headless-only": "node bin/esbuild.mjs --prod --headless",
|
|
41
|
-
"esbuild-demo": "node bin/esbuild.mjs --demo-client",
|
|
42
|
-
"esbuild-demo-watch": "node bin/esbuild.mjs --demo-client --watch",
|
|
48
|
+
"esbuild-demo-client": "node bin/esbuild.mjs --demo-client",
|
|
49
|
+
"esbuild-demo-client-watch": "node bin/esbuild.mjs --demo-client --watch",
|
|
50
|
+
"esbuild-demo-server": "node bin/esbuild.mjs --demo-server",
|
|
51
|
+
"esbuild-demo-server-watch": "node bin/esbuild.mjs --demo-server --watch",
|
|
43
52
|
"test": "npm run test-unit",
|
|
44
53
|
"posttest": "npm run lint",
|
|
45
|
-
"lint": "eslint --max-warnings 0 src
|
|
46
|
-
"lint-
|
|
47
|
-
"lint-
|
|
54
|
+
"lint": "oxlint --type-aware --max-warnings 0 src addons demo test && eslint --config eslint.config.naming.mjs --max-warnings 0 src addons demo test",
|
|
55
|
+
"lint-changes": "node ./bin/lint_changes.js",
|
|
56
|
+
"lint-changes-fix": "node ./bin/lint_changes.js --fix",
|
|
57
|
+
"lint-fix": "oxlint --type-aware --fix --max-warnings 0 src addons demo test",
|
|
58
|
+
"lint-api": "oxlint --max-warnings 0 -c .oxlintrc.typings.json typings && eslint --config eslint.config.naming.mjs --max-warnings 0 typings",
|
|
48
59
|
"test-unit": "node ./bin/test_unit.js",
|
|
60
|
+
"test-unit-slow-tests": "npm run test-unit | grep \"ms)\"",
|
|
49
61
|
"test-unit-coverage": "node ./bin/test_unit.js --coverage",
|
|
50
|
-
"test-unit-dev": "cross-env NODE_PATH='./out' mocha",
|
|
51
62
|
"test-integration": "node ./bin/test_integration.js --workers=75%",
|
|
52
|
-
"test-integration-chromium": "node ./bin/test_integration.js --workers=75% \"--project=
|
|
63
|
+
"test-integration-chromium": "node ./bin/test_integration.js --workers=75% \"--project=Chromium\"",
|
|
53
64
|
"test-integration-firefox": "node ./bin/test_integration.js --workers=75% \"--project=FirefoxStable\"",
|
|
54
65
|
"test-integration-webkit": "node ./bin/test_integration.js --workers=75% \"--project=WebKit\"",
|
|
55
66
|
"test-integration-debug": "node ./bin/test_integration.js --workers=1 --headed --timeout=30000",
|
|
@@ -57,7 +68,7 @@
|
|
|
57
68
|
"benchmark-baseline": "NODE_PATH=./out xterm-benchmark -r 5 -c test/benchmark/benchmark.json --baseline out-test/benchmark/*benchmark.js",
|
|
58
69
|
"benchmark-eval": "NODE_PATH=./out xterm-benchmark -r 5 -c test/benchmark/benchmark.json --eval out-test/benchmark/*benchmark.js",
|
|
59
70
|
"clean": "rm -rf lib out addons/*/lib addons/*/out",
|
|
60
|
-
"vtfeatures": "node bin/extract_vtfeatures.js src
|
|
71
|
+
"vtfeatures": "node bin/extract_vtfeatures.js src/*/*.ts src/*/*/*.ts src/*.ts addons/**/src/*.ts",
|
|
61
72
|
"prepackage": "npm run build",
|
|
62
73
|
"package": "webpack",
|
|
63
74
|
"postpackage": "npm run esbuild-package",
|
|
@@ -67,46 +78,46 @@
|
|
|
67
78
|
"prepublishOnly": "npm run package"
|
|
68
79
|
},
|
|
69
80
|
"devDependencies": {
|
|
81
|
+
"@eslint/js": "^10.0.1",
|
|
70
82
|
"@lunapaint/png-codec": "^0.2.0",
|
|
71
|
-
"@playwright/test": "^1.
|
|
72
|
-
"@stylistic/eslint-plugin": "^
|
|
73
|
-
"@types/chai": "^
|
|
74
|
-
"@types/
|
|
75
|
-
"@types/deep-equal": "^1.0.1",
|
|
76
|
-
"@types/express": "4",
|
|
83
|
+
"@playwright/test": "^1.59.1",
|
|
84
|
+
"@stylistic/eslint-plugin": "^5.10.0",
|
|
85
|
+
"@types/chai": "^5.2.3",
|
|
86
|
+
"@types/express": "^5.0.6",
|
|
77
87
|
"@types/express-ws": "^3.0.1",
|
|
78
|
-
"@types/jsdom": "^
|
|
79
|
-
"@types/mocha": "^
|
|
88
|
+
"@types/jsdom": "^28.0.1",
|
|
89
|
+
"@types/mocha": "^10.0.10",
|
|
80
90
|
"@types/node": "^22.19.3",
|
|
81
|
-
"@types/trusted-types": "^1.0.6",
|
|
82
|
-
"@types/utf8": "^3.0.0",
|
|
83
91
|
"@types/webpack": "^5.28.0",
|
|
84
92
|
"@types/ws": "^8.2.0",
|
|
85
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
86
|
-
"@typescript-eslint/parser": "^8.
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"esbuild": "
|
|
91
|
-
"eslint": "^
|
|
92
|
-
"eslint-plugin-jsdoc": "^
|
|
93
|
-
"
|
|
93
|
+
"@typescript-eslint/eslint-plugin": "^8.59.2",
|
|
94
|
+
"@typescript-eslint/parser": "^8.59.2",
|
|
95
|
+
"@typescript/native-preview": "^7.0.0-dev.20260509.2",
|
|
96
|
+
"chai": "^6.2.2",
|
|
97
|
+
"concurrently": "^9.1.2",
|
|
98
|
+
"esbuild": "^0.28.0",
|
|
99
|
+
"eslint": "^10.3.0",
|
|
100
|
+
"eslint-plugin-jsdoc": "^62.9.0",
|
|
101
|
+
"eslint-plugin-oxlint": "^1.67.0",
|
|
102
|
+
"express": "^5.2.1",
|
|
94
103
|
"express-ws": "^5.0.2",
|
|
95
|
-
"jsdom": "^
|
|
96
|
-
"mocha": "^
|
|
104
|
+
"jsdom": "^29.1.1",
|
|
105
|
+
"mocha": "^11.7.5",
|
|
97
106
|
"mustache": "^4.2.0",
|
|
98
|
-
"node-pty": "1.
|
|
99
|
-
"nyc": "^
|
|
100
|
-
"
|
|
107
|
+
"node-pty": "^1.2.0-beta.9",
|
|
108
|
+
"nyc": "^18.0.0",
|
|
109
|
+
"oxlint": "^1.67.0",
|
|
110
|
+
"oxlint-plugin-eslint": "^1.67.0",
|
|
111
|
+
"oxlint-tsgolint": "^0.23.0",
|
|
112
|
+
"source-map-loader": "^5.0.0",
|
|
101
113
|
"source-map-support": "^0.5.20",
|
|
102
|
-
"ts-loader": "^9.
|
|
103
|
-
"typescript": "5.
|
|
104
|
-
"typescript-eslint": "^8.
|
|
105
|
-
"
|
|
106
|
-
"webpack": "^
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"xterm-benchmark": "^0.3.1"
|
|
114
|
+
"ts-loader": "^9.5.7",
|
|
115
|
+
"typescript": "^5.9.3",
|
|
116
|
+
"typescript-eslint": "^8.59.2",
|
|
117
|
+
"webpack": "^5.106.2",
|
|
118
|
+
"webpack-cli": "^7.0.2",
|
|
119
|
+
"ws": "^8.20.0",
|
|
120
|
+
"xterm-benchmark": "^0.3.2"
|
|
110
121
|
},
|
|
111
|
-
"commit": "
|
|
122
|
+
"commit": "2fe3fd13a164f956d0c6a2365fa89feaf4366074"
|
|
112
123
|
}
|
|
@@ -3,16 +3,18 @@
|
|
|
3
3
|
* @license MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import * as Strings from '
|
|
7
|
-
import { ITerminal, IRenderDebouncer } from '
|
|
8
|
-
import { TimeBasedDebouncer } from '
|
|
9
|
-
import { Disposable, toDisposable } from '
|
|
10
|
-
import { ICoreBrowserService, IRenderService } from '
|
|
11
|
-
import { IBuffer } from 'common/buffer/Types';
|
|
12
|
-
import { IInstantiationService } from 'common/services/Services';
|
|
13
|
-
import { addDisposableListener } from '
|
|
14
|
-
|
|
15
|
-
const
|
|
6
|
+
import * as Strings from './LocalizableStrings';
|
|
7
|
+
import { ITerminal, IRenderDebouncer } from './Types';
|
|
8
|
+
import { TimeBasedDebouncer } from './TimeBasedDebouncer';
|
|
9
|
+
import { Disposable, toDisposable } from '../common/Lifecycle';
|
|
10
|
+
import { ICoreBrowserService, IRenderService } from './services/Services';
|
|
11
|
+
import { IBuffer } from '../common/buffer/Types';
|
|
12
|
+
import { IInstantiationService } from '../common/services/Services';
|
|
13
|
+
import { addDisposableListener } from './Dom';
|
|
14
|
+
|
|
15
|
+
const enum Constants {
|
|
16
|
+
MAX_ROWS_TO_READ = 20
|
|
17
|
+
}
|
|
16
18
|
|
|
17
19
|
const enum BoundaryPosition {
|
|
18
20
|
TOP,
|
|
@@ -137,7 +139,7 @@ export class AccessibilityManager extends Disposable {
|
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
private _handleChar(char: string): void {
|
|
140
|
-
if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) {
|
|
142
|
+
if (this._liveRegionLineCount < Constants.MAX_ROWS_TO_READ + 1) {
|
|
141
143
|
if (this._charsToConsume.length > 0) {
|
|
142
144
|
// Have the screen reader ignore the char if it was just input
|
|
143
145
|
const shiftedChar = this._charsToConsume.shift();
|
|
@@ -150,8 +152,8 @@ export class AccessibilityManager extends Disposable {
|
|
|
150
152
|
|
|
151
153
|
if (char === '\n') {
|
|
152
154
|
this._liveRegionLineCount++;
|
|
153
|
-
if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) {
|
|
154
|
-
this._liveRegion.textContent
|
|
155
|
+
if (this._liveRegionLineCount === Constants.MAX_ROWS_TO_READ + 1) {
|
|
156
|
+
this._liveRegion.textContent = Strings.tooMuchOutput.get();
|
|
155
157
|
}
|
|
156
158
|
}
|
|
157
159
|
}
|
|
@@ -203,6 +205,9 @@ export class AccessibilityManager extends Disposable {
|
|
|
203
205
|
if (this._charsToAnnounce.length === 0) {
|
|
204
206
|
return;
|
|
205
207
|
}
|
|
208
|
+
if (this._liveRegion.textContent === Strings.tooMuchOutput.get()) {
|
|
209
|
+
this._clearLiveRegion();
|
|
210
|
+
}
|
|
206
211
|
this._liveRegion.textContent += this._charsToAnnounce;
|
|
207
212
|
this._charsToAnnounce = '';
|
|
208
213
|
}
|
package/src/browser/Clipboard.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* @license MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ISelectionService } from '
|
|
7
|
-
import { ICoreService, IOptionsService } from 'common/services/Services';
|
|
6
|
+
import { ISelectionService } from './services/Services';
|
|
7
|
+
import { ICoreService, IOptionsService } from '../common/services/Services';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Prepares text to be pasted into the terminal by normalizing the line endings
|
|
@@ -19,10 +19,13 @@ export function prepareTextForTerminal(text: string): string {
|
|
|
19
19
|
* @param text The pasted text to bracket
|
|
20
20
|
*/
|
|
21
21
|
export function bracketTextForPaste(text: string, bracketedPasteMode: boolean): string {
|
|
22
|
-
if (bracketedPasteMode) {
|
|
23
|
-
return
|
|
22
|
+
if (!bracketedPasteMode) {
|
|
23
|
+
return text;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
// Sanitize pasted text to prevent injected escape sequences (e.g. exiting bracketed paste)
|
|
26
|
+
// by replacing ESC (\x1b) with its visible representation U+241B (␛).
|
|
27
|
+
const sanitizedText = text.replace(/\x1b/g, '\u241b');
|
|
28
|
+
return `\x1b[200~${sanitizedText}\x1b[201~`;
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
/**
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* @license MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { IColorContrastCache } from '
|
|
7
|
-
import { IColor } from 'common/Types';
|
|
8
|
-
import { TwoKeyMap } from 'common/MultiKeyMap';
|
|
6
|
+
import { IColorContrastCache } from './Types';
|
|
7
|
+
import { IColor } from '../common/Types';
|
|
8
|
+
import { TwoKeyMap } from '../common/MultiKeyMap';
|
|
9
9
|
|
|
10
10
|
export class ColorContrastCache implements IColorContrastCache {
|
|
11
11
|
private _color: TwoKeyMap</* bg */number, /* fg */number, IColor | null> = new TwoKeyMap();
|