summary refs log tree commit diff
path: root/emacs.d/modules/module-git.el
blob: 0c281cc6573513072472bed8e7eaebb0fd4685dc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
(defhydra hydra-magit (:color blue :hint nil :columns 3)
  "magit"
  ("RET" magit-visit-thing "visit magit things at point")
  ("s" magit-status "status")
  ("d" magit-diff "diff")
  ("c" magit-commit "commit")
  ("C" magit-commit-amend "commit-amend")
  ("r" magit-rebase-interactive "rebase-interactive")
  ("m" magit-merge "merge")
  ("l" magit-log-current "log")
  ("q" nil "exit"))

(use-package magit
  :mode (("differential-update-comments" . git-commit-mode)
         ("new-commit"                   . git-commit-mode))

  :bind (("C-c g" . hydra-magit/body)
         ("C-x g s" . magit-status)
         ("C-x g b" . magit-checkout))

  :init
  (progn
    (setq magit-completing-read-function 'ivy-completing-read))

  :config
  (progn
    (global-git-commit-mode)
    (use-package git-commit :ensure t :defer t)
    (add-hook 'magit-mode-hook
              (lambda()
                (setq mode-name "⎇")))
    (add-hook 'magit-log-edit-mode-hook
              #'(lambda ()
                  (set-fill-column 72)
                  (flyspell-mode)))))

;; I don't care about any frontend other than magit
(setf vc-handled-backends nil
      vc-follow-symlinks t)

(provide 'module-git)