Skip to content

refactor(ui): modularize explorer, views, and merge editor - #539

Merged
esmuellert merged 5 commits into
mainfrom
refactor/explorer-refresh-module
Sep 3, 2026
Merged

refactor(ui): modularize explorer, views, and merge editor#539
esmuellert merged 5 commits into
mainfrom
refactor/explorer-refresh-module

Conversation

@esmuellert

Copy link
Copy Markdown
Owner

Summary

Split the largest UI workflows into responsibility-based directory modules while keeping their existing façades and user-visible behavior intact.

Changes

  • Move Explorer refresh serialization and watcher/polling lifecycle into explorer/refresh/scheduler.lua
    • keep every public refresh request behind the same queue
    • serialize direct refreshes even when automatic refresh is disabled
    • preserve force coalescing and completion callbacks
  • Split side-by-side views into façade, creation, update, and single-file modules
  • Split inline views into façade, creation, update, rendering, single-file, buffer, and keymap modules
  • Consolidate conflict-editor ownership under ui/conflict/
    • merge alignment, filler calculation, and auto-merge under conflict/merge/
    • input and Result presentation under conflict/view/
    • block, whole-file, combination, replacement, and diffget operations under conflict/resolution/
  • Add module-loading and façade-delegation coverage
  • Add behavioral protection for conflict resolution, dot-repeat, navigation, signs, and Result placement

Benefits

  • Makes module ownership visible from the directory tree
  • Reduces merge-conflict pressure in previously large single files
  • Keeps stable façades for callers while allowing each workflow to evolve independently
  • Places merge-editor calculations, presentation, and resolution under one conflict domain

Verification

  • CODEDIFF_TEST_JOBS=4 ./tests/run_tests.sh — 107 spec files passed
  • tests/module_loading_spec.lua — 48 passed
  • tests/ui/merge_alignment_spec.lua — 15 passed
  • Conflict resolution, navigation, signs, and layout specs — 9 passed
  • AST/function-body comparisons confirmed moved implementations remained unchanged, including 47 conflict-editor functions
  • Façade delegation and critical behavior were mutation-tested
  • stylua --check passed
  • git diff --check passed
  • scripts/find_orphan_comments.py --rev main..HEAD found no orphaned comments

@esmuellert
esmuellert requested a review from yanuoma as a code owner September 3, 2026 22:12
@esmuellert
esmuellert merged commit a87707d into main Sep 3, 2026
20 of 21 checks passed
@esmuellert
esmuellert deleted the refactor/explorer-refresh-module branch September 3, 2026 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant