Skip to content

Instantly share code, notes, and snippets.

@ruediger ruediger/attributes
Last active May 23, 2019

Embed
What would you like to do?
A collection of additional "custom hunk header" patterns for .gitattributes. This provides better context in the diff hunk header.
*.tex diff=tex
*.bib diff=bibtex
*.c diff=cpp
*.h diff=cpp
*.c++ diff=cpp
*.h++ diff=cpp
*.cpp diff=cpp
*.hpp diff=cpp
*.cc diff=cpp
*.hh diff=cpp
*.m diff=matlab
*.py diff=python
*.rb diff=ruby
*.php diff=php
*.pl diff=perl
*.html diff=html
*.xhtml diff=html
*.f diff=fortran
*.lisp diff=lisp
*.el diff=lisp
*.r diff=rstats
*.texi* diff=texinfo
*.org diff=orgmode
*.rs diff=rust
*.pdf diff=pdf
*.png diff=exif
*.jpg diff=exif
*.jpeg diff=exif
*.gif diff=exif
[diff "lisp"]
xfuncname = "^(\\(.*)$"
# xfuncname = "^(\\((cl-)?def(un|macro|method).*)$"
[diff "rstats"]
xfuncname = "^([a-zA-z.]+ <- function.*)$"
[diff "texinfo"]
# from http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=.gitattributes;h=c3b2926c78c939d94358cc63d051a70d38cfea5d;hb=HEAD
xfuncname = "^@node[ \t][ \t]*\\([^,][^,]*\\)"
[diff "orgmode"]
xfuncname = "^(\\*+.*)$"
#[diff "css"]
# xfuncname = "^([a-zA-Z#.@][^\\}]*)$"
# xfuncname = "^(.*\\{)$"
[diff "rust"] # Thanks to csabahenk
xfuncname = "^[ \t]*(pub|)[ \t]*((fn|struct|enum|impl|trait|mod)[^;]*)$"
[diff "exif"]
binary = true
# sudo apt-get install libimage-exiftool-perl
textconv = exiftool
[diff "pdf"]
textconv = pdftotext-stdout
# sudo apt-get install pdftotext
# copy the following to a script pdftotext-stdout somehwere in $PATH
# #!/bin/bash
# pdftotext "$@" -
@ruediger

This comment has been minimized.

Copy link
Owner Author

commented May 25, 2013

See gitattributes(5) for more information.

Add the stuff in attributes to your ${XDG_CONFIG_HOME:-~/.config}/git/attributes and the stuff in config to your ${XDG_CONFIG_HOME:-~/.config}/git/config (or ~/.gitconfig)

@csabahenk

This comment has been minimized.

Copy link

commented Jul 4, 2013

Suggested improvement:

[diff "rust"]
      xfuncname = "^[ \t]*(pub|)[ \t]*((fn|struct|enum|impl|trait|mod)[^;]*)$"
@ruediger

This comment has been minimized.

Copy link
Owner Author

commented Sep 4, 2013

Emacs' git-modes comes with several modes for git including gitattributes-mode and gitconfig-mode for editing git attributes and config files.

@ruediger

This comment has been minimized.

Copy link
Owner Author

commented Jan 7, 2014

@DamienCassou

This comment has been minimized.

Copy link

commented Feb 27, 2017

For javascript:

[diff "ecmascript"]
        xfuncname = "^((.*function.*)|([ \t]+it\\(.*))$"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.