From 7a3a9066f96440dd1cdbfbc8be576648f7e73fe1 Mon Sep 17 00:00:00 2001 From: DeWitt Clinton Date: Fri, 23 May 2025 22:13:57 -0700 Subject: [PATCH] Add additional readline-like keybindings. (#524) Adds the following conventional readline-like keybindings: - `Ctrl+H`: Delete the previous character. - `Ctrl+D`: Delete the next character. Additionally, remaps the Debug Console command from Ctrl+D to Ctrl+O, which had been first introduced in PR #486. --- packages/cli/src/ui/App.tsx | 3 +-- packages/cli/src/ui/components/ConsoleSummaryDisplay.tsx | 2 +- packages/cli/src/ui/components/DetailedMessagesDisplay.tsx | 2 +- packages/cli/src/ui/components/shared/text-buffer.ts | 3 ++- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index ac36b87c..79b6b9ab 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -84,8 +84,7 @@ export const App = ({ [consoleMessages], ); useInput((input: string, key: InkKeyType) => { - // Check for Ctrl+D key press - if (key.ctrl && (input === 'd' || input === 'D')) { + if (key.ctrl && input === 'o') { setShowErrorDetails((prev) => !prev); refreshStatic(); } diff --git a/packages/cli/src/ui/components/ConsoleSummaryDisplay.tsx b/packages/cli/src/ui/components/ConsoleSummaryDisplay.tsx index b944f409..762a4faa 100644 --- a/packages/cli/src/ui/components/ConsoleSummaryDisplay.tsx +++ b/packages/cli/src/ui/components/ConsoleSummaryDisplay.tsx @@ -27,7 +27,7 @@ export const ConsoleSummaryDisplay: React.FC = ({ {errorCount > 0 && ( {errorIcon} {errorCount} error{errorCount > 1 ? 's' : ''}{' '} - (CTRL-D for details) + (CTRL-O for details) )} diff --git a/packages/cli/src/ui/components/DetailedMessagesDisplay.tsx b/packages/cli/src/ui/components/DetailedMessagesDisplay.tsx index de4f3f6e..c1d65a9a 100644 --- a/packages/cli/src/ui/components/DetailedMessagesDisplay.tsx +++ b/packages/cli/src/ui/components/DetailedMessagesDisplay.tsx @@ -33,7 +33,7 @@ export const DetailedMessagesDisplay: React.FC< Debug Console{' '} - (CTRL-D to close) + (CTRL-O to close) {messages.map((msg, index) => { diff --git a/packages/cli/src/ui/components/shared/text-buffer.ts b/packages/cli/src/ui/components/shared/text-buffer.ts index 789a909a..43a19150 100644 --- a/packages/cli/src/ui/components/shared/text-buffer.ts +++ b/packages/cli/src/ui/components/shared/text-buffer.ts @@ -1186,10 +1186,11 @@ export function useTextBuffer({ else if ( key['backspace'] || input === '\x7f' || + (key['ctrl'] && input === 'h') || (key['delete'] && !key['shift']) ) backspace(); - else if (key['delete']) del(); + else if (key['delete'] || (key['ctrl'] && input === 'd')) del(); else if (input && !key['ctrl'] && !key['meta']) { // Heuristic for paste: if input is longer than 1 char (potential paste) // strip ANSI escape codes.