#+TITLE: Dev - Git #+AUTHOR: Juan Placencia * Package Define Git dev package. #+BEGIN_SRC emacs-lisp (use-package emacs :after uno-dev :config (provide 'uno-dev-git)) #+END_SRC * Magit #+BEGIN_SRC emacs-lisp (use-package magit :after uno-dev-git :custom (magit-diff-refine-hunk t) :general (uno-leader-define "g" '(:ignore t :which-key "Git") "gc" '(magit-clone :which-key "Git clone") "gf" '(:ignore t :which-key "Git file") "gff" '(magit-find-file :which-key "Git file find") "gfd" '(magit-diff :which-key "Git file diff") "gfl" '(magit-log-buffer-file :which-key "Git file log") "gfm" '(magit-file-dispatch :which-key "Git file dispatch") "gfs" '(magit-stage-file :which-key "Git stage file") "gfu" '(magit-unstage-file :which-key "Git unstage file") "gi" '(magit-init :which-key "Git init") "gl" '(magit-list-repositories :which-key "Git repositories") "gm" '(magit-dispatch :which-key "Git dispatch") "gs" '(magit-status :which-key "Git status")) (uno-mode-leader-define :keymaps 'with-editor-mode-map uno-mode-leader-key '(with-editor-finish :which-key "Finish") "k" '(with-editor-cancel :which-key "Cancel")) (uno-mode-leader-define :keymaps 'magit-log-select-mode-map uno-mode-leader-key '(magit-log-select-pick :which-key "Pick") "k" '(magit-log-select-quit :which-key "Cancel")) :init (uno/add-useful-buffer "magit: .*") (uno/add-useful-buffer "magit-.*: .*")) (use-package magit :after (uno-dev-git mixed-pitch) :hook (git-commit-mode . uno/dev/git/commit-mode) :init (defun uno/dev/git/commit-mode () "Customize commit mode." (mixed-pitch-mode -1))) (use-package forge :unless (eq system-type 'windows-nt) :after (uno-dev-git magit) :custom (forge-database-file (uno-cache-path "forge/database.sqlite")) :general (uno-mode-leader-define :keymaps 'forge-topic-mode-map "c" '(forge-post-submit :which-key "Create post") "e" '(forge-post-cancel :which-key "Edit post")) (uno-mode-leader-define :keymaps 'forge-post-mode-map uno-mode-leader-key '(forge-post-submit :which-key "Submit") "k" '(forge-post-cancel :which-key "Cancel"))) (use-package transient :after uno-dev-git :custom (transient-history-file (uno-cache-path "transient/history.el")) (transient-levels-file (uno-cache-path "transient/levels.el")) (transient-values-file (uno-cache-path "transient/values.el"))) #+END_SRC * Git Modes #+BEGIN_SRC emacs-lisp (use-package git-modes :after (uno-dev-git uno-mode) :config (uno/add-prog-mode 'gitattributes-mode)) #+END_SRC * Diff Highlight #+BEGIN_SRC emacs-lisp (use-package diff-hl :after uno-dev-git :hook (uno-prog-mode . turn-on-diff-hl-mode) (uno-prog-mode . diff-hl-flydiff-mode)) (use-package diff-hl :after (uno-dev-git magit) :hook (magit-pre-refresh . diff-hl-magit-pre-refresh) (magit-post-refresh . diff-hl-magit-post-refresh)) #+END_SRC