@nuvin/ink 7.7.1-alpha → 7.7.3-alpha
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/build/allocated-seek.d.ts +3 -0
- package/build/allocated-seek.js +55 -8
- package/build/allocated-seek.js.map +1 -1
- package/build/sanitize-ansi.js +17 -3
- package/build/sanitize-ansi.js.map +1 -1
- package/build/text-selection-controller.d.ts +6 -4
- package/build/text-selection-controller.js +61 -17
- package/build/text-selection-controller.js.map +1 -1
- package/build/text-selection.d.ts +4 -1
- package/build/text-selection.js +4 -2
- package/build/text-selection.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +4 -0
|
@@ -16,6 +16,9 @@ export type PreparedSeekRow = {
|
|
|
16
16
|
export type SeekPreparer = {
|
|
17
17
|
prepareFrame(text: string, columns: number): readonly PreparedSeekRow[];
|
|
18
18
|
};
|
|
19
|
+
export declare class SeekRowContentError extends Error {
|
|
20
|
+
name: string;
|
|
21
|
+
}
|
|
19
22
|
export declare function prepareSeekRow(row: string, columns: number): PreparedSeekRow;
|
|
20
23
|
export declare function createSeekPreparer(): SeekPreparer;
|
|
21
24
|
export declare function encodeSeekRow(prepared: PreparedSeekRow, row: number, columns: number): string;
|
package/build/allocated-seek.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import stringWidth from 'string-width';
|
|
2
2
|
import { readTerminalControl } from './terminal-control.js';
|
|
3
|
+
import { tokenizeAnsi } from './ansi-tokenizer.js';
|
|
4
|
+
import sanitizeAnsi from './sanitize-ansi.js';
|
|
3
5
|
const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' });
|
|
4
6
|
const sgrBody = /^[\d:;]*m$/;
|
|
5
7
|
const csi = '\u001B[';
|
|
@@ -15,8 +17,11 @@ const isAscii = (text) => {
|
|
|
15
17
|
}
|
|
16
18
|
return true;
|
|
17
19
|
};
|
|
20
|
+
export class SeekRowContentError extends Error {
|
|
21
|
+
name = 'SeekRowContentError';
|
|
22
|
+
}
|
|
18
23
|
const fail = (message) => {
|
|
19
|
-
throw new
|
|
24
|
+
throw new SeekRowContentError(message);
|
|
20
25
|
};
|
|
21
26
|
const isSgr = (raw) => {
|
|
22
27
|
const start = raw.charCodeAt(0) === 0x9b ? 1 : 2;
|
|
@@ -61,7 +66,7 @@ const tokenize = (row) => {
|
|
|
61
66
|
if (isControlIntroducer(code)) {
|
|
62
67
|
const control = readTerminalControl(row, index);
|
|
63
68
|
if (control === undefined) {
|
|
64
|
-
throw new
|
|
69
|
+
throw new SeekRowContentError('Malformed terminal control in seek row');
|
|
65
70
|
}
|
|
66
71
|
const allowedSgr = control.kind === 'csi' && isSgr(control.raw);
|
|
67
72
|
const allowedLink = control.kind === 'osc' && isOsc8(control.raw);
|
|
@@ -222,6 +227,25 @@ const materialize = (parsed, columns, entrySgr, entryLink) => {
|
|
|
222
227
|
export function prepareSeekRow(row, columns) {
|
|
223
228
|
return materialize(parseRow(row), columns, '', '');
|
|
224
229
|
}
|
|
230
|
+
// A late transform can still introduce invalid row content after layout.
|
|
231
|
+
// Recover only content validation errors, never terminal I/O or other failures.
|
|
232
|
+
const parseFrameRow = (row) => {
|
|
233
|
+
try {
|
|
234
|
+
return parseRow(row);
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
if (!(error instanceof SeekRowContentError)) {
|
|
238
|
+
throw error;
|
|
239
|
+
}
|
|
240
|
+
const plain = tokenizeAnsi(sanitizeAnsi(row))
|
|
241
|
+
.filter(token => token.type === 'text')
|
|
242
|
+
.map(token => token.value)
|
|
243
|
+
.join('')
|
|
244
|
+
.replaceAll('\n', ' ')
|
|
245
|
+
.replaceAll('\t', ' ');
|
|
246
|
+
return { ...parseRow(plain), recovered: true };
|
|
247
|
+
}
|
|
248
|
+
};
|
|
225
249
|
export function createSeekPreparer() {
|
|
226
250
|
let cache = new Map();
|
|
227
251
|
return {
|
|
@@ -232,13 +256,36 @@ export function createSeekPreparer() {
|
|
|
232
256
|
let sgr = '';
|
|
233
257
|
let link = '';
|
|
234
258
|
for (const row of rows) {
|
|
235
|
-
let
|
|
236
|
-
|
|
237
|
-
|
|
259
|
+
let cached = nextCache.get(row) ?? cache.get(row);
|
|
260
|
+
cached ??= { parsed: parseFrameRow(row) };
|
|
261
|
+
nextCache.set(row, cached);
|
|
262
|
+
const { parsed } = cached;
|
|
263
|
+
// Recovery discards the entire row's rendition, including closes and
|
|
264
|
+
// resets. Drop inherited state too so it cannot leak into later rows.
|
|
265
|
+
if (parsed.recovered) {
|
|
266
|
+
sgr = '';
|
|
267
|
+
link = '';
|
|
268
|
+
}
|
|
269
|
+
// Most frames change only a few rows. Reuse clipping, identity and
|
|
270
|
+
// exit rendition too; source-only parsing reuse still walks every cell.
|
|
271
|
+
let { materialized } = cached;
|
|
272
|
+
if (materialized?.columns !== columns ||
|
|
273
|
+
materialized.entrySgr !== sgr ||
|
|
274
|
+
materialized.entryLink !== link) {
|
|
275
|
+
const exit = applyRendition(parsed.items, sgr, link);
|
|
276
|
+
materialized = {
|
|
277
|
+
columns,
|
|
278
|
+
entrySgr: sgr,
|
|
279
|
+
entryLink: link,
|
|
280
|
+
row: materialize(parsed, columns, sgr, link),
|
|
281
|
+
exitSgr: exit.sgr,
|
|
282
|
+
exitLink: exit.link,
|
|
283
|
+
};
|
|
284
|
+
cached.materialized = materialized;
|
|
238
285
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
286
|
+
prepared.push(materialized.row);
|
|
287
|
+
sgr = materialized.exitSgr;
|
|
288
|
+
link = materialized.exitLink;
|
|
242
289
|
}
|
|
243
290
|
cache = nextCache;
|
|
244
291
|
return prepared;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allocated-seek.js","sourceRoot":"","sources":["../src/allocated-seek.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"allocated-seek.js","sourceRoot":"","sources":["../src/allocated-seek.ts"],"names":[],"mappings":"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"}
|
package/build/sanitize-ansi.js
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
import { hasAnsiControlCharacters, tokenizeAnsi } from './ansi-tokenizer.js';
|
|
2
2
|
const sgrParametersRegex = /^[\d:;]*$/;
|
|
3
|
+
// These are text controls, not ANSI sequence delimiters or layout whitespace.
|
|
4
|
+
/* eslint-disable no-control-regex */
|
|
5
|
+
const unsupportedTextControls = /[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g;
|
|
6
|
+
/* eslint-enable no-control-regex */
|
|
7
|
+
const normalizeText = (text) => text
|
|
8
|
+
.toWellFormed()
|
|
9
|
+
.replaceAll(/\r\n?/g, '\n')
|
|
10
|
+
.replaceAll(unsupportedTextControls, '');
|
|
3
11
|
// Strip ANSI escape sequences that would conflict with Ink's layout.
|
|
4
12
|
// Preserved: SGR sequences (colors, bold, etc. - end with 'm') and
|
|
5
|
-
// OSC
|
|
13
|
+
// OSC 8 hyperlinks. LF and tabs are retained for layout/tab expansion.
|
|
6
14
|
// Stripped: cursor movement, screen clearing, and other control sequences.
|
|
7
15
|
const sanitizeAnsi = (text) => {
|
|
8
16
|
if (!hasAnsiControlCharacters(text)) {
|
|
9
|
-
return text;
|
|
17
|
+
return normalizeText(text);
|
|
10
18
|
}
|
|
11
19
|
let output = '';
|
|
12
20
|
for (const token of tokenizeAnsi(text)) {
|
|
13
|
-
if (token.type === 'text'
|
|
21
|
+
if (token.type === 'text') {
|
|
22
|
+
output += normalizeText(token.value);
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (token.type === 'osc' &&
|
|
26
|
+
(token.value.startsWith('\u001B]8;') ||
|
|
27
|
+
token.value.startsWith('\u009D8;'))) {
|
|
14
28
|
output += token.value;
|
|
15
29
|
continue;
|
|
16
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize-ansi.js","sourceRoot":"","sources":["../src/sanitize-ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAE3E,MAAM,kBAAkB,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sanitize-ansi.js","sourceRoot":"","sources":["../src/sanitize-ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAE,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAE3E,MAAM,kBAAkB,GAAG,WAAW,CAAC;AACvC,8EAA8E;AAC9E,qCAAqC;AACrC,MAAM,uBAAuB,GAC5B,iDAAiD,CAAC;AACnD,oCAAoC;AAEpC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAC7C,IAA8C;KAC7C,YAAY,EAAE;KACd,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;KAC1B,UAAU,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAE3C,qEAAqE;AACrE,mEAAmE;AACnE,uEAAuE;AACvE,2EAA2E;AAC3E,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE;IAC7C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,SAAS;QACV,CAAC;QAED,IACC,KAAK,CAAC,IAAI,KAAK,KAAK;YACpB,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;gBACnC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EACnC,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;YACtB,SAAS;QACV,CAAC;QAED,IACC,KAAK,CAAC,IAAI,KAAK,KAAK;YACpB,KAAK,CAAC,cAAc,KAAK,GAAG;YAC5B,KAAK,CAAC,kBAAkB,KAAK,EAAE;YAC/B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAC7C,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;QACvB,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -52,6 +52,7 @@ Selection actions plus an imperative snapshot read. Unlike the snapshot from
|
|
|
52
52
|
`useTextSelection()`, holding this handle does NOT subscribe the component to
|
|
53
53
|
selection changes — use it where selection state is only needed at event time
|
|
54
54
|
(mouse bridges, key handlers) so drags never re-render the host component.
|
|
55
|
+
Calling `getSnapshot()` resolves text across the full selection on that read.
|
|
55
56
|
*/
|
|
56
57
|
export type TextSelectionHandle = TextSelectionActions & {
|
|
57
58
|
getSnapshot: () => TextSelectionSnapshot;
|
|
@@ -68,6 +69,7 @@ export declare class TextSelectionController {
|
|
|
68
69
|
private focus;
|
|
69
70
|
private isDragging;
|
|
70
71
|
private text;
|
|
72
|
+
private textDirty;
|
|
71
73
|
private readonly rowCache;
|
|
72
74
|
private readonly viewportProviders;
|
|
73
75
|
private legacyProviderUnregister;
|
|
@@ -95,10 +97,10 @@ export declare class TextSelectionController {
|
|
|
95
97
|
— it runs during a render pass and must not schedule another render.
|
|
96
98
|
|
|
97
99
|
While dragging, cache entries update freely (auto-scroll depends on it).
|
|
98
|
-
After `finish()`,
|
|
99
|
-
|
|
100
|
-
selected range no longer matches its frozen entry
|
|
101
|
-
underneath the selection), the selection auto-clears.
|
|
100
|
+
After `finish()`, existing entries are frozen and never overwritten; rows
|
|
101
|
+
that were not captured during the gesture may still fill their gaps. If a
|
|
102
|
+
visible row inside the selected range no longer matches its frozen entry
|
|
103
|
+
(content reflowed underneath the selection), the selection auto-clears.
|
|
102
104
|
*/
|
|
103
105
|
captureRows: (plainRows: readonly string[], maskRows?: ReadonlyArray<readonly boolean[]>) => void;
|
|
104
106
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
The public selection API uses null (matching React ref idioms and the
|
|
3
3
|
mouse bridge in ink-input); keep it consistent throughout this file. */
|
|
4
4
|
import stringWidth from 'string-width';
|
|
5
|
-
import { extractTextFromRows, getSelectionSpans, } from './text-selection.js';
|
|
5
|
+
import { extractTextFromRows, getSelectionSpans, sliceSelectableCells, } from './text-selection.js';
|
|
6
6
|
const fullGridViewport = {
|
|
7
7
|
top: 0,
|
|
8
8
|
left: 0,
|
|
@@ -22,6 +22,7 @@ export class TextSelectionController {
|
|
|
22
22
|
focus = null;
|
|
23
23
|
isDragging = false;
|
|
24
24
|
text = '';
|
|
25
|
+
textDirty = false;
|
|
25
26
|
rowCache = new Map();
|
|
26
27
|
// Stack of registered providers; the last entry is active. Stacking lets
|
|
27
28
|
// an overlay (tool detail modal) take over selection while mounted and
|
|
@@ -43,6 +44,9 @@ export class TextSelectionController {
|
|
|
43
44
|
};
|
|
44
45
|
};
|
|
45
46
|
getSnapshot = () => {
|
|
47
|
+
if (this.textDirty && this.recomputeText()) {
|
|
48
|
+
this.snapshot = undefined;
|
|
49
|
+
}
|
|
46
50
|
this.snapshot ??= {
|
|
47
51
|
anchor: this.anchor,
|
|
48
52
|
focus: this.focus,
|
|
@@ -84,7 +88,7 @@ export class TextSelectionController {
|
|
|
84
88
|
this.anchor = point;
|
|
85
89
|
this.focus = point;
|
|
86
90
|
this.isDragging = true;
|
|
87
|
-
this.
|
|
91
|
+
this.textDirty = true;
|
|
88
92
|
this.emit();
|
|
89
93
|
this.onInvalidate?.();
|
|
90
94
|
};
|
|
@@ -95,8 +99,8 @@ export class TextSelectionController {
|
|
|
95
99
|
const point = this.toContentPoint(screenPoint);
|
|
96
100
|
const focusChanged = this.focus?.x !== point.x || this.focus.y !== point.y;
|
|
97
101
|
this.focus = point;
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
if (focusChanged) {
|
|
103
|
+
this.textDirty = true;
|
|
100
104
|
this.emit();
|
|
101
105
|
this.onInvalidate?.();
|
|
102
106
|
}
|
|
@@ -114,6 +118,7 @@ export class TextSelectionController {
|
|
|
114
118
|
this.focus = null;
|
|
115
119
|
this.isDragging = false;
|
|
116
120
|
this.text = '';
|
|
121
|
+
this.textDirty = false;
|
|
117
122
|
this.rowCache.clear();
|
|
118
123
|
if (hadSelection) {
|
|
119
124
|
this.emit();
|
|
@@ -126,10 +131,10 @@ export class TextSelectionController {
|
|
|
126
131
|
— it runs during a render pass and must not schedule another render.
|
|
127
132
|
|
|
128
133
|
While dragging, cache entries update freely (auto-scroll depends on it).
|
|
129
|
-
After `finish()`,
|
|
130
|
-
|
|
131
|
-
selected range no longer matches its frozen entry
|
|
132
|
-
underneath the selection), the selection auto-clears.
|
|
134
|
+
After `finish()`, existing entries are frozen and never overwritten; rows
|
|
135
|
+
that were not captured during the gesture may still fill their gaps. If a
|
|
136
|
+
visible row inside the selected range no longer matches its frozen entry
|
|
137
|
+
(content reflowed underneath the selection), the selection auto-clears.
|
|
133
138
|
*/
|
|
134
139
|
captureRows = (plainRows, maskRows) => {
|
|
135
140
|
const resolved = this.resolveViewport();
|
|
@@ -153,12 +158,15 @@ export class TextSelectionController {
|
|
|
153
158
|
this.rowCache.clear();
|
|
154
159
|
}
|
|
155
160
|
let mismatch = false;
|
|
161
|
+
let selectedRowsChanged = false;
|
|
156
162
|
const range = hasSelection
|
|
157
163
|
? (() => {
|
|
158
164
|
const [a, b] = [this.anchor, this.focus];
|
|
159
165
|
return a.y <= b.y ? { min: a.y, max: b.y } : { min: b.y, max: a.y };
|
|
160
166
|
})()
|
|
161
167
|
: undefined;
|
|
168
|
+
const selectionHasExtent = hasSelection &&
|
|
169
|
+
(this.anchor.x !== this.focus.x || this.anchor.y !== this.focus.y);
|
|
162
170
|
for (let y = top; y < bottom; y++) {
|
|
163
171
|
const contentY = viewport.scrollY + (y - viewport.top);
|
|
164
172
|
const text = sliceRow(plainRows[y] ?? '', left, viewport.width);
|
|
@@ -178,6 +186,16 @@ export class TextSelectionController {
|
|
|
178
186
|
continue;
|
|
179
187
|
}
|
|
180
188
|
this.rowCache.set(contentY, row);
|
|
189
|
+
if (selectionHasExtent &&
|
|
190
|
+
range &&
|
|
191
|
+
contentY >= range.min &&
|
|
192
|
+
contentY <= range.max &&
|
|
193
|
+
selectedRowTextChanged(this.anchor, this.focus, contentY, {
|
|
194
|
+
previous: existing,
|
|
195
|
+
next: row,
|
|
196
|
+
})) {
|
|
197
|
+
selectedRowsChanged = true;
|
|
198
|
+
}
|
|
181
199
|
}
|
|
182
200
|
if (mismatch) {
|
|
183
201
|
// Content reflowed underneath a finished selection: clearing is the
|
|
@@ -186,18 +204,14 @@ export class TextSelectionController {
|
|
|
186
204
|
this.focus = null;
|
|
187
205
|
this.isDragging = false;
|
|
188
206
|
this.text = '';
|
|
207
|
+
this.textDirty = false;
|
|
189
208
|
this.rowCache.clear();
|
|
190
209
|
this.snapshot = undefined;
|
|
191
210
|
this.scheduleNotify(true);
|
|
192
211
|
return;
|
|
193
212
|
}
|
|
194
|
-
if (
|
|
195
|
-
this.
|
|
196
|
-
}
|
|
197
|
-
else if (hasSelection &&
|
|
198
|
-
frozen &&
|
|
199
|
-
this.text.length === 0 && // Rows may have arrived only after the gesture ended.
|
|
200
|
-
this.recomputeText()) {
|
|
213
|
+
if (selectedRowsChanged) {
|
|
214
|
+
this.textDirty = true;
|
|
201
215
|
this.scheduleNotify(false);
|
|
202
216
|
}
|
|
203
217
|
};
|
|
@@ -211,11 +225,13 @@ export class TextSelectionController {
|
|
|
211
225
|
return [];
|
|
212
226
|
}
|
|
213
227
|
const { viewport } = this.resolveViewport();
|
|
214
|
-
const spans = getSelectionSpans(this.anchor, this.focus, y => this.rowCache.get(y));
|
|
215
228
|
const left = Math.max(0, viewport.left);
|
|
216
229
|
const right = Math.min(outputWidth, viewport.left + viewport.width);
|
|
217
230
|
const screenTop = Math.max(0, viewport.top);
|
|
218
231
|
const screenBottom = Math.min(outputHeight, viewport.top + viewport.height);
|
|
232
|
+
const contentStartY = viewport.scrollY + (screenTop - viewport.top);
|
|
233
|
+
const contentEndY = viewport.scrollY + (screenBottom - viewport.top);
|
|
234
|
+
const spans = getSelectionSpans(this.anchor, this.focus, y => this.rowCache.get(y), { startY: contentStartY, endY: contentEndY });
|
|
219
235
|
const result = [];
|
|
220
236
|
for (const span of spans) {
|
|
221
237
|
const screenY = viewport.top + (span.y - viewport.scrollY);
|
|
@@ -270,6 +286,7 @@ export class TextSelectionController {
|
|
|
270
286
|
const next = this.anchor && this.focus
|
|
271
287
|
? extractTextFromRows(this.anchor, this.focus, y => this.rowCache.get(y))
|
|
272
288
|
: '';
|
|
289
|
+
this.textDirty = false;
|
|
273
290
|
if (next === this.text) {
|
|
274
291
|
return false;
|
|
275
292
|
}
|
|
@@ -283,7 +300,6 @@ export class TextSelectionController {
|
|
|
283
300
|
}
|
|
284
301
|
}
|
|
285
302
|
scheduleNotify(invalidate) {
|
|
286
|
-
this.snapshot = undefined;
|
|
287
303
|
if (this.notifyScheduled) {
|
|
288
304
|
return;
|
|
289
305
|
}
|
|
@@ -337,4 +353,32 @@ const sliceMask = (mask, left, width) => {
|
|
|
337
353
|
? mask.slice(left)
|
|
338
354
|
: mask.slice(left, left + width);
|
|
339
355
|
};
|
|
356
|
+
const rowsEqual = (first, second) => {
|
|
357
|
+
if (first?.text !== second.text) {
|
|
358
|
+
return false;
|
|
359
|
+
}
|
|
360
|
+
const firstMask = first.mask;
|
|
361
|
+
const secondMask = second.mask;
|
|
362
|
+
if (firstMask === secondMask) {
|
|
363
|
+
return true;
|
|
364
|
+
}
|
|
365
|
+
if (firstMask?.length !== secondMask?.length) {
|
|
366
|
+
return false;
|
|
367
|
+
}
|
|
368
|
+
return (firstMask?.every((value, index) => value === secondMask?.[index]) ?? false);
|
|
369
|
+
};
|
|
370
|
+
const selectedRowTextChanged = (anchor, focus, y, rows) => {
|
|
371
|
+
if (rowsEqual(rows.previous, rows.next)) {
|
|
372
|
+
return false;
|
|
373
|
+
}
|
|
374
|
+
const selectedText = (row) => {
|
|
375
|
+
const resolvedRow = row ?? { text: '' };
|
|
376
|
+
const span = getSelectionSpans(anchor, focus, () => resolvedRow, {
|
|
377
|
+
startY: y,
|
|
378
|
+
endY: y + 1,
|
|
379
|
+
})[0];
|
|
380
|
+
return span ? sliceSelectableCells(resolvedRow, span.x1, span.x2) : '';
|
|
381
|
+
};
|
|
382
|
+
return selectedText(rows.previous) !== selectedText(rows.next);
|
|
383
|
+
};
|
|
340
384
|
//# sourceMappingURL=text-selection-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-selection-controller.js","sourceRoot":"","sources":["../src/text-selection-controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text-selection-controller.js","sourceRoot":"","sources":["../src/text-selection-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,10 @@ One past the last printable selectable cell of the row. Trailing whitespace
|
|
|
30
30
|
and trailing chrome cells are excluded.
|
|
31
31
|
*/
|
|
32
32
|
export declare function getRowEnd(row: SelectionRow): number;
|
|
33
|
-
export declare function getSelectionSpans(anchor: TextSelectionPoint, focus: TextSelectionPoint, getRow: RowLookup
|
|
33
|
+
export declare function getSelectionSpans(anchor: TextSelectionPoint, focus: TextSelectionPoint, getRow: RowLookup, rowBounds?: {
|
|
34
|
+
startY: number;
|
|
35
|
+
endY: number;
|
|
36
|
+
}): TextSelectionSpan[];
|
|
34
37
|
/**
|
|
35
38
|
Extract the selectable text of `row` between display cells `[from, to)`.
|
|
36
39
|
Non-selectable runs at the edges are dropped; interior non-selectable runs
|
package/build/text-selection.js
CHANGED
|
@@ -38,13 +38,15 @@ export function getRowEnd(row) {
|
|
|
38
38
|
}
|
|
39
39
|
return end;
|
|
40
40
|
}
|
|
41
|
-
export function getSelectionSpans(anchor, focus, getRow) {
|
|
41
|
+
export function getSelectionSpans(anchor, focus, getRow, rowBounds) {
|
|
42
42
|
const { start, end } = normalizeSelection(anchor, focus);
|
|
43
43
|
if (start.x === end.x && start.y === end.y) {
|
|
44
44
|
return [];
|
|
45
45
|
}
|
|
46
46
|
const spans = [];
|
|
47
|
-
|
|
47
|
+
const firstY = rowBounds ? Math.max(start.y, rowBounds.startY) : start.y;
|
|
48
|
+
const lastY = rowBounds ? Math.min(end.y, rowBounds.endY - 1) : end.y;
|
|
49
|
+
for (let y = firstY; y <= lastY; y++) {
|
|
48
50
|
const rowEnd = getRowEnd(getRow(y) ?? { text: '' });
|
|
49
51
|
let x1 = y === start.y ? start.x : 0;
|
|
50
52
|
let x2 = y === end.y ? end.x : rowEnd;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-selection.js","sourceRoot":"","sources":["../src/text-selection.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAmBvC,MAAM,UAAU,kBAAkB,CACjC,MAA0B,EAC1B,KAAyB;IAEzB,IAAI,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAC,CAAC;IACpC,CAAC;IAED,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC;AACpC,CAAC;AAED,MAAM,gBAAgB,GAAG,CACxB,IAAoC,EACpC,SAAiB,EACjB,OAAe,EACL,EAAE;IACZ,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,IAAI,IAAI,GAAG,SAAS,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF;;;EAGE;AACF,MAAM,UAAU,SAAS,CAAC,GAAiB;IAC1C,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,GAAG,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;QAC7B,IAAI,GAAG,OAAO,CAAC;QAEf,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,SAAS;QACV,CAAC;QAED,IAAI,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;YAChD,GAAG,GAAG,OAAO,CAAC;QACf,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,MAA0B,EAC1B,KAAyB,EACzB,MAAiB;
|
|
1
|
+
{"version":3,"file":"text-selection.js","sourceRoot":"","sources":["../src/text-selection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -3097,6 +3097,10 @@ Seeking can restore allocated cursor positions and overwrite excess paint. It ca
|
|
|
3097
3097
|
|
|
3098
3098
|
Seek frames skip the existing scroll-region shift optimization. Unchanged rows are still skipped. Extra absolute seeks, styled prefills, and full-viewport resize repaints are intentional costs, not a performance claim.
|
|
3099
3099
|
|
|
3100
|
+
Text sanitization removes unsupported terminal controls before layout, normalizes CRLF/CR to LF, and replaces malformed UTF-16. Styling and OSC 8 hyperlinks are preserved; tabs retain the existing expansion to spaces. If invalid content still reaches a seek frame (for example, from a late transform), only that row falls back to plain text and inherited styling/link state is reset. The next frame can render normally. Terminal write failures still surface through `waitUntilExit()`.
|
|
3101
|
+
|
|
3102
|
+
Seek preparation caches both parsed and prepared rows for the current frame. Prepared rows are reused only when the source, width, entry styling, and hyperlink state match. The cache retains at most one prepared variant per distinct source row, dropping rows absent from the next frame. Run `node --import=tsx benchmark/seek-preparation.ts` after building to measure sparse and full-frame preparation separately.
|
|
3103
|
+
|
|
3100
3104
|
Before restoring a fullscreen seek frame after ordinary or Static output, Ink advances a blank viewport so that output can move into primary-screen history rather than being immediately overwritten at home. That conservative first version may add extra blank lines to primary-screen history around external output.
|
|
3101
3105
|
|
|
3102
3106
|
Physical terminal acceptance for this fallback is still pending. Completing source tests does not qualify a terminal. A failed OSC 66 probe does not by itself establish seek support.
|