From aceb06a58729f2c10b4fcc78edad86c52560134c Mon Sep 17 00:00:00 2001 From: Tommaso Sciortino Date: Tue, 20 Jan 2026 16:20:51 -0800 Subject: [PATCH] fix(cli): fix newline support broken in previous PR (#17159) --- .../ui/components/shared/text-buffer.test.ts | 17 +++++++++++++++++ .../cli/src/ui/components/shared/text-buffer.ts | 1 + 2 files changed, 18 insertions(+) diff --git a/packages/cli/src/ui/components/shared/text-buffer.test.ts b/packages/cli/src/ui/components/shared/text-buffer.test.ts index 4a264c2cd8..fbad68a1ed 100644 --- a/packages/cli/src/ui/components/shared/text-buffer.test.ts +++ b/packages/cli/src/ui/components/shared/text-buffer.test.ts @@ -1096,6 +1096,23 @@ describe('useTextBuffer', () => { expect(getBufferState(result).lines).toEqual(['', '']); }); + it('should handle Ctrl+J as newline', () => { + const { result } = renderHook(() => + useTextBuffer({ viewport, isValidPath: () => false }), + ); + act(() => + result.current.handleInput({ + name: 'j', + ctrl: true, + meta: false, + shift: false, + insertable: false, + sequence: '\n', + }), + ); + expect(getBufferState(result).lines).toEqual(['', '']); + }); + it('should do nothing for a tab key press', () => { const { result } = renderHook(() => useTextBuffer({ viewport, isValidPath: () => false }), diff --git a/packages/cli/src/ui/components/shared/text-buffer.ts b/packages/cli/src/ui/components/shared/text-buffer.ts index 05f119f369..06e2687495 100644 --- a/packages/cli/src/ui/components/shared/text-buffer.ts +++ b/packages/cli/src/ui/components/shared/text-buffer.ts @@ -2292,6 +2292,7 @@ export function useTextBuffer({ if (key.name === 'paste') insert(input, { paste: true }); else if (keyMatchers[Command.RETURN](key)) newline(); + else if (keyMatchers[Command.NEWLINE](key)) newline(); else if (keyMatchers[Command.MOVE_LEFT](key)) move('left'); else if (keyMatchers[Command.MOVE_RIGHT](key)) move('right'); else if (keyMatchers[Command.MOVE_UP](key)) move('up');