Swapping git-gutter for vc-diff-hl
This commit is contained in:
parent
e40c57ff18
commit
dcd050b37a
2 changed files with 43 additions and 23 deletions
|
@ -84,31 +84,47 @@ Can not live without [[https://magit.vc/][Magit]], a Git porcelain for Emacs. I
|
||||||
|
|
||||||
(general-nmap "<escape>" #'transient-quit-one))
|
(general-nmap "<escape>" #'transient-quit-one))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Git Gutter
|
** VC Diff Highlight
|
||||||
The [[https://github.com/syohex/emacs-git-gutter-fringe][git-gutter-fringe]] project displays markings in the fringe (extreme left margin) to show modified and uncommitted lines. This project builds on [[https://github.com/emacsorphanage/git-gutter][git-gutter]] project to provide movement between /hunks/:
|
The [[https://github.com/dgutov/diff-hl][diff-hl project]], while more active, has more features than the [[https://github.com/syohex/emacs-git-gutter-fringe][git-gutter-fringe]] project.
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package git-gutter-fringe
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package diff-hl
|
||||||
:custom
|
:custom
|
||||||
;; To have both flymake and git-gutter work, we put
|
(diff-hl-side 'right)
|
||||||
;; git-gutter on the right side:
|
(fringe-mode '(8 . 4))
|
||||||
(git-gutter-fr:side 'right-fringe)
|
(diff-hl-draw-borders nil)
|
||||||
;; (left-fringe-width 15)
|
|
||||||
(right-fringe-width 10)
|
|
||||||
|
|
||||||
|
:hook ((dired-mode . diff-hl-dired-mode)
|
||||||
|
(diff-hl-mode . diff-hl-flydiff-mode)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Turning on the mode, as well as binding some new /leader/ keys:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package diff-hl
|
||||||
:config
|
:config
|
||||||
(set-face-foreground 'git-gutter-fr:modified "yellow")
|
(global-diff-hl-mode)
|
||||||
(set-face-foreground 'git-gutter-fr:added "green")
|
|
||||||
(set-face-foreground 'git-gutter-fr:deleted "red")
|
|
||||||
|
|
||||||
(global-git-gutter-mode)
|
|
||||||
|
|
||||||
(ha-leader
|
(ha-leader
|
||||||
"g n" '("next hunk" . git-gutter:next-hunk)
|
"g j" '("jump hunk" . diff-hl-diff-goto-hunk)
|
||||||
"g p" '("previous hunk" . git-gutter:previous-hunk)
|
"g ]" '("next hunk" . diff-hl-next-hunk)
|
||||||
"g e" '("end of hunk" . git-gutter:end-of-hunk)
|
"g [" '("previous hunk" . diff-hl-previous-hunk)
|
||||||
"g r" '("revert hunk" . git-gutter:revert-hunk)
|
"g e" '("end of hunk" . diff-hl-end-of-hunk)
|
||||||
"g s" '("stage hunk" . git-gutter:stage-hunk)))
|
"g r" '("revert hunk" . diff-hl-revert-hunk)
|
||||||
#+end_src
|
"g s" '("show hunk" . diff-hl-show-hunk)
|
||||||
|
"g S" '("stage hunk" . diff-hl-stage-dwim)
|
||||||
|
|
||||||
|
;; Using Gerrit means I might want to view changes not from my
|
||||||
|
;; last review, but from the original changes:
|
||||||
|
"g a" '("diff amend" . diff-hl-amend-mode)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
This project (and others) can use repeat mode, but
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(repeat-mode)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** Git Delta
|
** Git Delta
|
||||||
The [[https://scripter.co/using-git-delta-with-magit][magit-delta]] project uses [[https://github.com/dandavison/delta][git-delta]] for colorized diffs.
|
The [[https://scripter.co/using-git-delta-with-magit][magit-delta]] project uses [[https://github.com/dandavison/delta][git-delta]] for colorized diffs.
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
@ -264,6 +280,8 @@ What's left is integrating the new show and diff commands in Magit. For that pur
|
||||||
|
|
||||||
(ha-leader "g d" '("difftastic" . ha-difftastic-here))
|
(ha-leader "g d" '("difftastic" . ha-difftastic-here))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
How much has been already integrated? Need to re-evaluate this.
|
||||||
** Time Machine
|
** Time Machine
|
||||||
The [[https://github.com/emacsmirror/git-timemachine][git-timemachine]] project visually shows how a code file changes with each iteration:
|
The [[https://github.com/emacsmirror/git-timemachine][git-timemachine]] project visually shows how a code file changes with each iteration:
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
|
|
@ -41,14 +41,16 @@ I like the rendering of curved quotes using [[help:text-quoting-style][text-quot
|
||||||
#+end_src
|
#+end_src
|
||||||
When typing prose in Org documents, I need to [[file:ha-org-word-processor.org::*Typographic Quotes][do something else]] for rounded quotes and ellipsis.
|
When typing prose in Org documents, I need to [[file:ha-org-word-processor.org::*Typographic Quotes][do something else]] for rounded quotes and ellipsis.
|
||||||
|
|
||||||
Changes and settings I like introduced that were introduced in Emacs 28:
|
Changes and settings I like introduced in Emacs 28:
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(setq use-short-answers t
|
(setq use-short-answers t
|
||||||
describe-bindings-outline t
|
describe-bindings-outline t
|
||||||
completions-detailed t)
|
completions-detailed t)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
I’ve got preferences for how I like scrolling, and with my org files, I need a little more of the of the context, so this increases from =2= to =3=, but I really like to keep the cursor in place when I can:
|
I’ve got preferences for how I like scrolling, and with my org files, I need a little more of the of the context, so this increases from =2= to =3=, but I like to keep the cursor in place when I can:
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(setq next-screen-context-lines 3
|
(setq next-screen-context-lines 3
|
||||||
scroll-error-top-bottom t
|
scroll-error-top-bottom t
|
||||||
|
@ -139,7 +141,7 @@ After reading [[https://irreal.org/blog/?p=12139][Jon Sander’s essay]] as well
|
||||||
:straight (:host github :repo "tecosaur/emacs-everywhere"))
|
:straight (:host github :repo "tecosaur/emacs-everywhere"))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
This package is /called outside of Emacs/, so I bound a keybinding to iCanHazShortcut:
|
This package /called outside of Emacs/, so I bound a keybinding to iCanHazShortcut:
|
||||||
|
|
||||||
#+begin_src sh
|
#+begin_src sh
|
||||||
emacsclient --socket-name personal --eval "(emacs-everywhere)"
|
emacsclient --socket-name personal --eval "(emacs-everywhere)"
|
||||||
|
|
Loading…
Reference in a new issue