aboutsummaryrefslogtreecommitdiff
path: root/tests/test-duet-complexity.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-06 13:51:28 -0500
committerCraig Jennings <c@cjennings.net>2026-06-06 13:51:28 -0500
commita4b332929099ad42c893b6940dcf43f1d48914a6 (patch)
tree7a3b6853d93f3853011edf7bd0584de9c085fa6e /tests/test-duet-complexity.el
parent8d7a988feb84cd42344afc9eec43f53a3e4d20c3 (diff)
downloadduet-a4b332929099ad42c893b6940dcf43f1d48914a6.tar.gz
duet-a4b332929099ad42c893b6940dcf43f1d48914a6.zip
feat: add the commander mode, F-key map, and two-pane entry
The duet command lays out two side-by-side dired panes, each in the buffer-local duet-mode, which carries the mc/Norton F-key map (F3 view, F4 edit, F5 copy, F6 move, F7 mkdir, F8 delete, F10 quit). The map is a minor-mode keymap, so the single-key actions fire only inside a pane and leave the global F-keys untouched elsewhere. duet-quit restores the window layout from before launch (Phase 4 in the design spec). duet--other-pane is the explicit other-pane resolution that replaces dired-dwim-target, the dirvish#36 fix. Its logic lives in a pure helper, duet--sibling-pane, that takes the active window and the list of commander panes and returns the sibling, erroring clearly when there are not exactly two. Keeping the decision pure makes the dangerous part testable without a live frame. DUET does not depend on dirvish. A pane is a plain dired buffer, and when the user has dirvish rendering dired buffers it renders as dirvish with no extra work. That keeps dirvish recommended but never required, and avoids binding the package to a specific dirvish entry point. The transfer and file actions are stubs that announce themselves until their phases land, so the keys are bound and their precedence is tested now. The pure selector, the keymap, and minor-mode precedence are unit-tested; the live two-pane launch and the F-key feel in a running Emacs are a manual check.
Diffstat (limited to 'tests/test-duet-complexity.el')
0 files changed, 0 insertions, 0 deletions