aboutsummaryrefslogtreecommitdiffstats
path: root/modules/init-git.el
diff options
context:
space:
mode:
Diffstat (limited to 'modules/init-git.el')
-rw-r--r--modules/init-git.el108
1 files changed, 0 insertions, 108 deletions
diff --git a/modules/init-git.el b/modules/init-git.el
deleted file mode 100644
index 01b37e5..0000000
--- a/modules/init-git.el
+++ /dev/null
@@ -1,108 +0,0 @@
-;;; init-git.el --- .Emacs Configuration -*- lexical-binding: t -*-
-;;; Commentary:
-;;
-
-;;; Code:
-(setq vc-follows-symlinks t
- find-file-visit-truename t
- vc-handled-backends nil)
-
-(if (display-graphic-p)
- (use-package git-gutter-fringe
- :ensure t
- :config
- (global-git-gutter-mode t)
- (setq-default fringes-outside-margins nil)
- (setq-default left-fringe-width 10)
- (set-face-foreground 'git-gutter-fr:modified "purple")
- (set-face-foreground 'git-gutter-fr:added "green")
- (set-face-foreground 'git-gutter-fr:deleted "red")
-
- (defun my-reshape-git-gutter (gutter)
- "Re-shape gutter for `ivy-read'."
- (let* ((linenum-start (aref gutter 3))
- (linenum-end (aref gutter 4))
- (target-line "")
- (target-linenum 1)
- (tmp-line "")
- (max-line-length 0))
- (save-excursion
- (while (<= linenum-start linenum-end)
- (with-no-warnings
- (goto-line linenum-start))
- (setq tmp-line (replace-regexp-in-string "^[ \t]*" ""
- (buffer-substring (line-beginning-position)
- (line-end-position))))
- (when (> (length tmp-line) max-line-length)
- (setq target-linenum linenum-start)
- (setq target-line tmp-line)
- (setq max-line-length (length tmp-line)))
-
- (setq linenum-start (1+ linenum-start))))
- ;; build (key . linenum-start)
- (cons (format "%s %d: %s"
- (if (eq 'deleted (aref gutter 1)) "-" "+")
- target-linenum target-line)
- target-linenum)))
-
- (defun my-goto-git-gutter ()
- (interactive)
- (eval-when-compile (require 'git-gutter-fringe nil t))
- (when (and (require 'git-gutter-fringe nil t)
- (fboundp 'ivy-read))
-
- (if git-gutter-fr:diffinfos
- (ivy-read "git-gutters-fr:"
- (mapcar 'my-reshape-git-gutter git-gutter-fr:diffinfos)
- :action (lambda (e)
- ;; ivy9+ keep `(car e)'
- ;; ivy8- strip the `(car e)'
- ;; we handle both data structure
- (unless (numberp e) (setq e (cdr e)))
- (with-no-warnings
- (goto-line e))))
- (message "NO git-gutters-fringe!"))
- ))))
-
-(use-package git-modes
- :ensure t
- :mode
- ("/\\.?git/?config$" . gitconfig-mode)
- ("/\\.gitmodules$" . gitconfig-mode)
- ("/\\.gitignore$" . gitignore-mode)
- ("/\\.git/info/exclude$" . gitignore-mode)
- ("/git/ignore$" . gitignore-mode)
- ("/.dockerignore\\'" . gitignore-mode)
- ("/\\.gitattributes\\'" . gitattributes-mode)
- ("/info/attributes\\'" . gitattributes-mode)
- ("/git/attributes\\'" . gitattributes-mode))
-
-(use-package git-timemachine
- :ensure t
- :commands git-timemachine
- :bind (:map git-timemachine-mode
- ("c" . git-timemachine-show-current-revision)
- ("b" . git-timemachine-switch-branch)))
-
-;;; smerge-mode video explain https://emacsgifs.github.io/public/videos/758861381898637313.mp4
-(use-package smerge-mode
- :ensure t
- :config
- (defun enable-smerge-maybe ()
- (when (and buffer-file-name (vc-backend buffer-file-name))
- (save-excursion
- (goto-char (point-min))
- (when (re-search-forward "^<<<<<<< " nil t)
- (smerge-mode +1)))))
-
- (eval-when-compile (require 'smerge-mode nil t))
- (when (and (require 'smerge-mode nil t)
- (fboundp 'enable-smerge-maybe))
- (add-hook 'buffer-list-update-hook #'enable-smerge-maybe)))
-
-(provide 'init-git)
-
-;; Local Variables:
-;; byte-compile-warnings: (not free-vars)
-;; End:
-;;; init-git.el ends here