From fd59d9dd9279b59823c1d5dfa23670b476da63a5 Mon Sep 17 00:00:00 2001 From: Tommaso Sciortino Date: Sun, 9 Nov 2025 14:08:29 -0800 Subject: [PATCH] Fix shift+return in vscode. (#12799) --- .../cli/src/ui/contexts/KeypressContext.test.tsx | 15 +++++++++++++++ packages/cli/src/ui/contexts/KeypressContext.tsx | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/ui/contexts/KeypressContext.test.tsx b/packages/cli/src/ui/contexts/KeypressContext.test.tsx index 42d60628f6..8a5355a918 100644 --- a/packages/cli/src/ui/contexts/KeypressContext.test.tsx +++ b/packages/cli/src/ui/contexts/KeypressContext.test.tsx @@ -105,6 +105,21 @@ describe('KeypressContext', () => { ); }); + it('should handle backslash return', async () => { + const { keyHandler } = setupKeypressTest(); + + act(() => stdin.write('\\\r')); + + expect(keyHandler).toHaveBeenCalledWith( + expect.objectContaining({ + name: 'return', + ctrl: false, + meta: false, + shift: true, + }), + ); + }); + it.each([ { modifier: 'Shift', diff --git a/packages/cli/src/ui/contexts/KeypressContext.tsx b/packages/cli/src/ui/contexts/KeypressContext.tsx index 1f89b1d89c..e0a7125e65 100644 --- a/packages/cli/src/ui/contexts/KeypressContext.tsx +++ b/packages/cli/src/ui/contexts/KeypressContext.tsx @@ -68,7 +68,7 @@ function bufferBackslashEnter( if (key == null) { continue; - } else if (key.name !== '\\') { + } else if (key.sequence !== '\\') { keypressHandler(key); continue; } @@ -84,7 +84,7 @@ function bufferBackslashEnter( keypressHandler(key); } else if (nextKey.name === 'return') { keypressHandler({ - ...key, + ...nextKey, shift: true, sequence: '\r', // Corrected escaping for newline });