@wendongfly/zihi 1.1.0 → 1.1.2
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/dist/index.js +1 -1
- package/dist/lib/xterm/README.md +27 -14
- package/dist/lib/xterm/css/xterm.css +81 -5
- package/dist/lib/xterm/lib/xterm.js +1 -1
- package/dist/lib/xterm/lib/xterm.js.map +1 -1
- package/dist/lib/xterm/lib/xterm.mjs +53 -0
- package/dist/lib/xterm/lib/xterm.mjs.map +7 -0
- package/dist/lib/xterm/package.json +49 -38
- package/dist/lib/xterm/src/browser/AccessibilityManager.ts +185 -50
- package/dist/lib/xterm/src/browser/CoreBrowserTerminal.ts +1339 -0
- package/dist/lib/xterm/src/browser/Linkifier.ts +403 -0
- package/dist/lib/xterm/src/browser/LocalizableStrings.ts +15 -4
- package/dist/lib/xterm/src/browser/OscLinkProvider.ts +2 -1
- package/dist/lib/xterm/src/browser/RenderDebouncer.ts +6 -5
- package/dist/lib/xterm/src/browser/TimeBasedDebouncer.ts +2 -2
- package/dist/lib/xterm/src/browser/Types.ts +226 -0
- package/dist/lib/xterm/src/browser/Viewport.ts +148 -357
- package/dist/lib/xterm/src/browser/decorations/BufferDecorationRenderer.ts +17 -12
- package/dist/lib/xterm/src/browser/decorations/OverviewRulerRenderer.ts +47 -52
- package/dist/lib/xterm/src/browser/input/CompositionHelper.ts +5 -3
- package/dist/lib/xterm/src/browser/input/MoveToCell.ts +3 -1
- package/dist/lib/xterm/src/browser/public/Terminal.ts +39 -24
- package/dist/lib/xterm/src/browser/renderer/dom/DomRenderer.ts +76 -40
- package/dist/lib/xterm/src/browser/renderer/dom/DomRendererRowFactory.ts +47 -23
- package/dist/lib/xterm/src/browser/renderer/dom/WidthCache.ts +19 -9
- package/dist/lib/xterm/src/browser/renderer/shared/Constants.ts +0 -8
- package/dist/lib/xterm/src/browser/renderer/shared/RendererUtils.ts +38 -1
- package/dist/lib/xterm/src/browser/renderer/shared/SelectionRenderModel.ts +6 -4
- package/dist/lib/xterm/src/browser/renderer/shared/Types.ts +84 -0
- package/dist/lib/xterm/src/browser/selection/Types.ts +15 -0
- package/dist/lib/xterm/src/browser/services/CharSizeService.ts +57 -32
- package/dist/lib/xterm/src/browser/services/CoreBrowserService.ts +108 -4
- package/dist/lib/xterm/src/browser/services/LinkProviderService.ts +28 -0
- package/dist/lib/xterm/src/browser/services/RenderService.ts +132 -40
- package/dist/lib/xterm/src/browser/services/SelectionService.ts +19 -9
- package/dist/lib/xterm/src/browser/services/Services.ts +36 -16
- package/dist/lib/xterm/src/browser/services/ThemeService.ts +19 -58
- package/dist/lib/xterm/src/browser/shared/Constants.ts +8 -0
- package/dist/lib/xterm/src/common/CircularList.ts +5 -5
- package/dist/lib/xterm/src/common/Color.ts +34 -14
- package/dist/lib/xterm/src/common/CoreTerminal.ts +40 -41
- package/dist/lib/xterm/src/common/InputHandler.ts +177 -125
- package/dist/lib/xterm/src/common/Platform.ts +2 -1
- package/dist/lib/xterm/src/common/SortedList.ts +86 -10
- package/dist/lib/xterm/src/common/TaskQueue.ts +7 -7
- package/dist/lib/xterm/src/common/Types.ts +552 -0
- package/dist/lib/xterm/src/common/buffer/AttributeData.ts +15 -0
- package/dist/lib/xterm/src/common/buffer/Buffer.ts +15 -7
- package/dist/lib/xterm/src/common/buffer/BufferLine.ts +53 -22
- package/dist/lib/xterm/src/common/buffer/BufferRange.ts +1 -1
- package/dist/lib/xterm/src/common/buffer/BufferReflow.ts +9 -6
- package/dist/lib/xterm/src/common/buffer/BufferSet.ts +5 -5
- package/dist/lib/xterm/src/common/buffer/Constants.ts +10 -2
- package/dist/lib/xterm/src/common/buffer/Marker.ts +4 -4
- package/dist/lib/xterm/src/common/buffer/Types.ts +52 -0
- package/dist/lib/xterm/src/common/input/Keyboard.ts +2 -27
- package/dist/lib/xterm/src/common/input/UnicodeV6.ts +18 -5
- package/dist/lib/xterm/src/common/input/WriteBuffer.ts +9 -8
- package/dist/lib/xterm/src/common/parser/EscapeSequenceParser.ts +13 -13
- package/dist/lib/xterm/src/common/parser/Types.ts +275 -0
- package/dist/lib/xterm/src/common/public/AddonManager.ts +1 -1
- package/dist/lib/xterm/src/common/public/BufferApiView.ts +1 -1
- package/dist/lib/xterm/src/common/public/BufferLineApiView.ts +1 -1
- package/dist/lib/xterm/src/common/public/BufferNamespaceApi.ts +4 -4
- package/dist/lib/xterm/src/common/public/ParserApi.ts +1 -1
- package/dist/lib/xterm/src/common/public/UnicodeApi.ts +1 -1
- package/dist/lib/xterm/src/common/services/BufferService.ts +14 -11
- package/dist/lib/xterm/src/common/services/CoreMouseService.ts +53 -6
- package/dist/lib/xterm/src/common/services/CoreService.ts +13 -8
- package/dist/lib/xterm/src/common/services/DecorationService.ts +11 -11
- package/dist/lib/xterm/src/common/services/InstantiationService.ts +1 -1
- package/dist/lib/xterm/src/common/services/LogService.ts +2 -2
- package/dist/lib/xterm/src/common/services/OptionsService.ts +16 -5
- package/dist/lib/xterm/src/common/services/ServiceRegistry.ts +1 -1
- package/dist/lib/xterm/src/common/services/Services.ts +73 -19
- package/dist/lib/xterm/src/common/services/UnicodeService.ts +30 -5
- package/dist/lib/xterm/src/vs/base/browser/browser.ts +141 -0
- package/dist/lib/xterm/src/vs/base/browser/canIUse.ts +49 -0
- package/dist/lib/xterm/src/vs/base/browser/dom.ts +2369 -0
- package/dist/lib/xterm/src/vs/base/browser/fastDomNode.ts +316 -0
- package/dist/lib/xterm/src/vs/base/browser/globalPointerMoveMonitor.ts +112 -0
- package/dist/lib/xterm/src/vs/base/browser/iframe.ts +135 -0
- package/dist/lib/xterm/src/vs/base/browser/keyboardEvent.ts +213 -0
- package/dist/lib/xterm/src/vs/base/browser/mouseEvent.ts +229 -0
- package/dist/lib/xterm/src/vs/base/browser/touch.ts +372 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts +303 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/horizontalScrollbar.ts +114 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollableElement.ts +720 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollableElementOptions.ts +165 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarArrow.ts +114 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarState.ts +243 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.ts +118 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/verticalScrollbar.ts +116 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/widget.ts +57 -0
- package/dist/lib/xterm/src/vs/base/browser/window.ts +14 -0
- package/dist/lib/xterm/src/vs/base/common/arrays.ts +887 -0
- package/dist/lib/xterm/src/vs/base/common/arraysFind.ts +202 -0
- package/dist/lib/xterm/src/vs/base/common/assert.ts +71 -0
- package/dist/lib/xterm/src/vs/base/common/async.ts +1992 -0
- package/dist/lib/xterm/src/vs/base/common/cancellation.ts +148 -0
- package/dist/lib/xterm/src/vs/base/common/charCode.ts +450 -0
- package/dist/lib/xterm/src/vs/base/common/collections.ts +140 -0
- package/dist/lib/xterm/src/vs/base/common/decorators.ts +130 -0
- package/dist/lib/xterm/src/vs/base/common/equals.ts +146 -0
- package/dist/lib/xterm/src/vs/base/common/errors.ts +303 -0
- package/dist/lib/xterm/src/vs/base/common/event.ts +1778 -0
- package/dist/lib/xterm/src/vs/base/common/functional.ts +32 -0
- package/dist/lib/xterm/src/vs/base/common/hash.ts +316 -0
- package/dist/lib/xterm/src/vs/base/common/iterator.ts +159 -0
- package/dist/lib/xterm/src/vs/base/common/keyCodes.ts +526 -0
- package/dist/lib/xterm/src/vs/base/common/keybindings.ts +284 -0
- package/dist/lib/xterm/src/vs/base/common/lazy.ts +47 -0
- package/dist/lib/xterm/src/vs/base/common/lifecycle.ts +801 -0
- package/dist/lib/xterm/src/vs/base/common/linkedList.ts +142 -0
- package/dist/lib/xterm/src/vs/base/common/map.ts +202 -0
- package/dist/lib/xterm/src/vs/base/common/numbers.ts +98 -0
- package/dist/lib/xterm/src/vs/base/common/observable.ts +76 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/api.ts +31 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/autorun.ts +281 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/base.ts +489 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/debugName.ts +145 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/derived.ts +428 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/lazyObservableValue.ts +146 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/logging.ts +328 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/promise.ts +209 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/utils.ts +610 -0
- package/dist/lib/xterm/src/vs/base/common/platform.ts +281 -0
- package/dist/lib/xterm/src/vs/base/common/scrollable.ts +522 -0
- package/dist/lib/xterm/src/vs/base/common/sequence.ts +34 -0
- package/dist/lib/xterm/src/vs/base/common/stopwatch.ts +43 -0
- package/dist/lib/xterm/src/vs/base/common/strings.ts +557 -0
- package/dist/lib/xterm/src/vs/base/common/symbols.ts +9 -0
- package/dist/lib/xterm/src/vs/base/common/uint.ts +59 -0
- package/dist/lib/xterm/src/vs/patches/nls.ts +90 -0
- package/dist/lib/xterm/src/vs/typings/base-common.d.ts +20 -0
- package/dist/lib/xterm/src/vs/typings/require.d.ts +42 -0
- package/dist/lib/xterm/src/vs/typings/vscode-globals-nls.d.ts +36 -0
- package/dist/lib/xterm/src/vs/typings/vscode-globals-product.d.ts +33 -0
- package/dist/lib/xterm/typings/xterm.d.ts +156 -43
- package/dist/lib/xterm-fit/README.md +5 -5
- package/dist/lib/xterm-fit/lib/addon-fit.js +2 -0
- package/dist/lib/xterm-fit/lib/addon-fit.js.map +1 -0
- package/dist/lib/xterm-fit/lib/addon-fit.mjs +18 -0
- package/dist/lib/xterm-fit/lib/addon-fit.mjs.map +7 -0
- package/dist/lib/xterm-fit/package.json +9 -9
- package/dist/lib/xterm-fit/src/FitAddon.ts +7 -4
- package/dist/lib/xterm-fit/typings/addon-fit.d.ts +55 -0
- package/dist/lib/xterm-links/README.md +5 -5
- package/dist/lib/xterm-links/lib/addon-web-links.js +2 -0
- package/dist/lib/xterm-links/lib/addon-web-links.js.map +1 -0
- package/dist/lib/xterm-links/lib/addon-web-links.mjs +18 -0
- package/dist/lib/xterm-links/lib/addon-web-links.mjs.map +7 -0
- package/dist/lib/xterm-links/package.json +9 -9
- package/dist/lib/xterm-links/src/WebLinkProvider.ts +16 -15
- package/dist/lib/xterm-links/src/WebLinksAddon.ts +4 -3
- package/dist/lib/xterm-links/typings/addon-web-links.d.ts +57 -0
- package/package.json +5 -6
|
@@ -3,16 +3,27 @@
|
|
|
3
3
|
* @license MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { IdleTaskQueue } from 'common/TaskQueue';
|
|
7
|
+
|
|
6
8
|
// Work variables to avoid garbage collection.
|
|
7
9
|
let i = 0;
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
|
-
* A generic list that is maintained in sorted order and allows values with duplicate keys.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
12
|
+
* A generic list that is maintained in sorted order and allows values with duplicate keys. Deferred
|
|
13
|
+
* batch insertion and deletion is used to significantly reduce the time it takes to insert and
|
|
14
|
+
* delete a large amount of items in succession. This list is based on binary search and as such
|
|
15
|
+
* locating a key will take O(log n) amortized, this includes the by key iterator.
|
|
13
16
|
*/
|
|
14
17
|
export class SortedList<T> {
|
|
15
|
-
private
|
|
18
|
+
private _array: T[] = [];
|
|
19
|
+
|
|
20
|
+
private readonly _insertedValues: T[] = [];
|
|
21
|
+
private readonly _flushInsertedTask = new IdleTaskQueue();
|
|
22
|
+
private _isFlushingInserted = false;
|
|
23
|
+
|
|
24
|
+
private readonly _deletedIndices: number[] = [];
|
|
25
|
+
private readonly _flushDeletedTask = new IdleTaskQueue();
|
|
26
|
+
private _isFlushingDeleted = false;
|
|
16
27
|
|
|
17
28
|
constructor(
|
|
18
29
|
private readonly _getKey: (value: T) => number
|
|
@@ -21,18 +32,50 @@ export class SortedList<T> {
|
|
|
21
32
|
|
|
22
33
|
public clear(): void {
|
|
23
34
|
this._array.length = 0;
|
|
35
|
+
this._insertedValues.length = 0;
|
|
36
|
+
this._flushInsertedTask.clear();
|
|
37
|
+
this._isFlushingInserted = false;
|
|
38
|
+
this._deletedIndices.length = 0;
|
|
39
|
+
this._flushDeletedTask.clear();
|
|
40
|
+
this._isFlushingDeleted = false;
|
|
24
41
|
}
|
|
25
42
|
|
|
26
43
|
public insert(value: T): void {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
44
|
+
this._flushCleanupDeleted();
|
|
45
|
+
if (this._insertedValues.length === 0) {
|
|
46
|
+
this._flushInsertedTask.enqueue(() => this._flushInserted());
|
|
47
|
+
}
|
|
48
|
+
this._insertedValues.push(value);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
private _flushInserted(): void {
|
|
52
|
+
const sortedAddedValues = this._insertedValues.sort((a, b) => this._getKey(a) - this._getKey(b));
|
|
53
|
+
let sortedAddedValuesIndex = 0;
|
|
54
|
+
let arrayIndex = 0;
|
|
55
|
+
|
|
56
|
+
const newArray = new Array(this._array.length + this._insertedValues.length);
|
|
57
|
+
|
|
58
|
+
for (let newArrayIndex = 0; newArrayIndex < newArray.length; newArrayIndex++) {
|
|
59
|
+
if (arrayIndex >= this._array.length || this._getKey(sortedAddedValues[sortedAddedValuesIndex]) <= this._getKey(this._array[arrayIndex])) {
|
|
60
|
+
newArray[newArrayIndex] = sortedAddedValues[sortedAddedValuesIndex];
|
|
61
|
+
sortedAddedValuesIndex++;
|
|
62
|
+
} else {
|
|
63
|
+
newArray[newArrayIndex] = this._array[arrayIndex++];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
this._array = newArray;
|
|
68
|
+
this._insertedValues.length = 0;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
private _flushCleanupInserted(): void {
|
|
72
|
+
if (!this._isFlushingInserted && this._insertedValues.length > 0) {
|
|
73
|
+
this._flushInsertedTask.flush();
|
|
30
74
|
}
|
|
31
|
-
i = this._search(this._getKey(value));
|
|
32
|
-
this._array.splice(i, 0, value);
|
|
33
75
|
}
|
|
34
76
|
|
|
35
77
|
public delete(value: T): boolean {
|
|
78
|
+
this._flushCleanupInserted();
|
|
36
79
|
if (this._array.length === 0) {
|
|
37
80
|
return false;
|
|
38
81
|
}
|
|
@@ -49,14 +92,43 @@ export class SortedList<T> {
|
|
|
49
92
|
}
|
|
50
93
|
do {
|
|
51
94
|
if (this._array[i] === value) {
|
|
52
|
-
this.
|
|
95
|
+
if (this._deletedIndices.length === 0) {
|
|
96
|
+
this._flushDeletedTask.enqueue(() => this._flushDeleted());
|
|
97
|
+
}
|
|
98
|
+
this._deletedIndices.push(i);
|
|
53
99
|
return true;
|
|
54
100
|
}
|
|
55
101
|
} while (++i < this._array.length && this._getKey(this._array[i]) === key);
|
|
56
102
|
return false;
|
|
57
103
|
}
|
|
58
104
|
|
|
105
|
+
private _flushDeleted(): void {
|
|
106
|
+
this._isFlushingDeleted = true;
|
|
107
|
+
const sortedDeletedIndices = this._deletedIndices.sort((a, b) => a - b);
|
|
108
|
+
let sortedDeletedIndicesIndex = 0;
|
|
109
|
+
const newArray = new Array(this._array.length - sortedDeletedIndices.length);
|
|
110
|
+
let newArrayIndex = 0;
|
|
111
|
+
for (let i = 0; i < this._array.length; i++) {
|
|
112
|
+
if (sortedDeletedIndices[sortedDeletedIndicesIndex] === i) {
|
|
113
|
+
sortedDeletedIndicesIndex++;
|
|
114
|
+
} else {
|
|
115
|
+
newArray[newArrayIndex++] = this._array[i];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
this._array = newArray;
|
|
119
|
+
this._deletedIndices.length = 0;
|
|
120
|
+
this._isFlushingDeleted = false;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
private _flushCleanupDeleted(): void {
|
|
124
|
+
if (!this._isFlushingDeleted && this._deletedIndices.length > 0) {
|
|
125
|
+
this._flushDeletedTask.flush();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
59
129
|
public *getKeyIterator(key: number): IterableIterator<T> {
|
|
130
|
+
this._flushCleanupInserted();
|
|
131
|
+
this._flushCleanupDeleted();
|
|
60
132
|
if (this._array.length === 0) {
|
|
61
133
|
return;
|
|
62
134
|
}
|
|
@@ -73,6 +145,8 @@ export class SortedList<T> {
|
|
|
73
145
|
}
|
|
74
146
|
|
|
75
147
|
public forEachByKey(key: number, callback: (value: T) => void): void {
|
|
148
|
+
this._flushCleanupInserted();
|
|
149
|
+
this._flushCleanupDeleted();
|
|
76
150
|
if (this._array.length === 0) {
|
|
77
151
|
return;
|
|
78
152
|
}
|
|
@@ -89,6 +163,8 @@ export class SortedList<T> {
|
|
|
89
163
|
}
|
|
90
164
|
|
|
91
165
|
public values(): IterableIterator<T> {
|
|
166
|
+
this._flushCleanupInserted();
|
|
167
|
+
this._flushCleanupDeleted();
|
|
92
168
|
// Duplicate the array to avoid issues when _array changes while iterating
|
|
93
169
|
return [...this._array].values();
|
|
94
170
|
}
|
|
@@ -74,14 +74,14 @@ abstract class TaskQueue implements ITaskQueue {
|
|
|
74
74
|
let lastDeadlineRemaining = deadline.timeRemaining();
|
|
75
75
|
let deadlineRemaining = 0;
|
|
76
76
|
while (this._i < this._tasks.length) {
|
|
77
|
-
taskDuration =
|
|
77
|
+
taskDuration = performance.now();
|
|
78
78
|
if (!this._tasks[this._i]()) {
|
|
79
79
|
this._i++;
|
|
80
80
|
}
|
|
81
|
-
// other than performance.now,
|
|
82
|
-
// this is not an issue here as a clock change during a short running task is very
|
|
83
|
-
// in case it still happened and leads to negative duration, simply assume 1 msec
|
|
84
|
-
taskDuration = Math.max(1,
|
|
81
|
+
// other than performance.now, performance.now might not be stable (changes on wall clock
|
|
82
|
+
// changes), this is not an issue here as a clock change during a short running task is very
|
|
83
|
+
// unlikely in case it still happened and leads to negative duration, simply assume 1 msec
|
|
84
|
+
taskDuration = Math.max(1, performance.now() - taskDuration);
|
|
85
85
|
longestTask = Math.max(taskDuration, longestTask);
|
|
86
86
|
// Guess the following task will take a similar time to the longest task in this batch, allow
|
|
87
87
|
// additional room to try avoid exceeding the deadline
|
|
@@ -116,9 +116,9 @@ export class PriorityTaskQueue extends TaskQueue {
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
private _createDeadline(duration: number): ITaskDeadline {
|
|
119
|
-
const end =
|
|
119
|
+
const end = performance.now() + duration;
|
|
120
120
|
return {
|
|
121
|
-
timeRemaining: () => Math.max(0, end -
|
|
121
|
+
timeRemaining: () => Math.max(0, end - performance.now())
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
124
|
}
|