diff options
Diffstat (limited to 'syntax/go.vim')
-rw-r--r-- | syntax/go.vim | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/syntax/go.vim b/syntax/go.vim index 2f97813d..38a4993c 100644 --- a/syntax/go.vim +++ b/syntax/go.vim @@ -164,15 +164,17 @@ endif syn match goSingleDecl /\%(import\|var\|const\) [^(]\@=/ contains=goImport,goVar,goConst " Integers -syn match goDecimalInt "\<-\=\(0\|[1-9]\d*\)\%([Ee][-+]\=\d\+\)\=\>" -syn match goHexadecimalInt "\<-\=0[xX]\x\+\>" -syn match goHexadecimalError "\<-\=0[xX]\x*[^ \t0-9A-Fa-f]\S*\>" -syn match goOctalInt "\<-\=0\o\+\>" -syn match goOctalError "\<-\=0[XxBb\]]\@!\o*[^ \t0-7]\S*\>" -syn match goBinaryInt "\<-\=0[bB][01]\+\>" -syn match goBinaryError "\<-\=0[bB][01]*[^ \t01]\S*\>" +syn match goDecimalInt "\<-\=\(0\|[1-9]_\?\(\d\|\d\+_\?\d\+\)*\)\%([Ee][-+]\=\d\+\)\=\>" +syn match goDecimalError "\<-\=\(_\(\d\+_*\)\+\|\([1-9]\d*_*\)\+__\(\d\+_*\)\+\|\([1-9]\d*_*\)\+_\+\)\%([Ee][-+]\=\d\+\)\=\>" +syn match goHexadecimalInt "\<-\=0[xX]_\?\(\x\+_\?\)\+\>" +syn match goHexadecimalError "\<-\=0[xX]_\?\(\x\+_\?\)*\(\([^ \t0-9A-Fa-f_]\|__\)\S*\|_\)\>" +syn match goOctalInt "\<-\=0[oO]\?_\?\(\o\+_\?\)\+\>" +syn match goOctalError "\<-\=0[0-7oO_]*\(\([^ \t0-7oOxX_/)\]\}\:]\|[oO]\{2,\}\|__\)\S*\|_\|[oOxX]\)\>" +syn match goBinaryInt "\<-\=0[bB]_\?\([01]\+_\?\)\+\>" +syn match goBinaryError "\<-\=0[bB]_\?[01_]*\([^ \t01_]\S*\|__\S*\|_\)\>" hi def link goDecimalInt Integer +hi def link goDecimalError Error hi def link goHexadecimalInt Integer hi def link goHexadecimalError Error hi def link goOctalInt Integer |