mirror of
https://github.com/git/git
synced 2024-11-05 18:59:29 +00:00
Merge branch 'js/userdiff-cpp'
Userdiff patterns for the C++ language has been updated. * js/userdiff-cpp: userdiff-cpp: back out the digit-separators in numbers userdiff-cpp: learn the C++ spaceship operator userdiff-cpp: permit the digit-separating single-quote in numbers userdiff-cpp: prepare test cases with yet unsupported features userdiff-cpp: tighten word regex t4034: add tests showing problematic cpp tokenizations t4034/cpp: actually test that operator tokens are not split
This commit is contained in:
commit
f3f157ff27
4 changed files with 94 additions and 67 deletions
|
@ -1,36 +1,35 @@
|
|||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 23d5c8a..7e8c026 100644<RESET>
|
||||
<BOLD>index a1a09b7..f1b6f3c 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,19 +1,19 @@<RESET>
|
||||
Foo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <GREEN>bar(x);<RESET> }
|
||||
<CYAN>@@ -1,30 +1,30 @@<RESET>
|
||||
Foo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <RED>foo0<RESET><GREEN>bar<RESET>(x.<RED>find<RESET><GREEN>Find<RESET>); }
|
||||
cout<<"Hello World<RED>!<RESET><GREEN>?<RESET>\n"<<endl;
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<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 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 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 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>
|
||||
<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>:z
|
||||
<RED>a<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 a<RESET><GREEN>y 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 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>,y
|
||||
<RED>a<RESET><GREEN>x<RESET>::<RED>b<RESET><GREEN>y<RESET>
|
||||
<GREEN>(<RESET>1 <RED>-<RESET><GREEN>+<RESET>1e10 0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>2<RESET>'
|
||||
// long double<RESET>
|
||||
<RED>3.141592653e-10l<RESET><GREEN>3.141592654e+10l<RESET>
|
||||
// float<RESET>
|
||||
<RED>120E5f<RESET><GREEN>120E6f<RESET>
|
||||
// hex<RESET>
|
||||
<RED>0xdead<RESET><GREEN>0xdeaf<RESET>'1<RED>eaF<RESET><GREEN>eaf<RESET>+<RED>8ULL<RESET><GREEN>7ULL<RESET>
|
||||
// octal<RESET>
|
||||
<RED>01234567<RESET><GREEN>01234560<RESET>
|
||||
// binary<RESET>
|
||||
<RED>0b1000<RESET><GREEN>0b1100<RESET>+e1
|
||||
// expression<RESET>
|
||||
1.5-e+<RED>2<RESET><GREEN>3<RESET>+f
|
||||
// another one<RESET>
|
||||
str.e+<RED>65<RESET><GREEN>75<RESET>
|
||||
[a] b<RED>-><RESET><GREEN>->*<RESET>v d<RED>.<RESET><GREEN>.*<RESET>e
|
||||
<GREEN>~<RESET>!a <GREEN>!<RESET>~b c<RED>++<RESET><GREEN>+<RESET> d<RED>--<RESET><GREEN>-<RESET> e*<GREEN>*<RESET>f g<RED>&<RESET><GREEN>&&<RESET>h
|
||||
a<RED>*<RESET><GREEN>*=<RESET>b c<RED>/<RESET><GREEN>/=<RESET>d e<RED>%<RESET><GREEN>%=<RESET>f
|
||||
a<RED>+<RESET><GREEN>++<RESET>b c<RED>-<RESET><GREEN>--<RESET>d
|
||||
a<RED><<<RESET><GREEN><<=<RESET>b c<RED>>><RESET><GREEN>>>=<RESET>d
|
||||
a<RED><<RESET><GREEN><=<RESET>b c<RED><=<RESET><GREEN><<RESET>d e<RED>><RESET><GREEN>>=<RESET>f g<RED>>=<RESET><GREEN>><RESET>h i<RED><=<RESET><GREEN><=><RESET>j
|
||||
a<RED>==<RESET><GREEN>!=<RESET>b c<RED>!=<RESET><GREEN>=<RESET>d
|
||||
a<RED>^<RESET><GREEN>^=<RESET>b c<RED>|<RESET><GREEN>|=<RESET>d e<RED>&&<RESET><GREEN>&=<RESET>f
|
||||
a<RED>||<RESET><GREEN>|<RESET>b
|
||||
a?<GREEN>:<RESET>b
|
||||
a<RED>=<RESET><GREEN>==<RESET>b c<RED>+=<RESET><GREEN>+<RESET>d e<RED>-=<RESET><GREEN>-<RESET>f g<RED>*=<RESET><GREEN>*<RESET>h i<RED>/=<RESET><GREEN>/<RESET>j k<RED>%=<RESET><GREEN>%<RESET>l m<RED><<=<RESET><GREEN><<<RESET>n o<RED>>>=<RESET><GREEN>>><RESET>p q<RED>&=<RESET><GREEN>&<RESET>r s<RED>^=<RESET><GREEN>^<RESET>t u<RED>|=<RESET><GREEN>|<RESET>v
|
||||
a,b<RESET>
|
||||
a<RED>::<RESET><GREEN>:<RESET>b
|
||||
|
|
|
@ -1,19 +1,30 @@
|
|||
Foo() : x(0&42) { bar(x); }
|
||||
Foo() : x(0&42) { bar(x.Find); }
|
||||
cout<<"Hello World?\n"<<endl;
|
||||
(1) (-1e10) (0xabcdef) 'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- 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
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
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
|
||||
(1 +1e10 0xabcdef) '2'
|
||||
// long double
|
||||
3.141592654e+10l
|
||||
// float
|
||||
120E6f
|
||||
// hex
|
||||
0xdeaf'1eaf+7ULL
|
||||
// octal
|
||||
01234560
|
||||
// binary
|
||||
0b1100+e1
|
||||
// expression
|
||||
1.5-e+3+f
|
||||
// another one
|
||||
str.e+75
|
||||
[a] b->*v d.*e
|
||||
~!a !~b c+ d- e**f g&&h
|
||||
a*=b c/=d e%=f
|
||||
a++b c--d
|
||||
a<<=b c>>=d
|
||||
a<=b c<d e>=f g>h i<=>j
|
||||
a!=b c=d
|
||||
a^=b c|=d e&=f
|
||||
a|b
|
||||
a?:b
|
||||
a==b c+d e-f g*h i/j k%l m<<n o>>p q&r s^t u|v
|
||||
a,b
|
||||
a:b
|
||||
|
|
|
@ -1,19 +1,30 @@
|
|||
Foo():x(0&&1){}
|
||||
Foo():x(0&&1){ foo0( x.find); }
|
||||
cout<<"Hello World!\n"<<endl;
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- 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
|
||||
a|b
|
||||
a&&b
|
||||
// long double
|
||||
3.141592653e-10l
|
||||
// float
|
||||
120E5f
|
||||
// hex
|
||||
0xdead'1eaF+8ULL
|
||||
// octal
|
||||
01234567
|
||||
// binary
|
||||
0b1000+e1
|
||||
// expression
|
||||
1.5-e+2+f
|
||||
// another one
|
||||
str.e+65
|
||||
[a] b->v d.e
|
||||
!a ~b c++ d-- e*f g&h
|
||||
a*b c/d e%f
|
||||
a+b c-d
|
||||
a<<b c>>d
|
||||
a<b c<=d e>f g>=h i<=j
|
||||
a==b c!=d
|
||||
a^b c|d e&&f
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
||||
a?b
|
||||
a=b c+=d e-=f g*=h i/=j k%=l m<<=n o>>=p q&=r s^=t u|=v
|
||||
a,b
|
||||
a::b
|
||||
|
|
10
userdiff.c
10
userdiff.c
|
@ -64,9 +64,15 @@ PATTERNS("cpp",
|
|||
/* functions/methods, variables, and compounds at top level */
|
||||
"^((::[[:space:]]*)?[A-Za-z_].*)$",
|
||||
/* -- */
|
||||
/* identifiers and keywords */
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lLuU]*"
|
||||
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->\\*?|\\.\\*"),
|
||||
/* decimal and octal integers as well as floatingpoint numbers */
|
||||
"|[0-9][0-9.]*([Ee][-+]?[0-9]+)?[fFlLuU]*"
|
||||
/* hexadecimal and binary integers */
|
||||
"|0[xXbB][0-9a-fA-F]+[lLuU]*"
|
||||
/* floatingpoint numbers that begin with a decimal point */
|
||||
"|\\.[0-9][0-9]*([Ee][-+]?[0-9]+)?[fFlL]?"
|
||||
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->\\*?|\\.\\*|<=>"),
|
||||
PATTERNS("csharp",
|
||||
/* Keywords */
|
||||
"!^[ \t]*(do|while|for|if|else|instanceof|new|return|switch|case|throw|catch|using)\n"
|
||||
|
|
Loading…
Reference in a new issue