From aec6c0861e8244cdaefda14840844e922705c8fa Mon Sep 17 00:00:00 2001
From: DeWitt Clinton <dclinton@gmail.com>
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 && (
                 <Box>
-- 
cgit v1.2.3

