Skip to content

Commit

Permalink
Add userdiff patterns for Ada
Browse files Browse the repository at this point in the history
Add Ada xfuncname and wordRegex patterns to the list of builtin
patterns.

Signed-off-by: Adrian Johnson <ajohnson@redneon.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Adrian Johnson authored and Junio C Hamano committed Sep 17, 2012
1 parent 889d358 commit e90d065
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 1 deletion.
2 changes: 2 additions & 0 deletions Documentation/gitattributes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,8 @@ configuration file (you still need to enable this with the
attribute mechanism, via `.gitattributes`). The following built in
patterns are available:

- `ada` suitable for source code in the Ada language.

- `bibtex` suitable for files with BibTeX coded references.

- `cpp` suitable for source code in the C and C++ languages.
Expand Down
2 changes: 1 addition & 1 deletion t/t4018-diff-funcname.sh
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ test_expect_funcname () {
grep "^@@.*@@ $1" diff
}

for p in bibtex cpp csharp fortran html java matlab objc pascal perl php python ruby tex
for p in ada bibtex cpp csharp fortran html java matlab objc pascal perl php python ruby tex
do
test_expect_success "builtin $p pattern compiles" '
echo "*.java diff=$p" >.gitattributes &&
Expand Down
1 change: 1 addition & 0 deletions t/t4034-diff-words.sh
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ test_expect_success 'unset default driver' '
test_unconfig diff.wordregex
'
test_language_driver ada
test_language_driver bibtex
test_language_driver cpp
test_language_driver csharp
Expand Down
27 changes: 27 additions & 0 deletions t/t4034/ada/expect
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index d96fdd1..df21bb0 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1,13 +1,13 @@<RESET>
Ada.Text_IO.Put_Line("Hello World<RED>!<RESET><GREEN>?<RESET>");
1 1e<RED>-<RESET>10 16#FE12#E2 3.141_592 '<RED>x<RESET><GREEN>y<RESET>'
<RED>a<RESET><GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET>**<RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET>(<RED>b<RESET><GREEN>y<RESET>)
<RED>a<RESET><GREEN>x<RESET>:=<RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>/= <RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET>,<RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET>=><RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET>..<RED>b<RESET>
<RED>a<RESET><GREEN>y<RESET>
<GREEN>x<RESET><><RED>b<RESET><GREEN>y<RESET>
13 changes: 13 additions & 0 deletions t/t4034/ada/post
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Ada.Text_IO.Put_Line("Hello World?");
1 1e10 16#FE12#E2 3.141_592 'y'
x+y x-y
x*y x/y
x**y
x(y)
x:=y
x=y x/= y
x<y x<=y x>y x>=y
x,y
x=>y
x..y
x<>y
13 changes: 13 additions & 0 deletions t/t4034/ada/pre
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Ada.Text_IO.Put_Line("Hello World!");
1 1e-10 16#FE12#E2 3.141_592 'x'
a+b a-b
a*b a/b
a**b
a(b)
a:=b
a=b a/= b
a<b a<=b a>b a>=b
a,b
a=>b
a..b
a<>b
9 changes: 9 additions & 0 deletions userdiff.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@ static int drivers_alloc;
{ name, NULL, -1, { pattern, REG_EXTENDED | REG_ICASE }, \
word_regex "|[^[:space:]]|[\xc0-\xff][\x80-\xbf]+" }
static struct userdiff_driver builtin_drivers[] = {
IPATTERN("ada",
"!^(.*[ \t])?(is new|renames|is separate)([ \t].*)?$\n"
"!^[ \t]*with[ \t].*$\n"
"^[ \t]*((procedure|function)[ \t]+.*)$\n"
"^[ \t]*((package|protected|task)[ \t]+.*)$",
/* -- */
"[a-zA-Z][a-zA-Z0-9_]*"
"|[0-9][-+0-9#_.eE]"
"|=>|\\.\\.|\\*\\*|:=|/=|>=|<=|<<|>>|<>"),
IPATTERN("fortran",
"!^([C*]|[ \t]*!)\n"
"!^[ \t]*MODULE[ \t]+PROCEDURE[ \t]\n"
Expand Down

0 comments on commit e90d065

Please sign in to comment.