diff options
| author | blasty <blasty@local> | 2026-07-09 23:00:32 +0200 |
|---|---|---|
| committer | blasty <blasty@local> | 2026-07-09 23:00:32 +0200 |
| commit | 7c58501232d493bc8f132d2d745f62a96ea27d82 (patch) | |
| tree | 4d5ed2ac07cb813115e58380a936486f9ddb175f /docs | |
| parent | xrefs: pre-select the site the dialog was invoked from (diff) | |
| download | ida-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.md | 7 |
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 |
