feat(tui): add inline Ctrl+R reverse-i-search for prompt history #6276
+201
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Implements bash-style inline reverse-i-search for prompt history, as an alternative approach to #5775's modal dialog. This addresses #5062 and #1701.
As @ShpetimA suggested in #5062:
Demo
The search works inline in the prompt textarea with a status line in the footer:
Features
Ctrl+R/Up: Cycle to older matchesDown: Cycle to newer matchesEnter: Accept current matchEsc/Ctrl+G: Cancel and restore original prompthistory_search(default:ctrl+r)Implementation Details
historySearchstate to Prompt store tracking:active,query,matchIndex,originalPrompt,originalMode,originalCursorOffsethistory.itemsgetter for direct access to prompt historye.name === "space"handling)Why Inline vs Modal?
For a terminal TUI that already uses shell-like behaviors, inline Ctrl+R is the more cohesive choice.
Closes #5062
Related to #1701, #5775