11 August 2013 0:54 AM (git | org-mode | diff | tips | magit | emacs | lisp | hy | elisp)
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:
[diff "org"] xfuncname = "^\\*+.*"
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:
*.org diff=org
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:
[diff "lisp"] xfuncname = "^\\([^ ]+ [^ ]+"
Which should show the opening parenthesis and the first two words. For example:
(defun some-function-name (defclass my-awesome-class (define-route this-strange-route
And then put in your $XDG_CONFIG_HOME/git/attributes
or
$HOME/.config/git/attributes
:
*.lisp diff=lisp *.el diff=lisp *.hy diff=lisp *.scm diff=lisp
And possibly any other lisp-like language files you can think of.