aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-09 23:00:32 +0200
committerblasty <blasty@local>2026-07-09 23:00:32 +0200
commit7c58501232d493bc8f132d2d745f62a96ea27d82 (patch)
tree4d5ed2ac07cb813115e58380a936486f9ddb175f /docs
parentxrefs: pre-select the site the dialog was invoked from (diff)
downloadida-tui-7c58501232d493bc8f132d2d745f62a96ea27d82.tar.gz
ida-tui-7c58501232d493bc8f132d2d745f62a96ea27d82.tar.xz
ida-tui-7c58501232d493bc8f132d2d745f62a96ea27d82.zip
names: command-palette fuzzy finder (Ctrl+N), overlay-first
Replace the docked names pane as the primary way to jump to symbols with a command-palette overlay: Ctrl+N opens SymbolPalette, type to fuzzy-find (scored subsequence match with matched-char highlighting), up/down to select, Enter to open, Esc to close. Mouse-clickable too. The docked FunctionsPanel now starts hidden and is still reachable/toggleable with Ctrl+B (classic table view, sort, filter, goto all unchanged); a code view takes focus on startup. Status hints 'Ctrl+N: find symbol'. Pilot checks for open/fuzzy/subsequence/select/close. Tests reveal the docked pane (Ctrl+B) for the existing table-driven checks. full suite 74/74.
Diffstat (limited to 'docs')
-rw-r--r--docs/TEXTUAL_NOTES.md7
1 files changed, 7 insertions, 0 deletions
diff --git a/docs/TEXTUAL_NOTES.md b/docs/TEXTUAL_NOTES.md
index eee40fc..6ce9037 100644
--- a/docs/TEXTUAL_NOTES.md
+++ b/docs/TEXTUAL_NOTES.md
@@ -45,6 +45,13 @@ Hard-won Textual behaviour and the patterns this app relies on. Pairs with
the Footer (see `#search`/`#rename`/`#status`).
- Textual ships **no C/C++ tree-sitter grammar** — `TextArea(language="cpp")` is a
silent no-op. We highlight pseudocode with Pygments (`idatui/highlight.py`).
+- **A modal's `Input` messages bubble to the App.** `SymbolPalette` (the Ctrl+N
+ fuzzy finder) has its own `Input`; its `Input.Changed`/`Input.Submitted` bubble
+ up to the app's handlers (which would run the `#search`/`#func-filter` logic and
+ even hide the palette's input). Call `event.stop()` in the modal's handlers.
+ A single-line `Input` doesn't bind `up`/`down`, so those bubble to the modal's
+ BINDINGS (used to move the result list while the input keeps focus); `enter`
+ is consumed by the Input → handle it via `on_input_submitted`.
## App patterns