2015-06-15 09:05:52 +02:00
|
|
|
;;; core-vcs.el --- version control awareness
|
|
|
|
|
|
|
|
(use-package gitconfig-mode
|
2015-08-13 12:14:41 -04:00
|
|
|
:mode ("/\\.?git/?config$" "/\\.gitmodules$")
|
2016-03-27 18:18:43 -04:00
|
|
|
:init (add-hook 'gitconfig-mode-hook 'flyspell-mode))
|
2015-06-15 09:05:52 +02:00
|
|
|
|
|
|
|
(use-package gitignore-mode
|
2015-08-13 12:14:41 -04:00
|
|
|
:mode ("/\\.gitignore$"
|
|
|
|
"/\\.git/info/exclude$"
|
|
|
|
"/git/ignore$"))
|
2015-06-15 09:05:52 +02:00
|
|
|
|
2015-12-09 01:16:31 -05:00
|
|
|
(use-package git-gutter
|
2016-05-20 22:37:30 -04:00
|
|
|
:commands (git-gutter-mode doom/vcs-next-hunk doom/vcs-prev-hunk
|
|
|
|
doom/vcs-show-hunk doom/vcs-stage-hunk doom/vcs-revert-hunk)
|
2015-12-09 01:16:31 -05:00
|
|
|
:init
|
2015-12-11 16:51:04 -05:00
|
|
|
(add-hook! (text-mode prog-mode conf-mode) 'git-gutter-mode)
|
2015-12-09 01:16:31 -05:00
|
|
|
:config
|
|
|
|
(require 'git-gutter-fringe)
|
2016-05-24 21:57:25 -04:00
|
|
|
(def-popup! "^\\*git-gutter.+\\*$" :align below :size 15 :noselect t :regexp t)
|
2015-12-09 01:16:31 -05:00
|
|
|
|
|
|
|
(define-fringe-bitmap 'git-gutter-fr:added
|
2016-05-27 15:46:24 -04:00
|
|
|
[224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224]
|
2015-12-09 01:16:31 -05:00
|
|
|
nil nil 'center)
|
|
|
|
(define-fringe-bitmap 'git-gutter-fr:modified
|
2016-05-27 15:46:24 -04:00
|
|
|
[224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224 224]
|
2015-12-09 01:16:31 -05:00
|
|
|
nil nil 'center)
|
|
|
|
(define-fringe-bitmap 'git-gutter-fr:deleted
|
2016-05-20 16:56:55 -04:00
|
|
|
[0 0 0 0 0 0 0 0 0 0 0 0 0 128 192 224 240 248]
|
2015-12-09 01:16:31 -05:00
|
|
|
nil nil 'center)
|
|
|
|
|
2016-05-20 19:08:02 -04:00
|
|
|
;; Refreshing git-gutter
|
2015-12-09 01:16:31 -05:00
|
|
|
(advice-add 'evil-force-normal-state :after 'git-gutter)
|
2016-04-23 22:08:46 -04:00
|
|
|
(add-hook 'focus-in-hook 'git-gutter:update-all-windows)
|
|
|
|
|
2016-05-20 22:37:30 -04:00
|
|
|
(defalias 'doom/vcs-next-hunk 'git-gutter:next-hunk)
|
|
|
|
(defalias 'doom/vcs-prev-hunk 'git-gutter:previous-hunk)
|
|
|
|
(defalias 'doom/vcs-show-hunk 'git-gutter:popup-hunk)
|
|
|
|
(defalias 'doom/vcs-stage-hunk 'git-gutter:stage-hunk)
|
|
|
|
(defalias 'doom/vcs-revert-hunk 'git-gutter:revert-hunk))
|
2015-12-09 01:16:31 -05:00
|
|
|
|
2016-05-23 16:52:52 -04:00
|
|
|
(use-package git-messenger
|
|
|
|
:commands git-messenger:popup-message
|
|
|
|
:init (defvar git-messenger-map (make-sparse-keymap))
|
|
|
|
:config
|
2016-05-24 21:57:25 -04:00
|
|
|
(def-popup! "*git-messenger*" :align left :size 55 :select t)
|
2016-05-23 16:52:52 -04:00
|
|
|
(setq git-messenger:show-detail t)
|
|
|
|
(map! :map git-messenger-map
|
|
|
|
"<escape>" 'git-messenger:popup-close
|
|
|
|
"q" 'git-messenger:popup-close))
|
|
|
|
|
|
|
|
(use-package magit
|
|
|
|
:commands (magit-status)
|
|
|
|
:config
|
2016-05-24 21:57:25 -04:00
|
|
|
(doom-popup-magit-hacks)
|
|
|
|
(def-popup! (:custom (lambda (b &rest _) (derived-mode-p 'magit-mode)))
|
|
|
|
:align below :size 0.5)
|
2016-06-04 23:33:55 -04:00
|
|
|
(add-hook 'magit-mode-hook 'turn-off-evil-snipe-override-mode)
|
|
|
|
|
|
|
|
(require 'evil-magit)
|
|
|
|
(evil-set-initial-state 'magit-popup-mode 'normal))
|
2016-05-23 16:52:52 -04:00
|
|
|
|
2015-12-11 16:51:04 -05:00
|
|
|
(after! vc-annotate
|
2016-05-20 19:08:02 -04:00
|
|
|
(evil-set-initial-state 'vc-annotate-mode 'normal)
|
2015-12-11 16:51:04 -05:00
|
|
|
(evil-set-initial-state 'vc-git-log-view-mode 'normal)
|
|
|
|
(map! :map vc-annotate-mode-map
|
|
|
|
:n "q" 'kill-this-buffer
|
|
|
|
:n "d" 'vc-annotate-show-diff-revision-at-line
|
|
|
|
:n "D" 'vc-annotate-show-changeset-diff-revision-at-line
|
|
|
|
:n "SPC" 'vc-annotate-show-log-revision-at-line
|
|
|
|
:n "]]" 'vc-annotate-next-revision
|
|
|
|
:n "[[" 'vc-annotate-prev-revision
|
|
|
|
:n [tab] 'vc-annotate-toggle-annotation-visibility
|
|
|
|
:n "RET" 'vc-annotate-find-revision-at-line))
|
|
|
|
|
2015-12-29 23:40:30 -05:00
|
|
|
(use-package browse-at-remote
|
2016-05-23 16:52:52 -04:00
|
|
|
:commands (browse-at-remote/browse browse-at-remote/get-url))
|
2015-12-25 21:05:55 -05:00
|
|
|
|
2015-06-15 09:05:52 +02:00
|
|
|
(provide 'core-vcs)
|
|
|
|
;;; core-vcs.el ends here
|