linecraft 0.2.3 → 0.2.5
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 +84 -7
- package/lib/components/code-debug.d.ts +7 -1
- package/lib/components/code-debug.d.ts.map +1 -1
- package/lib/components/code-debug.js +261 -232
- 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 +253 -0
- package/lib/components/code-debug.test.js.map +1 -0
- package/lib/components/progress-bar-grid.d.ts.map +1 -1
- package/lib/components/progress-bar-grid.js +2 -1
- package/lib/components/progress-bar-grid.js.map +1 -1
- package/lib/components/progress-bar-grid.test.js +8 -7
- package/lib/components/progress-bar-grid.test.js.map +1 -1
- package/lib/components/prompt.d.ts.map +1 -1
- package/lib/components/prompt.js +2 -1
- package/lib/components/prompt.js.map +1 -1
- package/lib/components/segments.d.ts.map +1 -1
- package/lib/components/segments.js +0 -7
- package/lib/components/segments.js.map +1 -1
- package/lib/components/style.test.js +12 -11
- package/lib/components/style.test.js.map +1 -1
- package/lib/components/styled.d.ts +1 -0
- package/lib/components/styled.d.ts.map +1 -1
- package/lib/components/styled.js +38 -8
- package/lib/components/styled.js.map +1 -1
- package/lib/components/styled.test.js +12 -11
- package/lib/components/styled.test.js.map +1 -1
- package/lib/layout/grid.d.ts +3 -2
- package/lib/layout/grid.d.ts.map +1 -1
- package/lib/layout/grid.js +166 -81
- package/lib/layout/grid.js.map +1 -1
- package/lib/layout/grid.test.js +70 -3
- package/lib/layout/grid.test.js.map +1 -1
- package/lib/native/diff.d.ts.map +1 -1
- package/lib/native/diff.js +2 -1
- package/lib/native/diff.js.map +1 -1
- package/lib/native/diff.test.js.map +1 -1
- package/lib/native/region-old.js +4 -4
- package/lib/native/region-old.js.map +1 -1
- package/lib/native/region-renderer.d.ts +3 -2
- package/lib/native/region-renderer.d.ts.map +1 -1
- package/lib/native/region-renderer.js +39 -9
- package/lib/native/region-renderer.js.map +1 -1
- package/lib/native/region-simple.d.ts.map +1 -1
- package/lib/native/region-simple.js +1 -1
- package/lib/native/region-simple.js.map +1 -1
- package/lib/region.d.ts +3 -3
- package/lib/region.d.ts.map +1 -1
- package/lib/region.js +15 -66
- package/lib/region.js.map +1 -1
- package/lib/types.d.ts +1 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/utils/colors.d.ts.map +1 -1
- package/lib/utils/colors.js +3 -0
- package/lib/utils/colors.js.map +1 -1
- package/lib/utils/cursor-position.d.ts.map +1 -1
- package/lib/utils/cursor-position.js +4 -15
- package/lib/utils/cursor-position.js.map +1 -1
- package/lib/utils/prompt.js +3 -3
- package/lib/utils/prompt.js.map +1 -1
- package/lib/utils/terminal-theme.d.ts +5 -4
- package/lib/utils/terminal-theme.d.ts.map +1 -1
- package/lib/utils/terminal-theme.js +7 -6
- package/lib/utils/terminal-theme.js.map +1 -1
- package/lib/utils/text.d.ts +91 -2
- package/lib/utils/text.d.ts.map +1 -1
- package/lib/utils/text.js +765 -72
- 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.d.ts.map +1 -1
- package/lib/utils/wait-for-spacebar.js +2 -9
- package/lib/utils/wait-for-spacebar.js.map +1 -1
- package/package.json +7 -3
|
@@ -1,108 +1,21 @@
|
|
|
1
1
|
// Code debug component for displaying code errors/warnings with context
|
|
2
2
|
import { callComponent } from '../component.js';
|
|
3
3
|
import { applyStyle } from '../utils/colors.js';
|
|
4
|
-
import {
|
|
4
|
+
import { stripAnsi, truncateToWidth, truncateFocusRange, mapColumnToDisplay, countVisibleChars, splitAtVisiblePos } from '../utils/text.js';
|
|
5
|
+
import { logToFile } from '../utils/debug-log.js';
|
|
5
6
|
import { fileLink } from '../utils/file-link.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
const plainCode = stripAnsi(code);
|
|
10
|
-
const codeLength = plainCode.length;
|
|
11
|
-
// If code fits, show everything
|
|
12
|
-
if (codeLength <= availableWidth) {
|
|
13
|
-
return {
|
|
14
|
-
startCol: 1,
|
|
15
|
-
endCol: codeLength,
|
|
16
|
-
hasEllipsisStart: false,
|
|
17
|
-
hasEllipsisEnd: false,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
// If maxColumn is set, we need to ensure we don't show beyond it
|
|
21
|
-
const effectiveMaxCol = maxColumn ? Math.min(maxColumn, codeLength) : codeLength;
|
|
22
|
-
// Calculate how much space we need for the target columns
|
|
23
|
-
const targetWidth = targetEndCol
|
|
24
|
-
? targetEndCol - targetStartCol + 1
|
|
25
|
-
: 1; // Just the arrow
|
|
26
|
-
// If target doesn't fit, we'll need to truncate
|
|
27
|
-
if (targetWidth > availableWidth - 6) { // -6 for ellipsis on both sides if needed
|
|
28
|
-
// Target is too wide, just show middle with ellipsis
|
|
29
|
-
const midPoint = Math.floor((availableWidth - 6) / 2);
|
|
30
|
-
const startCol = Math.max(1, targetStartCol - midPoint);
|
|
31
|
-
const endCol = Math.min(effectiveMaxCol, startCol + availableWidth - 6);
|
|
32
|
-
return {
|
|
33
|
-
startCol,
|
|
34
|
-
endCol,
|
|
35
|
-
hasEllipsisStart: startCol > 1,
|
|
36
|
-
hasEllipsisEnd: endCol < codeLength,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
// Try to center the target in the available space
|
|
40
|
-
const padding = Math.floor((availableWidth - targetWidth) / 2);
|
|
41
|
-
let startCol = Math.max(1, targetStartCol - padding);
|
|
42
|
-
let endCol = Math.min(effectiveMaxCol, startCol + availableWidth - 1);
|
|
43
|
-
// Adjust if we hit boundaries
|
|
44
|
-
if (endCol - startCol + 1 > availableWidth) {
|
|
45
|
-
endCol = startCol + availableWidth - 1;
|
|
46
|
-
}
|
|
47
|
-
if (endCol > effectiveMaxCol) {
|
|
48
|
-
endCol = effectiveMaxCol;
|
|
49
|
-
startCol = Math.max(1, endCol - availableWidth + 1);
|
|
50
|
-
}
|
|
51
|
-
if (startCol < 1) {
|
|
52
|
-
startCol = 1;
|
|
53
|
-
endCol = Math.min(effectiveMaxCol, availableWidth);
|
|
54
|
-
}
|
|
55
|
-
// Check if we need ellipsis
|
|
56
|
-
const hasEllipsisStart = startCol > 1;
|
|
57
|
-
const hasEllipsisEnd = endCol < codeLength;
|
|
58
|
-
return {
|
|
59
|
-
startCol,
|
|
60
|
-
endCol,
|
|
61
|
-
hasEllipsisStart,
|
|
62
|
-
hasEllipsisEnd,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Truncate code line to show specific column range with ellipsis
|
|
67
|
-
*/
|
|
68
|
-
function truncateCodeLine(code, visibleRange, availableWidth) {
|
|
69
|
-
const { startCol, endCol, hasEllipsisStart, hasEllipsisEnd } = visibleRange;
|
|
70
|
-
const plainCode = stripAnsi(code);
|
|
71
|
-
if (!hasEllipsisStart && !hasEllipsisEnd) {
|
|
72
|
-
// No truncation needed, but ensure it fits
|
|
73
|
-
return truncateToWidth(code, availableWidth);
|
|
74
|
-
}
|
|
75
|
-
// Extract the visible portion (1-based columns in plain text)
|
|
76
|
-
const visiblePlain = plainCode.substring(startCol - 1, endCol);
|
|
77
|
-
// Calculate available width for code (minus ellipsis)
|
|
78
|
-
const ellipsisWidth = (hasEllipsisStart ? 3 : 0) + (hasEllipsisEnd ? 3 : 0);
|
|
79
|
-
const codeWidth = availableWidth - ellipsisWidth;
|
|
80
|
-
// Truncate the visible portion if it's still too wide
|
|
81
|
-
let truncatedPlain = visiblePlain;
|
|
82
|
-
if (stripAnsi(visiblePlain).length > codeWidth) {
|
|
83
|
-
truncatedPlain = truncateToWidth(visiblePlain, codeWidth);
|
|
84
|
-
}
|
|
85
|
-
if (hasEllipsisStart && hasEllipsisEnd) {
|
|
86
|
-
// Truncate both ends - show middle portion
|
|
87
|
-
const midPoint = Math.floor(codeWidth / 2);
|
|
88
|
-
const startPart = truncateToWidth(truncatedPlain, midPoint);
|
|
89
|
-
const endPart = truncateToWidth(truncatedPlain.substring(stripAnsi(truncatedPlain).length - (codeWidth - midPoint)), codeWidth - midPoint);
|
|
90
|
-
return `...${startPart}...${endPart}...`;
|
|
91
|
-
}
|
|
92
|
-
else if (hasEllipsisStart) {
|
|
93
|
-
return `...${truncatedPlain}`;
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
return `${truncatedPlain}...`;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
7
|
+
import { Styled } from './styled.js';
|
|
8
|
+
import { grid as Grid } from '../layout/grid.js';
|
|
9
|
+
import { getLineNumberColor, isDarkTerminal } from '../utils/terminal-theme.js';
|
|
99
10
|
/**
|
|
100
11
|
* CodeDebug component - displays code errors/warnings with context
|
|
101
12
|
*/
|
|
102
13
|
export function CodeDebug(options) {
|
|
103
14
|
return (ctx) => {
|
|
104
|
-
const { startLine, startColumn,
|
|
105
|
-
|
|
15
|
+
const { startLine, startColumn, endColumn, lineBefore, errorLine, lineAfter, message, errorCode, shortMessage, shortMessagePlacement = 'auto', filePath, fullPath, baseDir, type = 'error', maxColumn, } = options;
|
|
16
|
+
// If availableWidth is Infinity (during Grid measurement), use a reasonable default
|
|
17
|
+
// Otherwise use the actual available width
|
|
18
|
+
const availableWidth = Number.isFinite(ctx.availableWidth) ? ctx.availableWidth : 80;
|
|
106
19
|
// Color scheme based on type
|
|
107
20
|
const colors = {
|
|
108
21
|
error: { primary: 'red', secondary: 'brightRed', message: 'brightRed' },
|
|
@@ -110,8 +23,10 @@ export function CodeDebug(options) {
|
|
|
110
23
|
info: { primary: 'cyan', secondary: 'brightCyan', message: 'brightCyan' },
|
|
111
24
|
};
|
|
112
25
|
const colorScheme = colors[type];
|
|
113
|
-
// Get appropriate line number color based on terminal theme
|
|
114
|
-
const lineNumberColor =
|
|
26
|
+
// Get appropriate line number color based on terminal theme (muted color)
|
|
27
|
+
const lineNumberColor = getLineNumberColor(); // For line numbers (muted)
|
|
28
|
+
// Use brightBlack for line numbers (visible but not too bright)
|
|
29
|
+
const lineNumColor = isDarkTerminal() ? 'brightBlack' : 'black';
|
|
115
30
|
// Calculate available width for code (reserve space for line numbers, separator, and spaces)
|
|
116
31
|
// Calculate the maximum width needed for any line number that will be displayed
|
|
117
32
|
const lineNumbersToCheck = [startLine];
|
|
@@ -122,114 +37,212 @@ export function CodeDebug(options) {
|
|
|
122
37
|
lineNumbersToCheck.push(startLine + 1);
|
|
123
38
|
}
|
|
124
39
|
const lineNumWidth = Math.max(...lineNumbersToCheck.map(n => String(n).length));
|
|
125
|
-
const codeAreaWidth = availableWidth - lineNumWidth -
|
|
126
|
-
//
|
|
40
|
+
const codeAreaWidth = availableWidth - lineNumWidth - 3; // -3 for " │ " (space, pipe, space)
|
|
41
|
+
// Use truncateFocusRange to show the target range with proper truncation
|
|
127
42
|
const targetEndCol = endColumn ?? startColumn;
|
|
128
|
-
const
|
|
129
|
-
const
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
// Helper to map original column to display position
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return truncatedPlain.length; // After visible, point to end
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
// In visible range: position = 4 (for "...") + (col - startCol + 1)
|
|
149
|
-
return 4 + (originalCol - visibleRange.startCol);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else if (visibleRange.hasEllipsisStart) {
|
|
153
|
-
// Format: "...code"
|
|
154
|
-
if (originalCol < visibleRange.startCol) {
|
|
155
|
-
return 1;
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
return 4 + (originalCol - visibleRange.startCol);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
else if (visibleRange.hasEllipsisEnd) {
|
|
162
|
-
// Format: "code..."
|
|
163
|
-
if (originalCol > visibleRange.endCol) {
|
|
164
|
-
return truncatedPlain.length;
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
return originalCol;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
// No ellipsis, direct mapping
|
|
172
|
-
return originalCol;
|
|
43
|
+
const defaultCodeColor = isDarkTerminal() ? 'brightBlack' : 'black';
|
|
44
|
+
const styledErrorLine = applyStyle(errorLine, { color: defaultCodeColor });
|
|
45
|
+
const truncateResult = truncateFocusRange(styledErrorLine, codeAreaWidth, startColumn, targetEndCol, maxColumn);
|
|
46
|
+
const truncatedErrorLine = truncateResult.text;
|
|
47
|
+
const visibleStartCol = truncateResult.visibleStartCol;
|
|
48
|
+
const visibleEndCol = truncateResult.visibleEndCol;
|
|
49
|
+
const rangeStartCol = truncateResult.rangeStartCol;
|
|
50
|
+
const rangeEndCol = truncateResult.rangeEndCol;
|
|
51
|
+
// Helper to map original column to display position using the actual visible range
|
|
52
|
+
const mapColumnToDisplayLocal = (originalCol) => {
|
|
53
|
+
const result = mapColumnToDisplay(errorLine, truncatedErrorLine, visibleStartCol, visibleEndCol, originalCol, rangeStartCol, rangeEndCol);
|
|
54
|
+
// Debug logging
|
|
55
|
+
if (originalCol === startColumn || originalCol === endColumn) {
|
|
56
|
+
const truncatedPlain = stripAnsi(truncatedErrorLine);
|
|
57
|
+
const charAtPos = truncatedPlain[result - 1] || '?';
|
|
58
|
+
const expectedChar = errorLine[originalCol - 1] || '?';
|
|
59
|
+
logToFile(`[code-debug] Width: ${codeAreaWidth}, OriginalCol: ${originalCol}, DisplayPos: ${result}, Char: '${charAtPos}' (expected '${expectedChar}'), VisibleRange: ${visibleStartCol}-${visibleEndCol}, Truncated: "${truncatedPlain.substring(0, 50)}..."`);
|
|
173
60
|
}
|
|
61
|
+
return result;
|
|
174
62
|
};
|
|
175
|
-
|
|
176
|
-
let underlineStartCol = arrowCol;
|
|
177
|
-
let underlineEndCol = arrowCol;
|
|
178
|
-
if (endColumn) {
|
|
179
|
-
underlineStartCol = mapColumnToDisplay(startColumn);
|
|
180
|
-
underlineEndCol = mapColumnToDisplay(endColumn);
|
|
181
|
-
// Ensure valid range
|
|
182
|
-
if (underlineEndCol < underlineStartCol) {
|
|
183
|
-
underlineEndCol = underlineStartCol;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// Build the code block lines (will be wrapped in Section)
|
|
63
|
+
// Build the code block lines
|
|
187
64
|
const codeLines = [];
|
|
188
|
-
//
|
|
65
|
+
// Icon and message at the top (Oxlint style)
|
|
66
|
+
// Use grid to handle wrapping automatically
|
|
67
|
+
const icon = type === 'error' ? '✖' : type === 'warning' ? '⚠' : 'ℹ';
|
|
68
|
+
const iconStyled = applyStyle(icon, { color: colorScheme.message });
|
|
69
|
+
// Build the combined message text: errorCode (if present) + message
|
|
70
|
+
// The errorCode should be underlined and bold, followed by ": ", then the message
|
|
71
|
+
// All parts should have the message color
|
|
72
|
+
let messageText;
|
|
73
|
+
if (errorCode) {
|
|
74
|
+
const errorCodeStyled = applyStyle(errorCode, {
|
|
75
|
+
color: colorScheme.message,
|
|
76
|
+
underline: true,
|
|
77
|
+
bold: true
|
|
78
|
+
});
|
|
79
|
+
// Apply message color to ": " and message parts so they maintain color after errorCode's reset
|
|
80
|
+
const colonAndMessage = applyStyle(': ' + message, { color: colorScheme.message });
|
|
81
|
+
messageText = errorCodeStyled + colonAndMessage;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
messageText = message;
|
|
85
|
+
}
|
|
86
|
+
// Use Styled component to handle wrapping - it uses wrapText which prevents mid-word breaks
|
|
87
|
+
// Note: messageText may already have ANSI codes, so Styled will preserve them
|
|
88
|
+
const messageComponent = Styled({ color: colorScheme.message, overflow: 'wrap' }, messageText);
|
|
89
|
+
// Use 2-column grid: [icon, message (with optional errorCode)]
|
|
90
|
+
const messageGrid = Grid({ template: [1, '1*'], columnGap: 1 }, iconStyled, messageComponent);
|
|
91
|
+
const messageResult = callComponent(messageGrid, ctx);
|
|
92
|
+
const messageLines = [];
|
|
93
|
+
if (messageResult && typeof messageResult === 'string') {
|
|
94
|
+
messageLines.push(messageResult);
|
|
95
|
+
}
|
|
96
|
+
else if (Array.isArray(messageResult)) {
|
|
97
|
+
messageLines.push(...messageResult);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
messageLines.push(iconStyled + ' ' + message);
|
|
101
|
+
}
|
|
102
|
+
codeLines.push(...messageLines);
|
|
103
|
+
// Add blank line after message before code block
|
|
104
|
+
codeLines.push('');
|
|
105
|
+
// Filename in brackets with line:column, connected with curved border (Oxlint style)
|
|
189
106
|
const pathText = baseDir && filePath.startsWith(baseDir)
|
|
190
107
|
? filePath.substring(baseDir.length + 1)
|
|
191
108
|
: filePath;
|
|
192
|
-
|
|
193
|
-
const
|
|
194
|
-
|
|
109
|
+
// Build location line parts
|
|
110
|
+
const curveIndent = ' '.repeat(lineNumWidth + 1);
|
|
111
|
+
const curve = applyStyle('╭─', { color: 'brightBlack' });
|
|
112
|
+
const bracketOpen = '[';
|
|
113
|
+
const colon1 = ':';
|
|
114
|
+
// Apply subtle color to line/column numbers (not colons) - use magenta for location line
|
|
115
|
+
const locationNumColor = isDarkTerminal() ? 'magenta' : 'magenta';
|
|
116
|
+
const lineNum = applyStyle(String(startLine), { color: locationNumColor });
|
|
117
|
+
const colon2 = ':';
|
|
118
|
+
const colNum = applyStyle(String(startColumn), { color: locationNumColor });
|
|
119
|
+
const bracketClose = ']';
|
|
120
|
+
// Calculate max width for path: available width minus fixed parts
|
|
121
|
+
// Fixed parts: curveIndent + ╭─ + [ + : + lineNum + : + colNum + ]
|
|
122
|
+
// Note: lineNum and colNum are now styled, so we need to use plain strings for width calculation
|
|
123
|
+
const lineNumPlain = String(startLine);
|
|
124
|
+
const colNumPlain = String(startColumn);
|
|
125
|
+
const fixedParts = curveIndent + curve + bracketOpen + colon1 + lineNumPlain + colon2 + colNumPlain + bracketClose;
|
|
126
|
+
const fixedPartsWidth = countVisibleChars(fixedParts);
|
|
127
|
+
// Ensure pathMaxWidth is finite and reasonable (cap at 40 to prevent extremely long paths)
|
|
128
|
+
const pathMaxWidth = Math.max(10, Math.min(40, availableWidth - fixedPartsWidth));
|
|
129
|
+
// Create clickable file link with styling and max width constraint
|
|
130
|
+
const pathWithLink = fileLink(fullPath, pathText);
|
|
131
|
+
const pathStyled = Styled({ color: 'blue', bold: true, overflow: 'ellipsis-start', max: pathMaxWidth }, pathWithLink);
|
|
132
|
+
// Use Grid with auto columns (content-based width, no padding)
|
|
133
|
+
// Template: [curveIndent (auto)][╭─ (auto)][[ (auto)][path (auto)][: (auto)][line (auto)][: (auto)][column (auto)][] (auto)]
|
|
134
|
+
const locationGrid = Grid({
|
|
135
|
+
template: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto'],
|
|
136
|
+
columnGap: 0
|
|
137
|
+
}, curveIndent, curve, bracketOpen, pathStyled, colon1, lineNum, colon2, colNum, bracketClose);
|
|
138
|
+
const locationResult = callComponent(locationGrid, ctx);
|
|
139
|
+
if (locationResult && typeof locationResult === 'string') {
|
|
140
|
+
codeLines.push(locationResult);
|
|
141
|
+
}
|
|
142
|
+
else if (Array.isArray(locationResult)) {
|
|
143
|
+
codeLines.push(...locationResult);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// Fallback
|
|
147
|
+
const locationLine = curveIndent + curve + bracketOpen + pathText + colon1 + lineNum + colon2 + colNum + bracketClose;
|
|
148
|
+
codeLines.push(locationLine);
|
|
149
|
+
}
|
|
195
150
|
// Line before (if exists)
|
|
196
151
|
if (lineBefore !== null && lineBefore !== undefined) {
|
|
197
152
|
const beforeLineNum = String(startLine - 1);
|
|
198
153
|
const beforeLineNumPadded = beforeLineNum.padStart(lineNumWidth);
|
|
199
154
|
const truncatedBefore = truncateToWidth(lineBefore, codeAreaWidth);
|
|
200
|
-
|
|
201
|
-
|
|
155
|
+
// Make non-error lines slightly dimmer: darker on dark terminals, whiter on light terminals
|
|
156
|
+
const dimmedBefore = isDarkTerminal()
|
|
157
|
+
? applyStyle(truncatedBefore, { dim: true })
|
|
158
|
+
: applyStyle(truncatedBefore, { color: 'brightBlack' });
|
|
159
|
+
codeLines.push(applyStyle(`${beforeLineNumPadded} `, { color: lineNumColor }) +
|
|
160
|
+
applyStyle('│ ', { color: 'brightBlack' }) + dimmedBefore);
|
|
161
|
+
}
|
|
162
|
+
// Error line (with space before code)
|
|
163
|
+
// truncatedErrorLine already has the default color applied
|
|
164
|
+
let highlightedErrorLine = truncatedErrorLine;
|
|
165
|
+
// Highlight the error range if endColumn is specified
|
|
166
|
+
if (endColumn && endColumn > startColumn) {
|
|
167
|
+
// Map columns to display positions in the truncated (and styled) text
|
|
168
|
+
// We need to map based on the plain truncated text, then account for ANSI codes
|
|
169
|
+
const truncatedPlain = stripAnsi(truncatedErrorLine);
|
|
170
|
+
const highlightStart = mapColumnToDisplayLocal(startColumn); // 1-based display position
|
|
171
|
+
const highlightEnd = mapColumnToDisplayLocal(endColumn); // 1-based display position
|
|
172
|
+
// Split at highlight start and end positions (splitAtVisiblePos uses 0-based)
|
|
173
|
+
const { before: beforeHighlight, after: remainingAfterStart } = splitAtVisiblePos(highlightedErrorLine, highlightStart - 1);
|
|
174
|
+
const highlightLength = highlightEnd - highlightStart + 1;
|
|
175
|
+
const { before: highlightRange, after: afterHighlight } = splitAtVisiblePos(remainingAfterStart, highlightLength);
|
|
176
|
+
// Strip existing ANSI codes from highlight range and apply new highlight color
|
|
177
|
+
// This ensures the highlight color properly overrides the default code color
|
|
178
|
+
const highlightColor = isDarkTerminal() ? 'white' : 'black';
|
|
179
|
+
const highlightPlain = stripAnsi(highlightRange);
|
|
180
|
+
const highlightedRangeStyled = applyStyle(highlightPlain, { color: highlightColor });
|
|
181
|
+
highlightedErrorLine = beforeHighlight + highlightedRangeStyled + afterHighlight;
|
|
202
182
|
}
|
|
203
|
-
// Error line
|
|
204
183
|
const errorLineNum = String(startLine);
|
|
205
184
|
const errorLineNumPadded = errorLineNum.padStart(lineNumWidth);
|
|
206
|
-
let errorLineDisplay = applyStyle(`${errorLineNumPadded}
|
|
207
|
-
|
|
185
|
+
let errorLineDisplay = applyStyle(`${errorLineNumPadded} `, { color: lineNumColor }) +
|
|
186
|
+
applyStyle('│ ', { color: 'brightBlack' }) + highlightedErrorLine;
|
|
208
187
|
codeLines.push(errorLineDisplay);
|
|
209
|
-
//
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
188
|
+
// Underline line (Oxlint style)
|
|
189
|
+
// Format: "[lineNumWidth spaces][1 space][│][1 space][dots][underline]"
|
|
190
|
+
// Calculate positions relative to the code (after "│ ")
|
|
191
|
+
const underlineStartInCode = mapColumnToDisplayLocal(startColumn);
|
|
192
|
+
const underlineEndInCode = endColumn ? mapColumnToDisplayLocal(endColumn) : underlineStartInCode;
|
|
193
|
+
const underlineLength = underlineEndInCode - underlineStartInCode + 1;
|
|
194
|
+
// Spaces to align with the start of the underline
|
|
195
|
+
// underlineStartInCode is position in truncated text (which is what's displayed after │ )
|
|
196
|
+
// The ellipsis is PART of the displayed text, so we use the position directly
|
|
197
|
+
// Position is 1-based, so spacesBefore = underlineStartInCode - 1
|
|
198
|
+
const spacesBefore = Math.max(0, underlineStartInCode - 1);
|
|
199
|
+
// Underline line: line number width + space + │ + space + spaces + underline
|
|
200
|
+
let indicatorLine = ' '.repeat(lineNumWidth) + ' ' + applyStyle('│', { color: 'brightBlack' }) + ' ' +
|
|
201
|
+
' '.repeat(spacesBefore);
|
|
202
|
+
// Calculate connectCol for short message (if present)
|
|
203
|
+
// This is the position where the T-bar (┬) will be, which is the middle of the underline
|
|
204
|
+
// Use positions in the truncated text (which is what's displayed)
|
|
205
|
+
const connectCol = shortMessage && underlineLength > 1
|
|
206
|
+
? underlineStartInCode + Math.floor(underlineLength / 2)
|
|
207
|
+
: underlineStartInCode;
|
|
208
|
+
// Calculate the position of the T-bar within the indicator line (after │ and space)
|
|
209
|
+
// This is: lineNumWidth + 1 (space) + 1 (│) + 1 (space) + spacesBefore + connectPosInUnderline
|
|
210
|
+
const connectPosInIndicator = lineNumWidth + 1 + 1 + 1 + spacesBefore + (connectCol - underlineStartInCode);
|
|
211
|
+
logToFile(`[code-debug] lineNumWidth: ${lineNumWidth}, spacesBefore: ${spacesBefore}, connectCol: ${connectCol}, underlineStartInCode: ${underlineStartInCode}, connectPosInIndicator: ${connectPosInIndicator}`);
|
|
212
|
+
const underlineStartCol = underlineStartInCode;
|
|
213
|
+
const underlineEndCol = underlineEndInCode;
|
|
216
214
|
if (endColumn && underlineEndCol > underlineStartCol) {
|
|
217
|
-
// Underline with curved edges facing up
|
|
218
|
-
|
|
219
|
-
const
|
|
220
|
-
if (
|
|
221
|
-
//
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
215
|
+
// Underline with curved edges facing up
|
|
216
|
+
// Use underlineLength which was already calculated correctly (end - start + 1)
|
|
217
|
+
const underlineLen = underlineLength;
|
|
218
|
+
if (shortMessage) {
|
|
219
|
+
// With short message: T-bar in the middle
|
|
220
|
+
const connectPosInUnderline = connectCol - underlineStartInCode; // Position within the underline
|
|
221
|
+
if (underlineLen >= 3) {
|
|
222
|
+
// Build underline with T-bar: left curve, dashes, T-bar, dashes, right curve
|
|
223
|
+
// Total length = 1 (┖) + left dashes + 1 (┬) + right dashes + 1 (┚) = underlineLen
|
|
224
|
+
// So: left dashes + right dashes = underlineLen - 3
|
|
225
|
+
// T-bar is at position connectPosInUnderline (0-indexed from start), so:
|
|
226
|
+
// - left dashes = connectPosInUnderline - 1 (before T-bar, after ┖)
|
|
227
|
+
// - right dashes = underlineLen - 3 - (connectPosInUnderline - 1) = underlineLen - connectPosInUnderline - 2
|
|
228
|
+
const leftPart = '─'.repeat(Math.max(0, connectPosInUnderline - 1));
|
|
229
|
+
const rightPart = '─'.repeat(Math.max(0, underlineLen - connectPosInUnderline - 2));
|
|
230
|
+
indicatorLine += applyStyle('┖' + leftPart + '┬' + rightPart + '┚', { color: colorScheme.primary });
|
|
231
|
+
}
|
|
232
|
+
else if (underlineLen === 2) {
|
|
233
|
+
// Exactly 2 characters: just the brackets, no T-bar
|
|
234
|
+
indicatorLine += applyStyle('┖┚', { color: colorScheme.primary });
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
// Single character, just use T
|
|
238
|
+
indicatorLine += applyStyle('╿', { color: colorScheme.primary });
|
|
239
|
+
}
|
|
229
240
|
}
|
|
230
241
|
else {
|
|
231
|
-
//
|
|
232
|
-
|
|
242
|
+
// No short message: flat underline with curved ends (no T-bar)
|
|
243
|
+
// For underlineLen=2: ┖┚ (no dashes), for underlineLen=3: ┖─┚ (1 dash), etc.
|
|
244
|
+
const dashes = '─'.repeat(Math.max(0, underlineLen - 2));
|
|
245
|
+
indicatorLine += applyStyle('┖' + dashes + '┚', { color: colorScheme.primary });
|
|
233
246
|
}
|
|
234
247
|
}
|
|
235
248
|
else {
|
|
@@ -237,58 +250,74 @@ export function CodeDebug(options) {
|
|
|
237
250
|
indicatorLine += applyStyle('╿', { color: colorScheme.primary });
|
|
238
251
|
}
|
|
239
252
|
codeLines.push(indicatorLine);
|
|
240
|
-
//
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
// Short message connected to underline (if provided)
|
|
254
|
+
if (shortMessage) {
|
|
255
|
+
// Determine placement: 'auto' means calculate which side has more available space
|
|
256
|
+
let placement = shortMessagePlacement === 'auto'
|
|
257
|
+
? (() => {
|
|
258
|
+
const shortMessageWidth = countVisibleChars(shortMessage);
|
|
259
|
+
const connectorWidth = 4; // " ──╯" or "╰── " is 4 characters
|
|
260
|
+
const totalWidth = shortMessageWidth + connectorWidth;
|
|
261
|
+
// Available space on left: from start of code area to connectCol
|
|
262
|
+
const availableLeft = connectCol - 1;
|
|
263
|
+
// Available space on right: from connectCol to end of code area
|
|
264
|
+
const availableRight = codeAreaWidth - connectCol;
|
|
265
|
+
// Place on left if left has more space, otherwise right
|
|
266
|
+
return availableLeft >= availableRight ? 'left' : 'right';
|
|
267
|
+
})()
|
|
268
|
+
: shortMessagePlacement;
|
|
269
|
+
if (placement === 'left') {
|
|
270
|
+
// Short message on left: message + connector pointing right (curved up)
|
|
271
|
+
// The connector " ──╯" is 4 chars: space + dash + dash + ╯
|
|
272
|
+
// The ╯ should be at connectPosInIndicator
|
|
273
|
+
// So: linePrefixWidth + spacesBeforeMessage + messageWidth + connectorWidth = connectPosInIndicator
|
|
274
|
+
// Where connectorWidth = 4 (space + 2 dashes + ╯)
|
|
275
|
+
const messageWidth = countVisibleChars(shortMessage);
|
|
276
|
+
const linePrefixWidth = lineNumWidth + 3; // lineNumWidth + space + │ + space
|
|
277
|
+
const connectorWidth = 4; // " ──╯" is 4 characters
|
|
278
|
+
const spacesBeforeMessage = Math.max(0, connectPosInIndicator - linePrefixWidth - messageWidth - connectorWidth);
|
|
279
|
+
const shortMessageLine = ' '.repeat(lineNumWidth) + ' ' + applyStyle('│', { color: 'brightBlack' }) + ' ' +
|
|
280
|
+
' '.repeat(spacesBeforeMessage) +
|
|
281
|
+
applyStyle(shortMessage, { color: colorScheme.message }) +
|
|
282
|
+
applyStyle(' ──╯', { color: colorScheme.primary });
|
|
283
|
+
codeLines.push(shortMessageLine);
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
// Short message on right: connector pointing left (curved up) + message
|
|
287
|
+
// The connector "╰── " is 4 chars, and the last dash should connect to the T-bar
|
|
288
|
+
// The T-bar is at connectPosInIndicator, so the last dash is at connectPosInIndicator
|
|
289
|
+
// The connector "╰── " has the last dash at position 3 (0-indexed), so:
|
|
290
|
+
// connectorStartPos + 3 = connectPosInIndicator
|
|
291
|
+
// Therefore: connectorStartPos = connectPosInIndicator - 3
|
|
292
|
+
const linePrefixWidth = lineNumWidth + 3; // lineNumWidth + space + │ + space
|
|
293
|
+
const connectorStartPos = connectPosInIndicator - 3; // Connector "╰── " ends at connectPosInIndicator
|
|
294
|
+
const spacesBeforeConnector = Math.max(0, connectorStartPos - linePrefixWidth);
|
|
295
|
+
const shortMessageLine = ' '.repeat(lineNumWidth) + ' ' + applyStyle('│', { color: 'brightBlack' }) + ' ' +
|
|
296
|
+
' '.repeat(spacesBeforeConnector) +
|
|
297
|
+
applyStyle('╰── ', { color: colorScheme.primary }) +
|
|
298
|
+
' ' + // Single space between connector and message
|
|
299
|
+
applyStyle(shortMessage, { color: colorScheme.message });
|
|
300
|
+
codeLines.push(shortMessageLine);
|
|
257
301
|
}
|
|
258
302
|
}
|
|
259
|
-
// Line after (if exists)
|
|
303
|
+
// Line after (if exists)
|
|
260
304
|
if (lineAfter !== null && lineAfter !== undefined) {
|
|
261
|
-
// Add empty line after message (within section)
|
|
262
|
-
codeLines.push('');
|
|
263
305
|
const afterLineNum = String(startLine + 1);
|
|
264
306
|
const afterLineNumPadded = afterLineNum.padStart(lineNumWidth);
|
|
265
307
|
const truncatedAfter = truncateToWidth(lineAfter, codeAreaWidth);
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
308
|
+
// Make non-error lines slightly dimmer: darker on dark terminals, whiter on light terminals
|
|
309
|
+
const dimmedAfter = isDarkTerminal()
|
|
310
|
+
? applyStyle(truncatedAfter, { dim: true })
|
|
311
|
+
: applyStyle(truncatedAfter, { color: 'brightBlack' });
|
|
312
|
+
codeLines.push(applyStyle(`${afterLineNumPadded} `, { color: lineNumColor }) +
|
|
313
|
+
applyStyle('│ ', { color: 'brightBlack' }) + dimmedAfter);
|
|
270
314
|
}
|
|
271
|
-
//
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
const lineNumText = `:${startLine}${endLine && endLine !== startLine ? `:${endLine}` : ''}`;
|
|
278
|
-
return pathWithLink + lineNumText;
|
|
279
|
-
})();
|
|
280
|
-
// Use Section to wrap the code block with left border
|
|
281
|
-
const sectionComponent = Section({
|
|
282
|
-
title: filePathDisplay,
|
|
283
|
-
titleColor: colorScheme.secondary,
|
|
284
|
-
left: true,
|
|
285
|
-
right: false,
|
|
286
|
-
top: false,
|
|
287
|
-
bottom: false,
|
|
288
|
-
padding: 0,
|
|
289
|
-
borderColor: colorScheme.primary,
|
|
290
|
-
}, (ctx) => codeLines);
|
|
291
|
-
return callComponent(sectionComponent, ctx);
|
|
315
|
+
// Bottom curve to close the box (Oxlint style)
|
|
316
|
+
const bottomCurveIndent = ' '.repeat(lineNumWidth + 1);
|
|
317
|
+
const bottomCurve = bottomCurveIndent + applyStyle('╰─', { color: 'brightBlack' });
|
|
318
|
+
codeLines.push(bottomCurve);
|
|
319
|
+
// Return lines directly (no Section wrapper for Oxlint style)
|
|
320
|
+
return codeLines;
|
|
292
321
|
};
|
|
293
322
|
}
|
|
294
323
|
//# sourceMappingURL=code-debug.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-debug.js","sourceRoot":"","sources":["../../src/components/code-debug.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-debug.js","sourceRoot":"","sources":["../../src/components/code-debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-debug.test.d.ts","sourceRoot":"","sources":["../../src/components/code-debug.test.ts"],"names":[],"mappings":""}
|