Add diff-hl and magit packages and configuration
This commit is contained in:
@@ -753,6 +753,30 @@ https://stackoverflow.com/questions/22735895/configuring-a-yasnippet-for-two-sce
|
|||||||
(load (concat dot-etc-dir "/elfeed-feeds")))
|
(load (concat dot-etc-dir "/elfeed-feeds")))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
*** Git
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package diff-hl
|
||||||
|
:demand
|
||||||
|
:hook (prog-mode . turn-on-diff-hl-mode)
|
||||||
|
:hook (prog-mode . (lambda () (when (vc-registered buffer-file-name) (diff-hl-flydiff-mode) (dot/toggle-fringe 1)))))
|
||||||
|
|
||||||
|
(use-package transient
|
||||||
|
:config (setq transient-history-file (concat dot-cache-dir "/transient/history.el")))
|
||||||
|
|
||||||
|
(use-package magit
|
||||||
|
:after (diff-hl transient)
|
||||||
|
:hook (git-commit-setup . git-commit-turn-on-auto-fill)
|
||||||
|
:hook (git-commit-setup . git-commit-turn-on-flyspell)
|
||||||
|
:hook (magit-pre-refresh . diff-hl-magit-pre-refresh)
|
||||||
|
:hook (magit-post-refresh . diff-hl-magit-post-refresh)
|
||||||
|
:config
|
||||||
|
(setq git-commit-summary-max-length 70)
|
||||||
|
(setq magit-diff-paint-whitespace-lines 'both)
|
||||||
|
(setq magit-repository-directories '(("~/dotfiles" . 0)
|
||||||
|
("~/code" . 3))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
* General
|
* General
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
@@ -1139,10 +1163,11 @@ Functions that only use built-in Emacs functionality.
|
|||||||
(find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))
|
(find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))
|
||||||
(princ "Current buffer isn't a file")))
|
(princ "Current buffer isn't a file")))
|
||||||
|
|
||||||
(defun dot/toggle-fringe ()
|
(defun dot/toggle-fringe (&optional arg)
|
||||||
"Toggle left-only fringe."
|
"Toggle left-only fringe."
|
||||||
(interactive)
|
(interactive)
|
||||||
(if (eq fringe-mode 0)
|
(if (or (and (eq fringe-mode 0) (eq arg nil))
|
||||||
|
(eq arg 1))
|
||||||
(set-fringe-mode '(nil . 0))
|
(set-fringe-mode '(nil . 0))
|
||||||
(set-fringe-mode 0)))
|
(set-fringe-mode 0)))
|
||||||
|
|
||||||
@@ -1252,17 +1277,25 @@ Functions that use package functionality.
|
|||||||
"\\).*")
|
"\\).*")
|
||||||
name))))
|
name))))
|
||||||
|
|
||||||
|
(defun dot/centaur-tabs-is-buffer-unimportant (buffer)
|
||||||
|
"Return t if BUFFER is unimportant and can be killed without caution."
|
||||||
|
(let ((name (format "%s" buffer)))
|
||||||
|
(cond
|
||||||
|
((centaur-tabs-hide-tab name) t)
|
||||||
|
((string-match-p "^magit\\(-[a-z]+\\)*: .*" name) t)
|
||||||
|
(t nil))))
|
||||||
|
|
||||||
(defun dot/centaur-tabs-buffer-cleanup ()
|
(defun dot/centaur-tabs-buffer-cleanup ()
|
||||||
"Clean up all the hidden buffers."
|
"Clean up all the hidden buffers."
|
||||||
(interactive)
|
(interactive)
|
||||||
(dolist (buffer (buffer-list))
|
(dolist (buffer (buffer-list))
|
||||||
(when (centaur-tabs-hide-tab buffer)
|
(when (dot/centaur-tabs-is-buffer-unimportant buffer)
|
||||||
(kill-buffer buffer))))
|
(kill-buffer buffer))))
|
||||||
|
|
||||||
(defun dot/centaur-tabs-kill-buffer-or-window ()
|
(defun dot/centaur-tabs-kill-buffer-or-window ()
|
||||||
"Delete window of the current buffer, also kill if the buffer is hidden."
|
"Delete window of the current buffer, also kill if the buffer is hidden."
|
||||||
(interactive)
|
(interactive)
|
||||||
(if (centaur-tabs-hide-tab (buffer-name))
|
(if (dot/centaur-tabs-is-buffer-unimportant (buffer-name))
|
||||||
(kill-buffer-and-window)
|
(kill-buffer-and-window)
|
||||||
(delete-window))))
|
(delete-window))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@@ -1651,6 +1684,11 @@ Set keybinds to functionality of installed packages.
|
|||||||
;(define-key evil-motion-state-map (kbd "C-w") 'kill-this-buffer) ; @Todo test this with nil
|
;(define-key evil-motion-state-map (kbd "C-w") 'kill-this-buffer) ; @Todo test this with nil
|
||||||
;https://github.com/noctuid/evil-guide#global-keybindings-and-evil-states
|
;https://github.com/noctuid/evil-guide#global-keybindings-and-evil-states
|
||||||
|
|
||||||
|
;; with-editor
|
||||||
|
(with-eval-after-load 'with-editor
|
||||||
|
(define-key with-editor-mode-map (kbd "M-c") 'with-editor-finish)
|
||||||
|
(define-key with-editor-mode-map (kbd "M-k") 'with-editor-cancel))
|
||||||
|
|
||||||
(with-eval-after-load 'evil-states
|
(with-eval-after-load 'evil-states
|
||||||
|
|
||||||
;; Global evil keymap
|
;; Global evil keymap
|
||||||
@@ -1720,6 +1758,12 @@ Set keybinds to functionality of installed packages.
|
|||||||
"y" #'elfeed-show-yank
|
"y" #'elfeed-show-yank
|
||||||
)
|
)
|
||||||
|
|
||||||
|
;; Magit
|
||||||
|
(general-def '(normal visual) magit-mode-map
|
||||||
|
"{" #'magit-section-backward-sibling
|
||||||
|
"}" #'magit-section-forward-sibling
|
||||||
|
)
|
||||||
|
|
||||||
;; Minibuffer
|
;; Minibuffer
|
||||||
(general-def 'normal minibuffer-local-map
|
(general-def 'normal minibuffer-local-map
|
||||||
"TAB" #'selectrum-insert-current-candidate
|
"TAB" #'selectrum-insert-current-candidate
|
||||||
@@ -1825,6 +1869,31 @@ General.el ~leader key binds.
|
|||||||
"f u" '(dot/sudo-find-file :which-key "Sudo find file")
|
"f u" '(dot/sudo-find-file :which-key "Sudo find file")
|
||||||
"f U" '(dot/sudo-this-file :which-key "Sudo this file")
|
"f U" '(dot/sudo-this-file :which-key "Sudo this file")
|
||||||
|
|
||||||
|
;; Git
|
||||||
|
"g" '(:ignore t :which-key "git")
|
||||||
|
"g b" '(magit-branch-checkout :which-key "Magit switch branch")
|
||||||
|
"g B" '(magit-blame-addition :which-key "Magit blame")
|
||||||
|
"g c" '(:ignore t :which-key "create")
|
||||||
|
"g c c" '(magit-commit-create :which-key "Commit")
|
||||||
|
"g c b" '(magit-branch-and-checkout :which-key "Branch")
|
||||||
|
"g c r" '(magit-init :which-key "Initialize repo")
|
||||||
|
"g C" '(magit-clone :which-key "Magit clone")
|
||||||
|
"g f" '(:ignore t :which-key "file")
|
||||||
|
"g f c" '(magit-find-git-config-file :which-key "Find gitconfig file")
|
||||||
|
"g f D" '(magit-file-delete :which-key "Delete file")
|
||||||
|
"g f f" '(magit-find-file :which-key "Find file")
|
||||||
|
"g f R" '(magit-file-rename :which-key "Rename file")
|
||||||
|
"g F" '(magit-fetch :which-key "Magit fetch")
|
||||||
|
"g g" '(magit-status :which-key "Magit status")
|
||||||
|
"g G" '(magit-status-here :which-key "Magit status here")
|
||||||
|
"g l" '(:ignore t :which-key "list")
|
||||||
|
"g l r" '(magit-list-repositories :which-key "List repositories")
|
||||||
|
"g l s" '(magit-list-submodules :which-key "List submodules")
|
||||||
|
"g L" '(magit-log :which-key "Magit log")
|
||||||
|
"g s" '(magit-show-commit :which-key "Magit show commit")
|
||||||
|
"g S" '(magit-stage-file :which-key "Stage file")
|
||||||
|
"g U" '(magit-unstage-file :which-key "Unstage file")
|
||||||
|
|
||||||
;; Help
|
;; Help
|
||||||
"h" '(:keymap help-map :which-key "help")
|
"h" '(:keymap help-map :which-key "help")
|
||||||
"h o" '(:ignore t :which-key "describe-symbol-at-point")
|
"h o" '(:ignore t :which-key "describe-symbol-at-point")
|
||||||
|
|||||||
Reference in New Issue
Block a user