Browse Source

Add diff-hl and magit packages and configuration

master
Riyyi 3 years ago
parent
commit
872e718603
  1. 77
      .config/emacs/config.org

77
.config/emacs/config.org

@ -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")

Loading…
Cancel
Save