Add transient state for smerge mode

This commit is contained in:
Ayush Goyal 2017-03-12 18:52:03 +05:30 committed by bmag
parent 6212795523
commit b00096e9ef
2 changed files with 61 additions and 0 deletions

View File

@ -9,6 +9,7 @@
- [[#differences-between-margin-programs][Differences between margin programs]]
- [[#key-bindings][Key Bindings]]
- [[#version-control-transient-state][Version Control Transient-state]]
- [[#smerge-mode-transient-state][Smerge Mode Transient-state]]
* Description
This layers adds general configuration for [[http://www.gnu.org/software/emacs/manual/html_node/emacs/Version-Control.html][Emacs VC]].
@ -69,6 +70,7 @@ one over the other:
| Key Binding | Description |
|-------------+---------------------------------|
| ~SPC g .~ | version control transient-state |
| ~SPC g r~ | smerge mode transient-state |
| ~SPC T d~ | toggle diff margins |
| ~SPC T C-d~ | toggle diff margins globally |
@ -93,3 +95,23 @@ one over the other:
| ~SPC g . f~ | Fetch for repo with popup |
| ~SPC g . F~ | Pull repo with popup |
| ~SPC g . l~ | Show repo log |
** Smerge Mode Transient-state
| Key Binding | Description |
|-------------+--------------------------|
| ~SPC g r n~ | Next hunk |
| ~SPC g r N~ | Previous hunk |
| ~SPC g r p~ | Previous hunk |
| ~SPC g r j~ | Go to next line |
| ~SPC g r k~ | Go to previous line |
| ~SPC g r b~ | Smerge keep base |
| ~SPC g r m~ | Smerge keep mine |
| ~SPC g r a~ | Smerge keep all |
| ~SPC g r o~ | Smerge keep other |
| ~SPC g r c~ | Smerge keep current |
| ~SPC g r C~ | Smerge combine with next |
| ~SPC g r u~ | Undo |
| ~SPC g r r~ | Smerge refine |
| ~SPC g r q~ | Quit transient state |

View File

@ -18,6 +18,7 @@
git-gutter+
git-gutter-fringe
git-gutter-fringe+
(smerge-mode :location built-in)
))
(defun version-control/init-diff-mode ()
@ -169,3 +170,41 @@
".XXX..."
"..X...."
))))
(defun version-control/init-smerge-mode ()
(use-package smerge-mode
:defer t
:diminish smerge-mode
:commands spacemacs/smerge-transient-state/body
:init
(spacemacs/set-leader-keys
"gr" 'spacemacs/smerge-transient-state/body)
:config
(progn
(spacemacs|define-transient-state smerge
:title "smerge transient state"
:doc "
movement^^^^ merge action^^ other
---------------------^^^^ -------------------^^ -----------
[_n_]^^ next hunk [_b_] keep base [_u_] undo
[_N_/_p_] prev hunk [_m_] keep mine [_r_] refine
[_j_/_k_] move up/down [_a_] keep all [_q_] quit
^^^^ [_o_] keep other
^^^^ [_c_] keep current
^^^^ [_C_] combine with next"
:bindings
("n" smerge-next)
("p" smerge-prev)
("N" smerge-prev)
("j" evil-next-line)
("k" evil-previous-line)
("a" smerge-keep-all)
("b" smerge-keep-base)
("m" smerge-keep-mine)
("o" smerge-keep-other)
("c" smerge-keep-current)
("C" smerge-combine-with-next)
("r" smerge-refine)
("u" undo-tree-undo)
("q" nil :exit t)))))