57 lines
1.5 KiB
Org Mode
57 lines
1.5 KiB
Org Mode
|
#+TITLE: Some quick git diff tips
|
||
|
|
||
|
A couple of quick tips. As you possibly know you can specify some
|
||
|
options to be used for diffs (and other things) per file type. The
|
||
|
one I'm interested in is the function name.
|
||
|
|
||
|
* For org-mode
|
||
|
|
||
|
The primary way of identifying which part of an org-mode document
|
||
|
a change occurs in seems to me to be the heading. So, in your
|
||
|
~$HOME/.gitconfig~ put:
|
||
|
|
||
|
#+BEGIN_SRC conf
|
||
|
[diff "org"]
|
||
|
xfuncname = "^\\*+.*"
|
||
|
#+END_SRC
|
||
|
|
||
|
Which should show any lines starting with one or more ~*~
|
||
|
characters. And then in ~$XDG_CONFIG_HOME/git/attributes~ or
|
||
|
~$HOME/.config/git/attributes~ put:
|
||
|
|
||
|
#+BEGIN_EXAMPLE
|
||
|
,*.org diff=org
|
||
|
#+END_EXAMPLE
|
||
|
|
||
|
* For lisp and lisp-like langauges
|
||
|
|
||
|
For anything that resembles lisp (so Common Lisp, Emacs Lisp, Hy,
|
||
|
scheme, etc.) I would think that the easiest thing to do is just
|
||
|
see the closes top-level form. So, in your ~$HOME/.gitconfig~ put:
|
||
|
|
||
|
#+BEGIN_SRC conf
|
||
|
[diff "lisp"]
|
||
|
xfuncname = "^\\([^ ]+ [^ ]+"
|
||
|
#+END_SRC
|
||
|
|
||
|
Which should show the opening parenthesis and the first two words.
|
||
|
For example:
|
||
|
|
||
|
#+BEGIN_EXAMPLE
|
||
|
(defun some-function-name
|
||
|
(defclass my-awesome-class
|
||
|
(define-route this-strange-route
|
||
|
#+END_EXAMPLE
|
||
|
|
||
|
And then put in your ~$XDG_CONFIG_HOME/git/attributes~ or
|
||
|
~$HOME/.config/git/attributes~:
|
||
|
|
||
|
#+BEGIN_EXAMPLE
|
||
|
,*.lisp diff=lisp
|
||
|
,*.el diff=lisp
|
||
|
,*.hy diff=lisp
|
||
|
,*.scm diff=lisp
|
||
|
#+END_EXAMPLE
|
||
|
|
||
|
And possibly any other lisp-like language files you can think of.
|