Merge branch 'ag/userdiff-go-funcname'

"git diff" and friends learned funcname patterns for Go language
source files.

* ag/userdiff-go-funcname:
  userdiff: add built-in pattern for golang
This commit is contained in:
Junio C Hamano 2018-03-08 12:36:30 -08:00
commit 077cde91d2
8 changed files with 37 additions and 0 deletions

View File

@ -714,6 +714,8 @@ patterns are available:
- `fountain` suitable for Fountain documents.
- `golang` suitable for source code in the Go language.
- `html` suitable for HTML/XHTML documents.
- `java` suitable for source code in the Java language.

View File

@ -33,6 +33,7 @@ diffpatterns="
css
fortran
fountain
golang
html
java
matlab

View File

@ -0,0 +1,8 @@
type Test struct {
a Type
}
func (t *Test) RIGHT(a Type) (Type, error) {
t.a = a
return ChangeMe, nil
}

4
t/t4018/golang-func Normal file
View File

@ -0,0 +1,4 @@
func RIGHT() {
a := 5
b := ChangeMe
}

4
t/t4018/golang-interface Normal file
View File

@ -0,0 +1,4 @@
type RIGHT interface {
a() Type
b() ChangeMe
}

5
t/t4018/golang-long-func Normal file
View File

@ -0,0 +1,5 @@
func RIGHT(aVeryVeryVeryLongVariableName AVeryVeryVeryLongType,
anotherLongVariableName AnotherLongType) {
a := 5
b := ChangeMe
}

4
t/t4018/golang-struct Normal file
View File

@ -0,0 +1,4 @@
type RIGHT struct {
a Type
b ChangeMe
}

View File

@ -38,6 +38,15 @@ IPATTERN("fortran",
"|//|\\*\\*|::|[/<>=]="),
IPATTERN("fountain", "^((\\.[^.]|(int|ext|est|int\\.?/ext|i/e)[. ]).*)$",
"[^ \t-]+"),
PATTERNS("golang",
/* Functions */
"^[ \t]*(func[ \t]*.*(\\{[ \t]*)?)\n"
/* Structs and interfaces */
"^[ \t]*(type[ \t].*(struct|interface)[ \t]*(\\{[ \t]*)?)",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"
"|[-+0-9.eE]+i?|0[xX]?[0-9a-fA-F]+i?"
"|[-+*/<>%&^|=!:]=|--|\\+\\+|<<=?|>>=?|&\\^=?|&&|\\|\\||<-|\\.{3}"),
PATTERNS("html", "^[ \t]*(<[Hh][1-6]([ \t].*)?>.*)$",
"[^<>= \t]+"),
PATTERNS("java",