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$")
|
2015-12-10 16:15:09 -05:00
|
|
|
:init (add-hook! gitconfig-mode '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 github-browse-file
|
|
|
|
:commands (github-browse-file github-browse-file-blame)
|
|
|
|
:init
|
|
|
|
(evil-define-command narf:github-browse-file (&optional bang)
|
|
|
|
(interactive "<!>")
|
|
|
|
(if bang (github-browse-file-blame) (github-browse-file))))
|
|
|
|
|
|
|
|
(use-package git-gutter
|
|
|
|
:commands (git-gutter-mode narf/vcs-next-hunk narf/vcs-prev-hunk
|
|
|
|
narf/vcs-show-hunk narf/vcs-stage-hunk narf/vcs-revert-hunk)
|
|
|
|
:init
|
|
|
|
(add-hook! (text-mode prog-mode) 'git-gutter-mode)
|
|
|
|
:config
|
|
|
|
(require 'git-gutter-fringe)
|
|
|
|
|
|
|
|
(setq git-gutter:update-interval 2)
|
|
|
|
|
|
|
|
(defalias 'narf/vcs-next-hunk 'git-gutter:next-hunk)
|
|
|
|
(defalias 'narf/vcs-prev-hunk 'git-gutter:previous-hunk)
|
|
|
|
(defalias 'narf/vcs-show-hunk 'git-gutter:popup-hunk)
|
|
|
|
(defalias 'narf/vcs-stage-hunk 'git-gutter:stage-hunk)
|
|
|
|
(defalias 'narf/vcs-revert-hunk 'git-gutter:revert-hunk)
|
|
|
|
|
|
|
|
(define-fringe-bitmap 'git-gutter-fr:added
|
|
|
|
[240 240 240 240 240 240 240 240 240 240 240 240 240 240]
|
|
|
|
nil nil 'center)
|
|
|
|
(define-fringe-bitmap 'git-gutter-fr:modified
|
|
|
|
[240 240 240 240 240 240 240 240 240 240 240 240 240 240]
|
|
|
|
nil nil 'center)
|
|
|
|
(define-fringe-bitmap 'git-gutter-fr:deleted
|
|
|
|
[0 0 0 128 192 224 240 248]
|
|
|
|
nil nil 'center)
|
|
|
|
|
|
|
|
(advice-add 'evil-force-normal-state :after 'git-gutter)
|
|
|
|
|
|
|
|
(add-hook! focus-in 'git-gutter:update-all-windows)
|
|
|
|
(add-hook! evil-insert-state-exit 'git-gutter))
|
|
|
|
|
2015-06-15 09:05:52 +02:00
|
|
|
(use-package diff-hl
|
2015-12-09 01:16:31 -05:00
|
|
|
:disabled t
|
2015-11-17 02:04:50 -05:00
|
|
|
:init
|
|
|
|
(setq diff-hl-draw-borders nil
|
|
|
|
diff-hl-fringe-bmp-function 'narf-diff-hl-fringe-bmp)
|
|
|
|
:config
|
2015-12-09 01:16:31 -05:00
|
|
|
(defalias narf/vcs-next-hunk 'diff-hl-next-hunk)
|
|
|
|
(defalias narf/vcs-prev-hunk 'diff-hl-previous-hunk)
|
|
|
|
;; (defalias narf/vcs-show-hunk
|
|
|
|
;; (defalias narf/vcs-stage-hunk ...)
|
|
|
|
(defalias narf/vcs-revert-hunk 'diff-hl-revert-hunk)
|
|
|
|
|
2015-11-17 02:04:50 -05:00
|
|
|
(defun narf-diff-hl-fringe-bmp (type _pos)
|
|
|
|
(if (eq type 'delete)
|
|
|
|
'narf--diff-hl-bitmap-del
|
|
|
|
'narf--diff-hl-bitmap))
|
|
|
|
|
2015-12-09 01:16:31 -05:00
|
|
|
(map! :map diff-mode-shared-map
|
|
|
|
:n "RET" 'diff-goto-source)
|
|
|
|
|
2015-11-17 02:04:50 -05:00
|
|
|
(define-fringe-bitmap 'narf--diff-hl-bitmap
|
|
|
|
[240 240 240 240 240 240 240 240 240 240 240 240 240 240]
|
|
|
|
nil nil 'center)
|
|
|
|
(define-fringe-bitmap 'narf--diff-hl-bitmap-del
|
|
|
|
[248 240 224 192 128 0 0 0 0 0 0 0 0 0]
|
|
|
|
nil nil 'center)
|
|
|
|
|
|
|
|
(global-diff-hl-mode 1))
|
2015-06-15 09:05:52 +02:00
|
|
|
|
|
|
|
(provide 'core-vcs)
|
|
|
|
;;; core-vcs.el ends here
|