fix(config-settings): repair diff-redraw review findings

- Print the missing exit-repaint after the inline editor's
  __cs_dispatch_draw call (was silently changed to capture-only earlier
  in the branch; this call site was missed, blanking the panel on
  commit/cancel of an inline edit).
- Hoist (count $prev_edit_frame) out of a quoted math string in the
  inline editor's per-keystroke redraw -- fish doesn't expand a command
  substitution there, so math silently errored.
- Add a >= 52 column floor to both diff-path guards: below the
  narrowest tier's own 52-column box width, lines wrap and the diff
  path's one-physical-row-per-logical-line walk corrupts the display.
- Reword a stale test comment that described panel_h as mirroring a
  hand-set constant in __cs_dispatch_draw; it derives panel_h from real
  output now.
- Declare prev_edit_frame with -l alongside edit_frame instead of a
  bare set, matching the file's convention.
- Move prev_frame's declaration to its point of use instead of an
  empty top-level placeholder, matching old_h in the same block.
This commit is contained in:
2026-09-08 04:37:27 -04:00
parent a0491b2bd1
commit 3c4f720749
2 changed files with 12 additions and 9 deletions
+5 -4
View File
@@ -153,10 +153,11 @@ set -U __fish_user_dots_symlink false
# __fish_scrollback_history_max_files: unset -> DEFAULT
# ── Case emitter ──────────────────────────────────────────────────────────
# panel_h is passed in by the caller, mirroring __cs_dispatch_draw in
# config-settings.fish: the category list and both value pages are a fixed 16
# lines, a sub-category page is 7 + <sub-category count>. The golden records
# the declared height, the measured line count, and the erase sequence derived
# panel_h is passed in by the caller, independently declaring the expected
# height for each page so it can be cross-checked against the draw functions'
# real output: the category list and both value pages are a fixed 16 lines, a
# sub-category page is 7 + <sub-category count>. The golden records the
# declared height, the measured line count, and the erase sequence derived
# from the declared height -- so flattening the fixed/dynamic divergence, or
# changing a page's height at all, breaks the compare three ways.
function _cs_render_case --argument-names label panel_h