<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ida-tui.git/idatui/prompt.py, branch pre-codemode</title>
<subtitle>tui for headless ida</subtitle>
<id>https://git.sl0p.foo/ida-tui.git/atom/idatui/prompt.py?h=pre-codemode</id>
<link rel='self' href='https://git.sl0p.foo/ida-tui.git/atom/idatui/prompt.py?h=pre-codemode'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/'/>
<updated>2026-08-06T21:07:30Z</updated>
<entry>
<title>app: lift database edits out of IdaTui, and one prompt abstraction</title>
<updated>2026-08-06T21:07:30Z</updated>
<author>
<name>blasty</name>
<email>blasty@local</email>
</author>
<published>2026-08-06T21:07:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/ida-tui.git/commit/?id=e0e65b1a26f96b304b098490da77ed1722d2260d'/>
<id>urn:sha1:e0e65b1a26f96b304b098490da77ed1722d2260d</id>
<content type='text'>
Second cut at the 4000-line class, and the biggest: 702 contiguous lines of
rename/comment/retype/make-data/literal-format/define, now EditController.

What stays on IdaTui is what Textual insists on owning -- on_&lt;Message&gt; handlers,
which it dispatches by name on the DOMNode, and @work entry points, whose worker
machinery wants a DOMNode host. Both are one-line delegates.

Underneath them was the duplication that made this worth doing rather than just
moving lines. Opening a prompt (hide the status bar, set placeholder, can_focus,
display, value, focus) was written out five times; closing it four; and Esc was a
six-branch ladder in on_key with one copy of the same four lines per prompt. They
had drifted -- search cancelled its highlight, goto restored focus, the edit
prompts did neither consistently. Prompt/PromptBar own that discipline once, and
close() HANDS BACK the context it was holding, so it can't be read twice or go
stale: the listing's rename had to capture _rename_addr by hand before
_end_rename cleared it, or the name went to address 0.

_line_ea_for stays on the app -- rpc.py and the goto readback ask the same
question, so it was never an edit helper.
</content>
</entry>
</feed>
