aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-12-12 14:11:46 +0000
committerYann Herklotz <ymherklotz@gmail.com>2018-12-12 14:11:46 +0000
commita9ac2eedb2225d2ba971d6e71c51a0638606514e (patch)
tree987d43ed638de57ccb4c81bb5cee7d5f08ca5c80
parent96f745fc011512e38892105f40b1d87b6cd62178 (diff)
downloaddotfiles-a9ac2eedb2225d2ba971d6e71c51a0638606514e.tar.gz
dotfiles-a9ac2eedb2225d2ba971d6e71c51a0638606514e.zip
Add smerge hydra to magit merge resolution
-rw-r--r--emacs/loader.org64
1 files changed, 62 insertions, 2 deletions
diff --git a/emacs/loader.org b/emacs/loader.org
index 367939c..f374091 100644
--- a/emacs/loader.org
+++ b/emacs/loader.org
@@ -30,6 +30,20 @@ Set path so that it picks up some executables that I use
#+RESULTS:
: /home/yannherklotz/.local/bin:/home/yannherklotz/.yarn/bin:/usr/bin/vendor_perl:/home/yannherklotz/.local/bin:/home/yannherklotz/.yarn/bin:/usr/local/sbin:/usr/local/bin:/usr/bin
+#+BEGIN_SRC emacs-lisp
+ (defconst user-init-dir
+ (cond ((boundp 'user-emacs-directory)
+ user-emacs-directory)
+ ((boundp 'user-init-directory)
+ user-init-directory)
+ (t "~/.emacs.d/")))
+
+ (defun load-user-file (file)
+ (interactive "f")
+ "Load a file in current user's configuration directory"
+ (load-file (expand-file-name file user-init-dir)))
+#+END_SRC
+
** Repositories
Defining all the package repositories that are going to be used.
@@ -363,8 +377,7 @@ the ~-a~ flag.
Finally, remove buffers when an email has been sent.
#+BEGIN_SRC emacs-lisp
- (use-package personal
- :ensure nil)
+ (load-user-file "personal.el")
#+END_SRC
#+RESULTS:
@@ -1088,6 +1101,53 @@ Enabling global flycheck support.
(yas-minor-mode 1))
#+END_SRC
+*** SMerge
+
+Shamelessly taken from https://github.com/alphapapa/unpackaged.el#hydra.
+#+BEGIN_SRC emacs-lisp
+ (use-package smerge-mode
+ :config
+ (defhydra unpackaged/smerge-hydra
+ (:color pink :hint nil :post (smerge-auto-leave))
+ "
+ ^Move^ ^Keep^ ^Diff^ ^Other^
+ ^^-----------^^-------------------^^---------------------^^-------
+ _n_ext _b_ase _<_: upper/base _C_ombine
+ _p_rev _u_pper _=_: upper/lower _r_esolve
+ ^^ _l_ower _>_: base/lower _k_ill current
+ ^^ _a_ll _R_efine
+ ^^ _RET_: current _E_diff
+ "
+ ("n" smerge-next)
+ ("p" smerge-prev)
+ ("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)
+ ("R" smerge-refine)
+ ("E" smerge-ediff)
+ ("C" smerge-combine-with-next)
+ ("r" smerge-resolve)
+ ("k" smerge-kill-current)
+ ("ZZ" (lambda ()
+ (interactive)
+ (save-buffer)
+ (bury-buffer))
+ "Save and bury buffer" :color blue)
+ ("q" nil "cancel" :color blue))
+ :hook (magit-diff-visit-file . (lambda ()
+ (when smerge-mode
+ (unpackaged/smerge-hydra/body)))))
+#+END_SRC
+
+#+RESULTS:
+| lambda | nil | (when smerge-mode (unpackaged/smerge-hydra/body)) |
+
* Look and Feel
Keybindings