linecraft 0.5.4 → 0.5.6
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/LICENSE +21 -59
- package/README.md +30 -0
- package/lib/components/code-debug.d.ts +2 -0
- package/lib/components/code-debug.d.ts.map +1 -1
- package/lib/components/code-debug.js +104 -198
- package/lib/components/code-debug.js.map +1 -1
- package/lib/components/code-debug.test.d.ts +2 -0
- package/lib/components/code-debug.test.d.ts.map +1 -0
- package/lib/components/code-debug.test.js +245 -0
- package/lib/components/code-debug.test.js.map +1 -0
- package/lib/components/fill.d.ts +2 -1
- package/lib/components/fill.d.ts.map +1 -1
- package/lib/components/fill.js.map +1 -1
- package/lib/components/progress-bar-grid.d.ts.map +1 -1
- package/lib/components/progress-bar-grid.js +5 -3
- package/lib/components/progress-bar-grid.js.map +1 -1
- package/lib/components/prompt.js +1 -1
- package/lib/components/prompt.js.map +1 -1
- package/lib/components/section.js +1 -1
- package/lib/components/section.js.map +1 -1
- package/lib/components/segments.js +4 -4
- package/lib/components/segments.js.map +1 -1
- package/lib/components/spinner.d.ts +2 -1
- package/lib/components/spinner.d.ts.map +1 -1
- package/lib/components/spinner.js +1 -1
- package/lib/components/spinner.js.map +1 -1
- package/lib/components/styled.d.ts +3 -2
- package/lib/components/styled.d.ts.map +1 -1
- package/lib/components/styled.js +1 -1
- package/lib/components/styled.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/layout/grid.d.ts.map +1 -1
- package/lib/layout/grid.js +1 -2
- package/lib/layout/grid.js.map +1 -1
- package/lib/layout/grid.test.js +3 -3
- package/lib/layout/grid.test.js.map +1 -1
- package/lib/native/region.test.js +1 -1
- package/lib/native/region.test.js.map +1 -1
- package/lib/region-resize.test.js +3 -3
- package/lib/region-resize.test.js.map +1 -1
- package/lib/types.d.ts +6 -5
- package/lib/types.d.ts.map +1 -1
- package/lib/utils/colors.d.ts.map +1 -1
- package/lib/utils/colors.js +50 -8
- package/lib/utils/colors.js.map +1 -1
- package/lib/utils/colors.test.js.map +1 -1
- package/lib/utils/debug-log.js +1 -1
- package/lib/utils/debug-log.js.map +1 -1
- package/lib/utils/terminal-theme.d.ts +17 -28
- package/lib/utils/terminal-theme.d.ts.map +1 -1
- package/lib/utils/terminal-theme.js +66 -38
- package/lib/utils/terminal-theme.js.map +1 -1
- package/lib/utils/text.d.ts +62 -2
- package/lib/utils/text.d.ts.map +1 -1
- package/lib/utils/text.js +396 -37
- package/lib/utils/text.js.map +1 -1
- package/lib/utils/text.test.d.ts +2 -0
- package/lib/utils/text.test.d.ts.map +1 -0
- package/lib/utils/text.test.js +237 -0
- package/lib/utils/text.test.js.map +1 -0
- package/lib/utils/wait-for-spacebar.js +1 -1
- package/lib/utils/wait-for-spacebar.js.map +1 -1
- package/package.json +2 -8
package/lib/utils/text.js
CHANGED
|
@@ -89,8 +89,8 @@ function skipEscapeSequence(text, idx) {
|
|
|
89
89
|
* Truncate text to a maximum visual width while preserving ANSI escape codes
|
|
90
90
|
*
|
|
91
91
|
* This function truncates text based on its visual width (ignoring ANSI codes),
|
|
92
|
-
* but preserves all ANSI escape sequences in the output.
|
|
93
|
-
*
|
|
92
|
+
* but preserves all ANSI escape sequences in the output. Active ANSI codes are
|
|
93
|
+
* preserved in the truncated result.
|
|
94
94
|
*
|
|
95
95
|
* @param text - Text that may contain ANSI escape codes
|
|
96
96
|
* @param maxWidth - Maximum visual width (number of visible characters)
|
|
@@ -124,12 +124,17 @@ export function truncateToWidth(text, maxWidth) {
|
|
|
124
124
|
visual++;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
// Return substring up to the truncation point
|
|
128
|
-
|
|
127
|
+
// Return substring up to the truncation point (preserves all ANSI codes up to that point)
|
|
128
|
+
const truncated = text.substring(0, idx);
|
|
129
|
+
// Close any open OSC 8 hyperlink
|
|
130
|
+
return truncated + closeOsc8IfOpen(truncated);
|
|
129
131
|
}
|
|
130
132
|
/**
|
|
131
133
|
* Truncate text with ellipsis at the end, preserving ANSI escape codes
|
|
132
134
|
*
|
|
135
|
+
* Active ANSI codes from the truncated portion are preserved, and the ellipsis
|
|
136
|
+
* is added after the truncated text (without ANSI codes).
|
|
137
|
+
*
|
|
133
138
|
* @param text - Text that may contain ANSI escape codes
|
|
134
139
|
* @param maxWidth - Maximum visual width (number of visible characters)
|
|
135
140
|
* @returns Truncated text with '...' at the end, ANSI codes preserved
|
|
@@ -145,13 +150,31 @@ export function truncateEnd(text, maxWidth) {
|
|
|
145
150
|
if (maxWidth <= 3) {
|
|
146
151
|
return '.'.repeat(maxWidth);
|
|
147
152
|
}
|
|
148
|
-
//
|
|
149
|
-
|
|
150
|
-
|
|
153
|
+
// 1. Extract raw portion before truncation
|
|
154
|
+
let visual = 0;
|
|
155
|
+
let idx = 0;
|
|
156
|
+
while (idx < text.length && visual < maxWidth - 3) {
|
|
157
|
+
const nextIdx = skipEscapeSequence(text, idx);
|
|
158
|
+
if (nextIdx > idx)
|
|
159
|
+
idx = nextIdx;
|
|
160
|
+
else {
|
|
161
|
+
idx++;
|
|
162
|
+
visual++;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const rawTruncated = text.substring(0, idx);
|
|
166
|
+
const activeCodes = extractActiveAnsiCodes(rawTruncated);
|
|
167
|
+
// 2. Add ellipsis with the same active codes, then close everything
|
|
168
|
+
const ellipsis = activeCodes ? activeCodes + '...' : '...';
|
|
169
|
+
return rawTruncated + ellipsis + closeOsc8IfOpen(activeCodes) + '\x1b[0m';
|
|
151
170
|
}
|
|
152
171
|
/**
|
|
153
172
|
* Truncate text with ellipsis at the beginning, preserving ANSI escape codes
|
|
154
173
|
*
|
|
174
|
+
* When truncating from the start, we preserve ANSI codes that are active in the
|
|
175
|
+
* remaining portion. The ellipsis is added at the beginning (without ANSI codes),
|
|
176
|
+
* and active codes from the original text are re-applied to the remaining portion.
|
|
177
|
+
*
|
|
155
178
|
* @param text - Text that may contain ANSI escape codes
|
|
156
179
|
* @param maxWidth - Maximum visual width (number of visible characters)
|
|
157
180
|
* @returns Truncated text with '...' at the beginning, ANSI codes preserved
|
|
@@ -160,7 +183,6 @@ export function truncateEnd(text, maxWidth) {
|
|
|
160
183
|
* truncateStart('\x1b[31mHello World\x1b[0m', 8) // '...\x1b[31mWorld\x1b[0m'
|
|
161
184
|
*/
|
|
162
185
|
export function truncateStart(text, maxWidth) {
|
|
163
|
-
// Use countVisibleChars instead of stripAnsi().length to correctly handle OSC 8 codes
|
|
164
186
|
const visibleWidth = countVisibleChars(text);
|
|
165
187
|
if (visibleWidth <= maxWidth) {
|
|
166
188
|
return text;
|
|
@@ -168,30 +190,35 @@ export function truncateStart(text, maxWidth) {
|
|
|
168
190
|
if (maxWidth <= 3) {
|
|
169
191
|
return '.'.repeat(maxWidth);
|
|
170
192
|
}
|
|
171
|
-
// We need to truncate from the start, preserving ANSI codes
|
|
172
|
-
// This is trickier - we need to work backwards
|
|
173
193
|
const availableWidth = maxWidth - 3;
|
|
174
194
|
const startVisibleIdx = visibleWidth - availableWidth;
|
|
175
|
-
// Find the actual start position in the original string (accounting for escape sequences)
|
|
176
195
|
let visual = 0;
|
|
177
196
|
let idx = 0;
|
|
178
197
|
while (idx < text.length && visual < startVisibleIdx) {
|
|
179
198
|
const nextIdx = skipEscapeSequence(text, idx);
|
|
180
|
-
if (nextIdx > idx)
|
|
181
|
-
// We skipped an escape sequence
|
|
199
|
+
if (nextIdx > idx)
|
|
182
200
|
idx = nextIdx;
|
|
183
|
-
}
|
|
184
201
|
else {
|
|
185
|
-
// Regular character
|
|
186
202
|
idx++;
|
|
187
203
|
visual++;
|
|
188
204
|
}
|
|
189
205
|
}
|
|
190
|
-
|
|
206
|
+
const remaining = text.substring(idx);
|
|
207
|
+
const beforeCut = text.substring(0, idx);
|
|
208
|
+
const activeCodes = extractActiveAnsiCodes(beforeCut);
|
|
209
|
+
// To ensure the hyperlink is preserved:
|
|
210
|
+
// 1. ellipsis starts with activeCodes
|
|
211
|
+
// 2. remaining is appended
|
|
212
|
+
// (remaining already has its own closing codes if it was originally linked)
|
|
213
|
+
const ellipsis = activeCodes ? activeCodes + '...' : '...';
|
|
214
|
+
return ellipsis + remaining;
|
|
191
215
|
}
|
|
192
216
|
/**
|
|
193
217
|
* Truncate text with ellipsis in the middle, preserving ANSI escape codes
|
|
194
218
|
*
|
|
219
|
+
* When truncating in the middle, we preserve ANSI codes from the start portion
|
|
220
|
+
* and re-apply them to the end portion to maintain consistent styling.
|
|
221
|
+
*
|
|
195
222
|
* @param text - Text that may contain ANSI escape codes
|
|
196
223
|
* @param maxWidth - Maximum visual width (number of visible characters)
|
|
197
224
|
* @returns Truncated text with '...' in the middle, ANSI codes preserved
|
|
@@ -207,32 +234,297 @@ export function truncateMiddle(text, maxWidth) {
|
|
|
207
234
|
if (maxWidth <= 3) {
|
|
208
235
|
return '.'.repeat(maxWidth);
|
|
209
236
|
}
|
|
210
|
-
|
|
211
|
-
// Total: start + 3 (ellipsis) + end = maxWidth
|
|
212
|
-
const availableChars = maxWidth - 3; // Characters available for text (excluding ellipsis)
|
|
237
|
+
const availableChars = maxWidth - 3;
|
|
213
238
|
const startChars = Math.floor(availableChars / 2);
|
|
214
239
|
const endChars = availableChars - startChars;
|
|
215
240
|
// Get start portion
|
|
216
|
-
const startPortion = truncateToWidth(text, startChars);
|
|
217
|
-
// Get end portion - work backwards from the end
|
|
218
|
-
const endStartIdx = plain.length - endChars;
|
|
219
|
-
// Find the actual start position in the original string (accounting for escape sequences)
|
|
220
241
|
let visual = 0;
|
|
221
242
|
let idx = 0;
|
|
222
|
-
while (idx < text.length && visual <
|
|
243
|
+
while (idx < text.length && visual < startChars) {
|
|
223
244
|
const nextIdx = skipEscapeSequence(text, idx);
|
|
224
|
-
if (nextIdx > idx)
|
|
225
|
-
// We skipped an escape sequence
|
|
245
|
+
if (nextIdx > idx)
|
|
226
246
|
idx = nextIdx;
|
|
247
|
+
else {
|
|
248
|
+
idx++;
|
|
249
|
+
visual++;
|
|
227
250
|
}
|
|
251
|
+
}
|
|
252
|
+
const startPortion = text.substring(0, idx);
|
|
253
|
+
const activeCodes = extractActiveAnsiCodes(startPortion);
|
|
254
|
+
// Get end portion
|
|
255
|
+
const endStartIdx = plain.length - endChars;
|
|
256
|
+
visual = 0;
|
|
257
|
+
idx = 0;
|
|
258
|
+
while (idx < text.length && visual < endStartIdx) {
|
|
259
|
+
const nextIdx = skipEscapeSequence(text, idx);
|
|
260
|
+
if (nextIdx > idx)
|
|
261
|
+
idx = nextIdx;
|
|
228
262
|
else {
|
|
229
|
-
// Regular character
|
|
230
263
|
idx++;
|
|
231
264
|
visual++;
|
|
232
265
|
}
|
|
233
266
|
}
|
|
234
267
|
const endPortion = text.substring(idx);
|
|
235
|
-
|
|
268
|
+
// ellipsis and endPortion both need activeCodes
|
|
269
|
+
const ellipsis = activeCodes ? activeCodes + '...' : '...';
|
|
270
|
+
return startPortion + ellipsis + endPortion;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Extract a visible character range from text, preserving ANSI codes
|
|
274
|
+
*
|
|
275
|
+
* @param text - Text that may contain ANSI escape codes
|
|
276
|
+
* @param startCol - Start column (1-based)
|
|
277
|
+
* @param endCol - End column (1-based)
|
|
278
|
+
* @returns Object with { before: string, range: string, after: string }
|
|
279
|
+
*/
|
|
280
|
+
function extractVisibleRange(text, startCol, endCol) {
|
|
281
|
+
const { before, after: remainingAfterStart } = splitAtVisiblePos(text, startCol - 1);
|
|
282
|
+
const rangeLength = endCol - startCol + 1;
|
|
283
|
+
const { before: range, after } = splitAtVisiblePos(remainingAfterStart, rangeLength);
|
|
284
|
+
return { before, range, after };
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Map an original column position to its display position in truncated text
|
|
288
|
+
*
|
|
289
|
+
* This function takes the original text, the truncated result, and the visible range
|
|
290
|
+
* that was shown, and maps an original column to where it appears in the truncated text.
|
|
291
|
+
*
|
|
292
|
+
* @param originalText - The original text (plain, no ANSI)
|
|
293
|
+
* @param truncatedText - The truncated text result (may have ellipsis)
|
|
294
|
+
* @param visibleStartCol - The first column that was shown (1-based, includes truncated before)
|
|
295
|
+
* @param visibleEndCol - The last column that was shown (1-based, includes truncated after)
|
|
296
|
+
* @param originalCol - The original column to map (1-based)
|
|
297
|
+
* @param rangeStartCol - The start column of the main range (1-based, optional, for better accuracy)
|
|
298
|
+
* @param rangeEndCol - The end column of the main range (1-based, optional, for better accuracy)
|
|
299
|
+
* @returns The display position in the truncated text (1-based, visible characters)
|
|
300
|
+
*/
|
|
301
|
+
export function mapColumnToDisplay(originalText, truncatedText, visibleStartCol, visibleEndCol, originalCol, rangeStartCol, rangeEndCol) {
|
|
302
|
+
const truncatedPlain = stripAnsi(truncatedText);
|
|
303
|
+
const hasEllipsisStart = truncatedPlain.startsWith('...');
|
|
304
|
+
const ellipsisStartOffset = hasEllipsisStart ? 3 : 0;
|
|
305
|
+
// If we have range boundaries, use them for more accurate mapping
|
|
306
|
+
if (rangeStartCol !== undefined && rangeEndCol !== undefined) {
|
|
307
|
+
// Calculate how much of 'before' is shown (if truncated)
|
|
308
|
+
let shownBeforeChars = 0;
|
|
309
|
+
if (hasEllipsisStart && rangeStartCol > visibleStartCol) {
|
|
310
|
+
// The visible before portion is from visibleStartCol to (rangeStartCol - 1)
|
|
311
|
+
shownBeforeChars = (rangeStartCol - 1) - visibleStartCol + 1;
|
|
312
|
+
}
|
|
313
|
+
else if (!hasEllipsisStart && rangeStartCol > 1) {
|
|
314
|
+
// All of before is shown
|
|
315
|
+
shownBeforeChars = rangeStartCol - 1;
|
|
316
|
+
}
|
|
317
|
+
// If column is before the range, it's in the truncated before portion
|
|
318
|
+
if (originalCol < rangeStartCol) {
|
|
319
|
+
if (originalCol < visibleStartCol) {
|
|
320
|
+
return ellipsisStartOffset || 1;
|
|
321
|
+
}
|
|
322
|
+
// Column is in the visible before portion
|
|
323
|
+
const offsetInBefore = originalCol - visibleStartCol + 1;
|
|
324
|
+
return ellipsisStartOffset + offsetInBefore;
|
|
325
|
+
}
|
|
326
|
+
// If column is in the range, calculate position relative to range start
|
|
327
|
+
if (originalCol >= rangeStartCol && originalCol <= rangeEndCol) {
|
|
328
|
+
const offsetInRange = originalCol - rangeStartCol + 1;
|
|
329
|
+
// We need to count how many visible characters are in 'truncatedBefore'
|
|
330
|
+
const truncatedBeforeWidth = hasEllipsisStart ? (shownBeforeChars + 3) : shownBeforeChars;
|
|
331
|
+
return truncatedBeforeWidth + offsetInRange;
|
|
332
|
+
}
|
|
333
|
+
// If column is after the range, it's in the truncated after portion
|
|
334
|
+
if (originalCol > rangeEndCol) {
|
|
335
|
+
if (originalCol > visibleEndCol) {
|
|
336
|
+
return countVisibleChars(truncatedPlain);
|
|
337
|
+
}
|
|
338
|
+
// Column is in the visible after portion
|
|
339
|
+
const rangeWidth = rangeEndCol - rangeStartCol + 1;
|
|
340
|
+
const offsetInAfter = originalCol - rangeEndCol;
|
|
341
|
+
const truncatedBeforeWidth = hasEllipsisStart ? (shownBeforeChars + 3) : shownBeforeChars;
|
|
342
|
+
return truncatedBeforeWidth + rangeWidth + offsetInAfter;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
// Fallback to simple calculation if range boundaries not provided
|
|
346
|
+
// If column is before visible range, point to start ellipsis or first character
|
|
347
|
+
if (originalCol < visibleStartCol) {
|
|
348
|
+
return ellipsisStartOffset || 1;
|
|
349
|
+
}
|
|
350
|
+
// If column is after visible range, point to end
|
|
351
|
+
if (originalCol > visibleEndCol) {
|
|
352
|
+
return countVisibleChars(truncatedPlain);
|
|
353
|
+
}
|
|
354
|
+
// Column is in visible range - calculate its position
|
|
355
|
+
// Position = ellipsis offset + (originalCol - visibleStartCol + 1)
|
|
356
|
+
return ellipsisStartOffset + (originalCol - visibleStartCol + 1);
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Truncate text to show a specific column range, with ellipsis as needed
|
|
360
|
+
*
|
|
361
|
+
* This function ensures a target range (startCol to endCol) is visible in the output,
|
|
362
|
+
* adding ellipsis at the start, end, or both as needed to fit within maxWidth.
|
|
363
|
+
* All ANSI codes and OSC 8 hyperlinks are preserved.
|
|
364
|
+
*
|
|
365
|
+
* @param text - Text that may contain ANSI escape codes
|
|
366
|
+
* @param maxWidth - Maximum visual width (number of visible characters)
|
|
367
|
+
* @param targetStartCol - Start column of target range (1-based)
|
|
368
|
+
* @param targetEndCol - End column of target range (1-based, optional)
|
|
369
|
+
* @param maxColumn - Maximum column to show (optional, for limiting display)
|
|
370
|
+
* @returns Truncated text with target range visible, ANSI codes preserved, and visible range info
|
|
371
|
+
*
|
|
372
|
+
* @example
|
|
373
|
+
* truncateFocusRange('console.log("hello world");', 20, 1, 11)
|
|
374
|
+
* // Returns text showing columns 1-11 with ellipsis if needed
|
|
375
|
+
*/
|
|
376
|
+
export function truncateFocusRange(text, maxWidth, targetStartCol, targetEndCol, maxColumn) {
|
|
377
|
+
const codeLength = countVisibleChars(text);
|
|
378
|
+
const targetEnd = targetEndCol ?? targetStartCol;
|
|
379
|
+
// If code fits, show everything
|
|
380
|
+
if (codeLength <= maxWidth) {
|
|
381
|
+
return {
|
|
382
|
+
text: truncateToWidth(text, maxWidth),
|
|
383
|
+
visibleStartCol: 1,
|
|
384
|
+
visibleEndCol: codeLength,
|
|
385
|
+
rangeStartCol: targetStartCol,
|
|
386
|
+
rangeEndCol: targetEnd,
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
const effectiveMaxCol = maxColumn ? Math.min(maxColumn, codeLength) : codeLength;
|
|
390
|
+
const targetWidth = targetEnd - targetStartCol + 1;
|
|
391
|
+
// If target doesn't fit, just show middle with ellipsis
|
|
392
|
+
if (targetWidth > maxWidth - 6) {
|
|
393
|
+
const midPoint = Math.floor((maxWidth - 6) / 2);
|
|
394
|
+
const startCol = Math.max(1, targetStartCol - midPoint);
|
|
395
|
+
const endCol = Math.min(effectiveMaxCol, startCol + maxWidth - 6);
|
|
396
|
+
const { range } = extractVisibleRange(text, startCol, endCol);
|
|
397
|
+
return {
|
|
398
|
+
text: '...' + truncateToWidth(range, maxWidth - 3) + '...',
|
|
399
|
+
visibleStartCol: startCol,
|
|
400
|
+
visibleEndCol: endCol,
|
|
401
|
+
rangeStartCol: startCol,
|
|
402
|
+
rangeEndCol: endCol,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
// Calculate visible range to center target
|
|
406
|
+
const willNeedEllipsisStart = targetStartCol > 1 || (targetStartCol === 1 && codeLength > maxWidth);
|
|
407
|
+
const willNeedEllipsisEnd = targetEnd < codeLength || codeLength > maxWidth;
|
|
408
|
+
const ellipsisWidth = (willNeedEllipsisStart ? 3 : 0) + (willNeedEllipsisEnd ? 3 : 0);
|
|
409
|
+
const effectiveAvailableWidth = maxWidth - ellipsisWidth;
|
|
410
|
+
const padding = Math.floor((effectiveAvailableWidth - targetWidth) / 2);
|
|
411
|
+
let startCol = Math.max(1, targetStartCol - padding);
|
|
412
|
+
let endCol = Math.min(effectiveMaxCol, startCol + effectiveAvailableWidth - 1);
|
|
413
|
+
// Adjust if we hit boundaries
|
|
414
|
+
if (endCol - startCol + 1 > effectiveAvailableWidth) {
|
|
415
|
+
endCol = startCol + effectiveAvailableWidth - 1;
|
|
416
|
+
}
|
|
417
|
+
if (endCol > effectiveMaxCol) {
|
|
418
|
+
endCol = effectiveMaxCol;
|
|
419
|
+
startCol = Math.max(1, endCol - effectiveAvailableWidth + 1);
|
|
420
|
+
}
|
|
421
|
+
if (startCol < 1) {
|
|
422
|
+
startCol = 1;
|
|
423
|
+
endCol = Math.min(effectiveMaxCol, effectiveAvailableWidth);
|
|
424
|
+
}
|
|
425
|
+
// Extract the visible range using the helper
|
|
426
|
+
const { before, range, after } = extractVisibleRange(text, startCol, endCol);
|
|
427
|
+
// Use existing truncation utilities to add ellipsis
|
|
428
|
+
const hasEllipsisStart = startCol > 1;
|
|
429
|
+
const hasEllipsisEnd = endCol < codeLength;
|
|
430
|
+
const rangeWidth = countVisibleChars(range);
|
|
431
|
+
let truncatedText;
|
|
432
|
+
let actualVisibleStartCol = startCol;
|
|
433
|
+
let actualVisibleEndCol = endCol;
|
|
434
|
+
if (hasEllipsisStart && hasEllipsisEnd) {
|
|
435
|
+
const beforeWidth = maxWidth - rangeWidth - 3; // -3 for end ellipsis
|
|
436
|
+
const truncatedBefore = before ? truncateStart(before, Math.max(3, beforeWidth)) : '';
|
|
437
|
+
const afterWidth = maxWidth - countVisibleChars(truncatedBefore) - rangeWidth - 3; // -3 for start ellipsis
|
|
438
|
+
const truncatedAfter = after ? truncateEnd(after, Math.max(3, afterWidth)) : '';
|
|
439
|
+
truncatedText = truncatedBefore + range + truncatedAfter;
|
|
440
|
+
// Adjust visible range: if before was truncated, calculate actual start
|
|
441
|
+
// 'before' contains columns 1 to (startCol - 1)
|
|
442
|
+
// truncateStart shows the END of 'before', so if we show the last N chars of 'before',
|
|
443
|
+
// the first visible column from 'before' is: (startCol - 1) - N + 1 = startCol - N
|
|
444
|
+
if (truncatedBefore && before) {
|
|
445
|
+
const truncatedBeforePlain = stripAnsi(truncatedBefore);
|
|
446
|
+
if (truncatedBeforePlain.startsWith('...')) {
|
|
447
|
+
const shownBeforeChars = countVisibleChars(truncatedBeforePlain) - 3; // minus ellipsis
|
|
448
|
+
// 'before' contains columns 1 to (startCol - 1), so it has (startCol - 1) characters
|
|
449
|
+
// If we show the last N chars of 'before', the first visible column is: startCol - N
|
|
450
|
+
actualVisibleStartCol = Math.max(1, startCol - shownBeforeChars);
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
// No ellipsis means we showed all of before, so visible start is 1
|
|
454
|
+
actualVisibleStartCol = 1;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
else if (before && before.length > 0) {
|
|
458
|
+
// Before exists but wasn't truncated, so all of before is visible
|
|
459
|
+
actualVisibleStartCol = 1;
|
|
460
|
+
}
|
|
461
|
+
// Adjust visible range: if after was truncated, calculate actual end
|
|
462
|
+
// truncateEnd shows the START of 'after', so if we show N chars from the start of 'after',
|
|
463
|
+
// the actual visible end is: endCol + N
|
|
464
|
+
if (truncatedAfter && after) {
|
|
465
|
+
const truncatedAfterPlain = stripAnsi(truncatedAfter);
|
|
466
|
+
if (truncatedAfterPlain.endsWith('...')) {
|
|
467
|
+
const shownAfterChars = countVisibleChars(truncatedAfterPlain) - 3; // minus ellipsis
|
|
468
|
+
// 'after' starts at endCol + 1, so if we show the first N chars, visible end is endCol + N
|
|
469
|
+
actualVisibleEndCol = endCol + shownAfterChars;
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
// No ellipsis means we showed all of after
|
|
473
|
+
actualVisibleEndCol = codeLength;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
else if (after && after.length > 0) {
|
|
477
|
+
// After exists but wasn't truncated, so all of after is visible
|
|
478
|
+
actualVisibleEndCol = codeLength;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
else if (hasEllipsisStart) {
|
|
482
|
+
const beforeWidth = maxWidth - rangeWidth;
|
|
483
|
+
const truncatedBefore = before ? truncateStart(before, beforeWidth) : '';
|
|
484
|
+
truncatedText = truncatedBefore + range + after;
|
|
485
|
+
// Adjust visible range: if before was truncated, calculate actual start
|
|
486
|
+
const truncatedBeforePlain = stripAnsi(truncatedBefore);
|
|
487
|
+
if (truncatedBefore && before && truncatedBeforePlain.startsWith('...')) {
|
|
488
|
+
const shownBeforeChars = countVisibleChars(truncatedBeforePlain) - 3;
|
|
489
|
+
actualVisibleStartCol = Math.max(1, startCol - shownBeforeChars);
|
|
490
|
+
}
|
|
491
|
+
else if (truncatedBefore && before) {
|
|
492
|
+
// No ellipsis means we showed all of before
|
|
493
|
+
actualVisibleStartCol = 1;
|
|
494
|
+
}
|
|
495
|
+
// After is fully shown
|
|
496
|
+
actualVisibleEndCol = codeLength;
|
|
497
|
+
}
|
|
498
|
+
else if (hasEllipsisEnd) {
|
|
499
|
+
const afterWidth = maxWidth - rangeWidth;
|
|
500
|
+
const truncatedAfter = after ? truncateEnd(after, afterWidth) : '';
|
|
501
|
+
truncatedText = before + range + truncatedAfter;
|
|
502
|
+
// Before is fully shown
|
|
503
|
+
actualVisibleStartCol = 1;
|
|
504
|
+
// Adjust visible range: if after was truncated, calculate actual end
|
|
505
|
+
const truncatedAfterPlain = stripAnsi(truncatedAfter);
|
|
506
|
+
if (truncatedAfter && after && truncatedAfterPlain.endsWith('...')) {
|
|
507
|
+
const shownAfterChars = countVisibleChars(truncatedAfterPlain) - 3;
|
|
508
|
+
actualVisibleEndCol = endCol + shownAfterChars;
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
// No ellipsis means we showed all of after
|
|
512
|
+
actualVisibleEndCol = codeLength;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
else {
|
|
516
|
+
// No ellipsis needed
|
|
517
|
+
truncatedText = truncateToWidth(text, maxWidth);
|
|
518
|
+
actualVisibleStartCol = 1;
|
|
519
|
+
actualVisibleEndCol = codeLength;
|
|
520
|
+
}
|
|
521
|
+
return {
|
|
522
|
+
text: truncatedText,
|
|
523
|
+
visibleStartCol: actualVisibleStartCol,
|
|
524
|
+
visibleEndCol: actualVisibleEndCol,
|
|
525
|
+
rangeStartCol: startCol,
|
|
526
|
+
rangeEndCol: endCol,
|
|
527
|
+
};
|
|
236
528
|
}
|
|
237
529
|
/**
|
|
238
530
|
* Wrap text to fit within a width, breaking on spaces
|
|
@@ -433,15 +725,16 @@ export function countVisibleChars(text) {
|
|
|
433
725
|
return count;
|
|
434
726
|
}
|
|
435
727
|
/**
|
|
436
|
-
* Extract active ANSI codes from text (all codes that are active at the end)
|
|
728
|
+
* Extract active ANSI codes and OSC 8 hyperlinks from text (all codes that are active at the end)
|
|
437
729
|
* Returns the ANSI escape sequences that should be applied to continue the styling
|
|
438
730
|
*/
|
|
439
731
|
function extractActiveAnsiCodes(text) {
|
|
440
732
|
const codes = [];
|
|
441
733
|
let idx = 0;
|
|
734
|
+
let osc8Start = null; // Track OSC 8 hyperlink start sequence
|
|
442
735
|
while (idx < text.length) {
|
|
443
736
|
if (text[idx] === '\x1b' && idx + 1 < text.length && text[idx + 1] === '[') {
|
|
444
|
-
// Found ANSI escape sequence
|
|
737
|
+
// Found ANSI SGR escape sequence
|
|
445
738
|
let end = idx + 2;
|
|
446
739
|
while (end < text.length && text[end] !== 'm') {
|
|
447
740
|
end++;
|
|
@@ -450,7 +743,7 @@ function extractActiveAnsiCodes(text) {
|
|
|
450
743
|
const code = text.substring(idx, end + 1);
|
|
451
744
|
// Check if it's a reset (0m) or a style code
|
|
452
745
|
if (code === '\x1b[0m') {
|
|
453
|
-
// Reset - clear all previous codes
|
|
746
|
+
// Reset - clear all previous codes (but keep OSC 8)
|
|
454
747
|
codes.length = 0;
|
|
455
748
|
}
|
|
456
749
|
else {
|
|
@@ -463,12 +756,76 @@ function extractActiveAnsiCodes(text) {
|
|
|
463
756
|
idx++;
|
|
464
757
|
}
|
|
465
758
|
}
|
|
759
|
+
else if (text[idx] === '\x1b' && idx + 4 < text.length && text.substring(idx, idx + 4) === '\x1b]8;') {
|
|
760
|
+
// Found OSC 8 hyperlink sequence
|
|
761
|
+
let end = idx + 4;
|
|
762
|
+
// Check if this is a start sequence (has URL) or end sequence
|
|
763
|
+
let foundClose = false;
|
|
764
|
+
while (end < text.length - 1) {
|
|
765
|
+
if (text[end] === '\x1b' && text[end + 1] === '\\') {
|
|
766
|
+
// Found closing sequence
|
|
767
|
+
const sequence = text.substring(idx, end + 2);
|
|
768
|
+
if (end === idx + 4) {
|
|
769
|
+
// This is an end sequence (\x1b]8;;\x1b\\)
|
|
770
|
+
osc8Start = null; // Close the hyperlink
|
|
771
|
+
}
|
|
772
|
+
else {
|
|
773
|
+
// This is a start sequence (\x1b]8;;<url>\x1b\\)
|
|
774
|
+
osc8Start = sequence; // Store the start sequence
|
|
775
|
+
}
|
|
776
|
+
idx = end + 2;
|
|
777
|
+
foundClose = true;
|
|
778
|
+
break;
|
|
779
|
+
}
|
|
780
|
+
end++;
|
|
781
|
+
}
|
|
782
|
+
if (!foundClose) {
|
|
783
|
+
idx++;
|
|
784
|
+
}
|
|
785
|
+
}
|
|
466
786
|
else {
|
|
467
787
|
idx++;
|
|
468
788
|
}
|
|
469
789
|
}
|
|
470
|
-
//
|
|
471
|
-
|
|
790
|
+
// Combine ANSI codes and OSC 8 start (if hyperlink is still open)
|
|
791
|
+
const result = codes.join('');
|
|
792
|
+
return osc8Start ? result + osc8Start : result;
|
|
793
|
+
}
|
|
794
|
+
/**
|
|
795
|
+
* Close any open OSC 8 hyperlink at the end of text
|
|
796
|
+
* Returns the closing sequence if a hyperlink is open, empty string otherwise
|
|
797
|
+
*/
|
|
798
|
+
function closeOsc8IfOpen(text) {
|
|
799
|
+
let idx = 0;
|
|
800
|
+
let osc8Start = null;
|
|
801
|
+
while (idx < text.length) {
|
|
802
|
+
if (text[idx] === '\x1b' && idx + 4 < text.length && text.substring(idx, idx + 4) === '\x1b]8;') {
|
|
803
|
+
// Found OSC 8 hyperlink sequence
|
|
804
|
+
let end = idx + 4;
|
|
805
|
+
while (end < text.length - 1) {
|
|
806
|
+
if (text[end] === '\x1b' && text[end + 1] === '\\') {
|
|
807
|
+
const sequence = text.substring(idx, end + 2);
|
|
808
|
+
if (end === idx + 4) {
|
|
809
|
+
// End sequence - close hyperlink
|
|
810
|
+
osc8Start = null;
|
|
811
|
+
}
|
|
812
|
+
else {
|
|
813
|
+
// Start sequence - open hyperlink
|
|
814
|
+
osc8Start = sequence;
|
|
815
|
+
}
|
|
816
|
+
idx = end + 2;
|
|
817
|
+
break;
|
|
818
|
+
}
|
|
819
|
+
end++;
|
|
820
|
+
}
|
|
821
|
+
if (idx === end + 2) {
|
|
822
|
+
continue;
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
idx++;
|
|
826
|
+
}
|
|
827
|
+
// If hyperlink is still open, return closing sequence
|
|
828
|
+
return osc8Start ? '\x1b]8;;\x1b\\' : '';
|
|
472
829
|
}
|
|
473
830
|
/**
|
|
474
831
|
* Split text at a specific visible character position, preserving ANSI codes
|
|
@@ -506,17 +863,19 @@ export function splitAtVisiblePos(text, visiblePos) {
|
|
|
506
863
|
}
|
|
507
864
|
const before = text.substring(0, idx);
|
|
508
865
|
const after = text.substring(idx);
|
|
509
|
-
// Extract active ANSI codes from the "before" part
|
|
866
|
+
// Extract active ANSI codes and OSC 8 hyperlinks from the "before" part
|
|
510
867
|
const activeCodes = extractActiveAnsiCodes(before);
|
|
868
|
+
// Close any open OSC 8 hyperlink in the "before" part
|
|
869
|
+
const beforeWithClosedOsc8 = before + closeOsc8IfOpen(before);
|
|
511
870
|
// If there are active codes, we need to:
|
|
512
871
|
// 1. Close them in the "before" part (unless it already ends with a reset)
|
|
513
872
|
// 2. Re-apply them at the start of the "after" part
|
|
514
|
-
if (activeCodes && !
|
|
873
|
+
if (activeCodes && !beforeWithClosedOsc8.endsWith('\x1b[0m')) {
|
|
515
874
|
return {
|
|
516
|
-
before:
|
|
875
|
+
before: beforeWithClosedOsc8 + '\x1b[0m',
|
|
517
876
|
after: activeCodes + after
|
|
518
877
|
};
|
|
519
878
|
}
|
|
520
|
-
return { before, after };
|
|
879
|
+
return { before: beforeWithClosedOsc8, after };
|
|
521
880
|
}
|
|
522
881
|
//# sourceMappingURL=text.js.map
|
package/lib/utils/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.test.d.ts","sourceRoot":"","sources":["../../src/utils/text.test.ts"],"names":[],"mappings":""}
|