2019-07-22 22:49:27 +02:00
|
|
|
;;; emacs/vc/autoload/hydra.el -*- lexical-binding: t; -*-
|
2022-08-12 20:29:19 +02:00
|
|
|
;;;###if (modulep! :ui hydra)
|
2019-07-22 22:49:27 +02:00
|
|
|
|
|
|
|
;;;###autoload (autoload '+vc/smerge-hydra/body "emacs/vc/autoload/hydra" nil t)
|
|
|
|
(defhydra +vc/smerge-hydra (:hint nil
|
|
|
|
:pre (if (not smerge-mode) (smerge-mode 1))
|
|
|
|
;; Disable `smerge-mode' when quitting hydra if
|
|
|
|
;; no merge conflicts remain.
|
|
|
|
:post (smerge-auto-leave))
|
|
|
|
"
|
|
|
|
[smerge]
|
|
|
|
Movement Keep Diff Other
|
|
|
|
╭─────────────────────────────────────────────────────────╯
|
|
|
|
^_g_^ [_b_] base [_<_] upper/base [_C_] Combine
|
|
|
|
^_C-k_^ [_u_] upper [_=_] upper/lower [_r_] resolve
|
|
|
|
^_k_ ↑^ [_l_] lower [_>_] base/lower [_R_] remove
|
2022-05-04 14:19:59 +07:00
|
|
|
^_j_ ↓^ [_a_] all [_H_] hightlight [_n_] next in project
|
2019-07-22 22:49:27 +02:00
|
|
|
^_C-j_^ [_RET_] current [_E_] ediff ╭──────────
|
|
|
|
^_G_^ │ [_q_] quit
|
|
|
|
"
|
|
|
|
("g" (progn (goto-char (point-min)) (smerge-next)))
|
|
|
|
("G" (progn (goto-char (point-max)) (smerge-prev)))
|
|
|
|
("C-j" smerge-next)
|
|
|
|
("C-k" smerge-prev)
|
|
|
|
("j" next-line)
|
|
|
|
("k" previous-line)
|
|
|
|
("b" smerge-keep-base)
|
|
|
|
("u" smerge-keep-upper)
|
|
|
|
("l" smerge-keep-lower)
|
|
|
|
("a" smerge-keep-all)
|
|
|
|
("RET" smerge-keep-current)
|
|
|
|
("\C-m" smerge-keep-current)
|
|
|
|
("<" smerge-diff-base-upper)
|
|
|
|
("=" smerge-diff-upper-lower)
|
|
|
|
(">" smerge-diff-base-lower)
|
|
|
|
("H" smerge-refine)
|
|
|
|
("E" smerge-ediff)
|
|
|
|
("C" smerge-combine-with-next)
|
|
|
|
("r" smerge-resolve)
|
|
|
|
("R" smerge-kill-current)
|
2022-05-04 14:19:59 +07:00
|
|
|
;; Often after calling `smerge-vc-next-conflict', the cursor will land at
|
|
|
|
;; the bottom of the window
|
|
|
|
("n" (progn (smerge-vc-next-conflict) (recenter-top-bottom (/ (window-height) 8))))
|
2019-07-22 22:49:27 +02:00
|
|
|
("q" nil :color blue))
|