diff options
Diffstat (limited to '.emacs.d/rul-lisp/packages/rul-vc.el')
| -rw-r--r-- | .emacs.d/rul-lisp/packages/rul-vc.el | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/.emacs.d/rul-lisp/packages/rul-vc.el b/.emacs.d/rul-lisp/packages/rul-vc.el new file mode 100644 index 0000000..8551647 --- /dev/null +++ b/.emacs.d/rul-lisp/packages/rul-vc.el @@ -0,0 +1,33 @@ +;;; rul-vc.el --- Version control configuration -*- lexical-binding: t; -*- + +(setq vc-follow-symlinks nil) + +(use-package magit + :ensure t + :bind (("C-c g s" . magit-status) + ("C-c g F" . magit-pull-from-upstream) + ("C-c g b" . magit-blame)) + :hook (git-commit-setup . rul/git-commit-setup) + :config + (defun rul/git-commit-setup () + "Enable useful text modes for Git commit buffers." + (flyspell-mode 1) + (auto-fill-mode 1)) + + (defun rul/magit-status-save-window-config (&rest _) + "Save current window configuration before invoking `magit-status'." + (window-configuration-to-register :magit-fullscreen)) + + (defun rul/magit-status-single-window (&rest _) + "Display `magit-status' in a single window." + (delete-other-windows)) + + (advice-add 'magit-status :before #'rul/magit-status-save-window-config) + (advice-add 'magit-status :after #'rul/magit-status-single-window)) + +(with-eval-after-load 'project + (add-to-list 'project-switch-commands + '(magit-project-status "Magit" "m"))) + +(provide 'rul-vc) +;;; rul-vc.el ends here |
