77 lines
2.4 KiB
EmacsLisp
77 lines
2.4 KiB
EmacsLisp
;;;; `ediff'
|
|
(use-package ediff
|
|
:ensure nil
|
|
:commands (ediff-buffers ediff-files ediff-buffers3 ediff-files3)
|
|
:init
|
|
(setq ediff-split-window-function 'split-window-horizontally)
|
|
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
|
|
:config
|
|
(setq ediff-keep-variants nil)
|
|
(setq ediff-make-buffers-readonly-at-startup nil)
|
|
(setq ediff-merge-revisions-with-ancestor t)
|
|
(setq ediff-show-clashes-only t))
|
|
|
|
;;;; `project'
|
|
(use-package project
|
|
:ensure nil
|
|
:bind
|
|
(("C-x p ." . project-dired)
|
|
("C-x p C-g" . keyboard-quit)
|
|
("C-x p <return>" . project-dired)
|
|
("C-x p <delete>" . project-forget-project))
|
|
:config
|
|
(setopt project-switch-commands
|
|
'((project-find-file "Find file")
|
|
(project-find-regexp "Find regexp")
|
|
(project-find-dir "Find directory")
|
|
(project-dired "Root dired")
|
|
(project-vc-dir "VC-Dir")
|
|
(project-shell "Shell")
|
|
(keyboard-quit "Quit")))
|
|
(setq project-vc-extra-root-markers '(".project")) ; Emacs 29
|
|
(setq project-key-prompt-style t)) ; Emacs 30
|
|
|
|
;;;; `diff-mode'
|
|
(use-package diff-mode
|
|
:ensure nil
|
|
:defer t
|
|
:config
|
|
(setq diff-default-read-only t)
|
|
(setq diff-advance-after-apply-hunk t)
|
|
(setq diff-update-on-the-fly t)
|
|
;; The following are from Emacs 27.1
|
|
(setq diff-refine nil) ; I do it on demand, with my `agitate' package (more below)
|
|
(setq diff-font-lock-prettify t) ; I think nil is better for patches, but let me try this for a while
|
|
(setq diff-font-lock-syntax 'hunk-also))
|
|
|
|
;;; Interactive and powerful git front-end (Magit)
|
|
(use-package magit
|
|
:ensure t
|
|
:bind ("C-x g" . magit-status)
|
|
:init
|
|
(setq magit-define-global-key-bindings nil)
|
|
;; (setq magit-section-visibility-indicator '("⮧"))
|
|
:config
|
|
(setq git-commit-summary-max-length 50)
|
|
;; NOTE 2023-01-24: I used to also include `overlong-summary-line'
|
|
;; in this list, but I realised I do not need it. My summaries are
|
|
;; always in check. When I exceed the limit, it is for a good
|
|
;; reason.
|
|
;; (setq git-commit-style-convention-checks '(non-empty-second-line))
|
|
|
|
(setq magit-diff-refine-hunk t))
|
|
|
|
(use-package transient
|
|
:ensure t
|
|
:after magit
|
|
:config
|
|
(setq transient-show-popup 0.5))
|
|
|
|
(use-package magit-repos
|
|
:ensure nil ; part of `magit'
|
|
:commands (magit-list-repositories)
|
|
:init
|
|
(setq magit-repository-directories
|
|
'(("~/src/prototypes" . 1))))
|
|
|
|
(provide 'nebkor-git)
|