From 4cf09c7cebd59f2fcaebafb7d2abfee9b521c50f Mon Sep 17 00:00:00 2001 From: blasty Date: Fri, 24 Jul 2026 23:56:09 +0200 Subject: split-view phase 4: split-aware status, min-width gate, verified nav MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Polish for the split view: * _split_status(): status line now reads "name @ ea [split · pseudocode line N ↔ K insn]" / "[split · listing]" from the focused pane, instead of the single-view [pseudocode]/[listing] labels clobbering it. Wired into both cursor-moved handlers and _apply_decomp. * min-width gate: action_toggle_split refuses to enter split below _SPLIT_MIN_WIDTH (100 cols) so two usable code panes always have room. * navigation keeps both panes on the same function: verified (not fixed — goto/follow in split already routes _open_entry -> _show_active split branch, reloading the listing + decomp + region map for the new function). Review turned two roadmap items into non-issues: split is a persistent mode orthogonal to nav entries (back/forward just navigate within split), and search is already per-focused-pane. Pilot split_view gains: split-aware status, goto-in-split navigates, and both panes reload on navigation (16/16). Full suite 157/2-flake. Split view is feature-complete (phases 1-4). --- docs/SPLIT_VIEW.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/SPLIT_VIEW.md b/docs/SPLIT_VIEW.md index a8546fa..1a61efc 100644 --- a/docs/SPLIT_VIEW.md +++ b/docs/SPLIT_VIEW.md @@ -88,9 +88,18 @@ region of a C line (and uses the exact ea→line inverse for the reverse). Falls back to the single marker until the map lands. Verified on the pilot's real worker (alignment + multi-instruction region band). -**Phase 4 — polish.** Navigation keeps both panes on the same function; loop/goto -edge cases; decompile-failed fallback; min-width gate + resize; split state in -nav history; per-pane vs shared search. +**Phase 4 — polish. DONE.** +- Split-aware status: `_split_status()` shows `name @ ea [split · pseudocode line + N ↔ K insn]` / `[split · listing]` instead of the single-view labels. +- Min-width gate: `action_toggle_split` refuses to enter split below + `_SPLIT_MIN_WIDTH` (100 cols) — two usable panes need the room. +- Navigation keeps both panes on the same function: verified — a goto/follow in + split routes through `_open_entry` (listing) → `_show_active` split branch + (decomp + `_load_split_map`), so both panes reload for the new function and + split stays on. +- Non-issues after review: split is a persistent *mode* orthogonal to nav + entries, so back/forward simply navigate within split (no per-entry state + needed); search is already per-focused-pane. ## Open questions -- cgit v1.3.1-sl0p