From a7e45d47cda0b2b4f6325e8700434e7b2a2660ed Mon Sep 17 00:00:00 2001 From: Jacob Richman Date: Mon, 16 Jun 2025 22:21:22 +0000 Subject: Fix bug where single line inserts were deleting all text after the in… (#1114) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli/src/ui/components/shared/text-buffer.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'packages/cli/src/ui/components/shared/text-buffer.ts') diff --git a/packages/cli/src/ui/components/shared/text-buffer.ts b/packages/cli/src/ui/components/shared/text-buffer.ts index ef21d00a..6b025dd5 100644 --- a/packages/cli/src/ui/components/shared/text-buffer.ts +++ b/packages/cli/src/ui/components/shared/text-buffer.ts @@ -635,9 +635,9 @@ export function useTextBuffer({ const lineContent = currentLine(newCursorRow); const before = cpSlice(lineContent, 0, newCursorCol); const after = cpSlice(lineContent, newCursorCol); - newLines[newCursorRow] = before + parts[0]; if (parts.length > 1) { + newLines[newCursorRow] = before + parts[0]; const remainingParts = parts.slice(1); const lastPartOriginal = remainingParts.pop() ?? ''; newLines.splice(newCursorRow + 1, 0, ...remainingParts); @@ -649,6 +649,8 @@ export function useTextBuffer({ newCursorRow = newCursorRow + parts.length - 1; newCursorCol = cpLen(lastPartOriginal); } else { + newLines[newCursorRow] = before + parts[0] + after; + newCursorCol = cpLen(before) + cpLen(parts[0]); } } else if (op.type === 'backspace') { -- cgit v1.2.3