aboutsummaryrefslogtreecommitdiffstats
path: root/idatui/errors.py
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-08-06 15:11:54 +0200
committerblasty <blasty@local>2026-08-06 15:11:54 +0200
commitf4fed15e05213b580f00f8958fa73b46f9838354 (patch)
tree963d3e0feed1cfb59bd3c743a5c1183d33eee9ec /idatui/errors.py
parentdomain: the control-flow graph, with each block's rows (diff)
downloadida-tui-f4fed15e05213b580f00f8958fa73b46f9838354.tar.gz
ida-tui-f4fed15e05213b580f00f8958fa73b46f9838354.tar.xz
ida-tui-f4fed15e05213b580f00f8958fa73b46f9838354.zip
app: the graph view
Space swaps the code view for the function's basic blocks, IDA's own key. Boxes hold the SAME Head rows the listing renders, so IDA's colour tags, the word highlight, the execution trail and every editing verb work inside them for free. Nothing is pre-painted: each screen row is composed on demand from the edge index plus whichever boxes cover it, so cost tracks the viewport and not the graph. z cycles three zoom levels, m toggles a minimap, J/K walk edges, and the mode is sticky -- following a call lands in the callee's graph. Above 400 blocks it declines and says so, because nothing readable comes out at that size. Edges follow IDA's colours, and the ones touching the block under the cursor are brightened. Adding a value to _active means every consumer has to learn it: the one that was missed (_active_code_view returning None) crashed the app the first time a prompt closed in graph mode. A stale async load is also guarded now -- without it, a rename's queued rebuild landed later and dragged the user back into a graph they had already dismissed.
Diffstat (limited to 'idatui/errors.py')
0 files changed, 0 insertions, 0 deletions