<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ida-tui.git/docs/TEXTUAL_NOTES.md, branch main</title>
<subtitle>tui for headless ida</subtitle>
<id>https://git.sl0p.foo/ida-tui.git/atom/docs/TEXTUAL_NOTES.md?h=main</id>
<link rel='self' href='https://git.sl0p.foo/ida-tui.git/atom/docs/TEXTUAL_NOTES.md?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/'/>
<updated>2026-07-09T21:00:32Z</updated>
<entry>
<title>names: command-palette fuzzy finder (Ctrl+N), overlay-first</title>
<updated>2026-07-09T21:00:32Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-07-09T21:00:32Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=7c58501232d493bc8f132d2d745f62a96ea27d82'/>
<id>urn:sha1:7c58501232d493bc8f132d2d745f62a96ea27d82</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>decompiler: fix stale scroll frame on same-function jump</title>
<updated>2026-07-09T19:27:24Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-07-09T19:27:24Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=584af7e8edf6224c0f3affb2bb98230078a9e836'/>
<id>urn:sha1:584af7e8edf6224c0f3affb2bb98230078a9e836</id>
<content type='text'>
DecompView.goto derived its scroll with _scroll_cursor_into_view() -&gt; a plain
scroll_to, which updates scroll_offset but doesn't repaint at the new offset
(Textual only repaints on a rounded scroll change, and there's no layout pass
since the pane isn't reloaded). So a same-function xref jump landed the cursor
correctly but painted the old scroll until the next cursor move nudged a repaint.

Route goto's scroll (derived or explicit) through _apply_scroll, which re-applies
after the next refresh with layout=True -- the same pattern show() uses. The
cross-function path already worked because reloading + clearing the loading cover
forces a fresh paint. Document the gotcha in TEXTUAL_NOTES.

full suite 64/64.
</content>
</entry>
<entry>
<title>docs: TEXTUAL_NOTES.md — Textual pitfalls, app patterns, testing gotchas</title>
<updated>2026-07-09T17:38:46Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-07-09T17:38:46Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=6f1a2a2e73974e41ec893cf19ea9c30ebea1d865'/>
<id>urn:sha1:6f1a2a2e73974e41ec893cf19ea9c30ebea1d865</id>
<content type='text'>
Companion to PAGING_FINDINGS.md capturing the hard-won Textual behaviour
(bindings/mixins, ScrollView repaint &amp; scroll-clamp, loading cover blurs focus,
mouse offset mapping, Input/Footer overlap, no cpp grammar) and the app patterns
(name-gen cache invalidation, cursor+scroll history, name+address follow).
</content>
</entry>
</feed>
