diff options
Diffstat (limited to '.emacs.d/lisp/init-git.el')
-rw-r--r-- | .emacs.d/lisp/init-git.el | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/.emacs.d/lisp/init-git.el b/.emacs.d/lisp/init-git.el new file mode 100644 index 0000000..f4fabd6 --- /dev/null +++ b/.emacs.d/lisp/init-git.el @@ -0,0 +1,70 @@ +;;; init-git.el --- VCS/Git Configuration File -*- lexical-binding: t -*- +;;; Commentary: +;;; Code: + +(use-package ediff + :custom + (ediff-setup-windows-plain 'ediff-setup-windows-plain)) + +(use-package diff-hl + :config + (global-diff-hl-mode +1) + :hook + (dired-mode . diff-hl-dired-mode) + (magit-post-refresh . diff-hl-magit-post-refresh)) + +(use-package gitconfig) +(use-package gitignore-mode) +(use-package gist) +(use-package git-timemachine) + +(use-package magit + :after key-chord + :bind + ("C-c g" . magit-file-dispatch) + ("C-c C-g" . magit-dispatch) + :config + (defun my/magit-set-upstream () + (interactive) + (magit-shell-command-topdir "git upstream")) + ;; update stale git info on the modeline (based on code removed from doom modeline) + (defun my/magit-refresh-state () + (interactive) + (dolist (buf (buffer-list)) + (when (and (not (buffer-modified-p buf)) + (buffer-file-name buf) + (file-exists-p (buffer-file-name buf)) + (file-in-directory-p (buffer-file-name buf) (magit-toplevel))) + (with-current-buffer buf + (vc-refresh-state))))) + (key-chord-define-global "UU" 'my/magit-set-upstream) + (key-chord-define-global "RR" 'my/magit-refresh-state) + ;; :custom-face + ;; (diff-added ((t (:foreground "green4")))) + ;; (magit-diff-added ((t (:foreground "green4")))) + ;; (magit-diff-added-highlight ((t (:foreground "green4")))) + ;; (diff-removed ((t (:foreground "red3")))) + ;; (magit-diff-removed ((t (:foreground "red3")))) + ;; (magit-diff-removed-highlight ((t (:foreground "red3")))) + :custom + (magit-diff-refine-hunk 'all) + ;; (magit-diff-paint-whitespace t) + ;; (magit-diff-paint-whitespace-lines 'all) + (magit-diff-highlight-trailing t) + (magit-diff-highlight-indentation t)) + +(use-package forge + :after magit) + +(use-package git-gutter + :diminish + :bind + ("C-c j g" . git-gutter-mode) + ("C-c j S-g" . git-gutter) + ("C-c j n" . git-gutter:next-hunk) + ("C-c j p" . git-gutter:previous-hunk) + ("C-c j r" . git-gutter:revert-hunk) + ("C-c j d" . git-gutter:popup-hunk)) + +(provide 'init-git) +;;; init-git.el ends here |