;;;; `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)