From aec6c0861e8244cdaefda14840844e922705c8fa Mon Sep 17 00:00:00 2001 From: DeWitt Clinton Date: Wed, 14 May 2025 17:33:37 -0700 Subject: Add readline-like keybindings to the input prompts. (#354) New keybindings in the main input prompt (when auto-suggestions are not active): - `Ctrl+L`: Clears the entire screen. - `Ctrl+A`: Moves the cursor to the beginning of the current input line. - `Ctrl+E`: Moves the cursor to the end of the current input line. - `Ctrl+P`: Navigates to the previous command in the input history. - `Ctrl+N`: Navigates to the next command in the input history. In the multiline text editor (e.g., when editing a previous message): - `Ctrl+K`: Deletes text from the current cursor position to the end of the line ("kill line right"). --- packages/cli/src/ui/App.tsx | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'packages/cli/src/ui/App.tsx') diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index e1ae8da3..e4cd5de9 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -180,6 +180,11 @@ export const App = ({ [setQuery, setEditorState], ); + const handleClearScreen = useCallback(() => { + clearItems(); + refreshStatic(); + }, [clearItems, refreshStatic]); + const completion = useCompletion( query, config.getTargetDir(), @@ -305,6 +310,8 @@ export const App = ({ navigateSuggestionUp={completion.navigateUp} navigateSuggestionDown={completion.navigateDown} resetCompletion={completion.resetCompletionState} + setEditorState={setEditorState} + onClearScreen={handleClearScreen} // Added onClearScreen prop /> {completion.showSuggestions && ( -- cgit v1.2.3