Improve groovy syntax highlighting

This commit is contained in:
Kenneth Benzie 2017-05-24 10:37:30 +01:00
parent 7f63041695
commit ccc214436c

View File

@ -10,63 +10,85 @@
" syn region groovyHighlightBatch matchgroup=groovyString start="batchFile(\zs'\(''\)\=" end="\(''\)\='\ze)" contains=@groovyHighlightBatch " syn region groovyHighlightBatch matchgroup=groovyString start="batchFile(\zs'\(''\)\=" end="\(''\)\='\ze)" contains=@groovyHighlightBatch
" keyword definitions " keyword definitions
" syn keyword groovyExternal native package syn keyword groovyExternal native package
" syn match groovyExternal "\<import\>\(\s\+static\>\)\?" syn match groovyExternal "\<import\>\(\s\+static\>\)\?"
" syn keyword groovyError goto const syn keyword groovyError goto const
" syn keyword groovyConditional if else switch syn keyword groovyConditional if else switch
" syn keyword groovyRepeat while for do syn keyword groovyRepeat while for do
" syn keyword groovyBoolean true false syn keyword groovyBoolean true false
" syn keyword groovyConstant null syn keyword groovyConstant null
" syn keyword groovyTypedef this super syn keyword groovyTypedef this super
" syn keyword groovyOperator new instanceof syn keyword groovyOperator new instanceof
" syn keyword groovyType boolean char byte short int long float double void syn keyword groovyType boolean char byte short int long float double void Integer Double Date Boolean Float String Array Vector List
" \ Integer Double Date Boolean Float String Array Vector List syn keyword groovyStatement return
" syn keyword groovyStatement return syn keyword groovyStorageClass static synchronized transient volatile final strictfp serializable
" syn keyword groovyStorageClass static synchronized transient volatile final strictfp serializable syn keyword groovyExceptions throw try catch finally
" syn keyword groovyExceptions throw try catch finally syn keyword groovyAssert assert
" syn keyword groovyAssert assert syn keyword groovyMethodDecl synchronized throws
" syn keyword groovyMethodDecl synchronized throws syn keyword groovyClassDecl extends implements interface
" syn keyword groovyClassDecl extends implements interface " To differentiate the keyword class from MyClass.class we use a match here
" " to differentiate the keyword class from MyClass.class we use a match here syn match groovyTypedef "\.\s*\<class\>"ms=s+1
" syn match groovyTypedef "\.\s*\<class\>"ms=s+1 syn keyword groovyClassDecl enum
" syn keyword groovyClassDecl enum syn match groovyClassDecl "^class\>"
" syn match groovyClassDecl "^class\>" syn match groovyClassDecl "[^.]\s*\<class\>"ms=s+1
" syn match groovyClassDecl "[^.]\s*\<class\>"ms=s+1
" syn keyword groovyBranch break continue nextgroup=groovyUserLabelRef skipwhite " syn keyword groovyBranch break continue nextgroup=groovyUserLabelRef skipwhite
" syn match groovyUserLabelRef "\k\+" contained " syn match groovyUserLabelRef "\k\+" contained
" syn keyword groovyScopeDecl public protected private abstract syn keyword groovyScopeDecl public protected private abstract
syn match groovyNumber "\<\(0[bB][0-1]\+\|0[0-7]*\|0[xX]\x\+\|\d\(\d\|_\d\)*\)[lL]\=\>"
syn match groovyNumber "\(\<\d\(\d\|_\d\)*\.\(\d\(\d\|_\d\)*\)\=\|\.\d\(\d\|_\d\)*\)\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\="
syn match groovyNumber "\<\d\(\d\|_\d\)*[eE][-+]\=\d\(\d\|_\d\)*[fFdD]\=\>"
syn match groovyNumber "\<\d\(\d\|_\d\)*\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\>"
syn region groovyComment start='\/\*' end='\*\/' fold syn region groovyComment start='\/\*' end='\*\/' fold
syn match groovyComment '\s*\/\/.*$' syn match groovyComment '\s*\/\/.*$'
syn match groovyDelimiter '[()\[\]]' syn match groovyDelimiter '[()\[\]]'
syn region groovyBlock matchgroup=groovyDelimiter start='{' end='}' transparent fold syn region groovyBlock matchgroup=groovyDelimiter start='{' end='}' transparent fold
syn match groovyStructure '\w\+\ze\s*{' syn match groovyStructure '\w\+\ze\s*{'
syn match groovyFunction '\w\+\ze\s*(' syn match groovyFunction '\w\+\ze\s*('
syn region groovyIdentifier start='${' end='}' oneline syn region groovyIdentifier start='${' end='}' oneline
syn region groovyString start=+"+ end=+"+ oneline contains=groovyIdentifier syn region groovyString start=+"+ end=+"+ oneline contains=groovyIdentifier
syn region groovyString start=+'+ end=+'+ oneline contains=groovyIdentifier syn region groovyString start=+'+ end=+'+ oneline contains=groovyIdentifier
syn region groovyString start=+'''+ end=+'''+ fold contains=groovyIdentifier syn region groovyString start=+'''+ end=+'''+ fold contains=groovyIdentifier
syn cluster groovySyntax contains=groovyAssert,groovyBlock,groovyBoolean,groovyBranch,groovyClassDecl,groovyComment,groovyConditional,groovyConstant,groovyDelimiter,groovyError,groovyExceptions,groovyExternal,groovyFunction,groovyIdentifier,groovyMethodDecl,groovyNumber,groovyOperator,groovyRepeat,groovyScopeDecl,groovyStatement,groovyStorageClass,groovyString,groovyStructure,groovyType,groovyTypedef,groovyUserLabelRef
syn include @groovyShellSyntax syntax/sh.vim syn include @groovyShellSyntax syntax/sh.vim
unlet b:current_syntax unlet b:current_syntax
syn region groovyShellSyntax matchgroup=groovyString start=+'''+ end=+'''+ contains=@groovyShellSyntax contained syn region groovyShellSyntax matchgroup=groovyString start=+\('''\|"""\)+ end=+\('''\|"""\)+ contains=@groovyShellSyntax contained
syn region groovyShell matchgroup=groovyFunction start='shell\s*\ze(' end='\ze)' fold contains=groovyShellSyntax,groovyDelimiter syn region groovyShell matchgroup=groovyFunction start='shell\s*\ze(' end='\ze)' fold contains=groovyShellSyntax,groovyDelimiter
syn include @groovyBatchSyntax syntax/dosbatch.vim syn include @groovyBatchSyntax syntax/dosbatch.vim
unlet b:current_syntax unlet b:current_syntax
syn region groovyBatchSyntax matchgroup=groovyString start=+'''+ end=+'''+ contains=@groovyBatchSyntax contained syn region groovyBatchSyntax matchgroup=groovyString start=+\('''\|"""\)+ end=+\('''\|"""\)+ contains=@groovyBatchSyntax contained
syn region groovyBatch matchgroup=groovyFunction start='batchFile\s*\ze(' end='\ze)' fold contains=groovyBatchSyntax,groovyDelimiter syn region groovyBatch matchgroup=groovyFunction start='batchFile\s*\ze(' end='\ze)' fold contains=groovyBatchSyntax,groovyDelimiter
hi default link groovyDelimiter Delimiter syn region groovyBuildFlowSyntax matchgroup=groovyString start=+\('''\|"""\)+ end=+\('''\|"""\)+ contained contains=groovyStructure,groovyFunction,groovyDelimiter,groovyComment,groovyBlock,groovyString,groovyIdentifier,groovyKeywords,@groovySyntax
syn region groovyBuildFlow matchgroup=groovyFunction start='buildFlow\s*\ze(' end='\ze)' fold contains=groovyBuildFlowSyntax,groovyDelimiter
hi default link groovyAssert Keyword
hi default link groovyBoolean Boolean hi default link groovyBoolean Boolean
hi default link groovyBranch Conditional
hi default link groovyClassDecl Structure
hi default link groovyComment Comment hi default link groovyComment Comment
hi default link groovyConditional Conditional
hi default link groovyConstant Constant
hi default link groovyDelimiter Delimiter
hi default link groovyError Error
hi default link groovyExceptions Exception
hi default link groovyExternal Include
hi default link groovyFunction Function
hi default link groovyIdentifier Identifier
hi default link groovyMethodDecl Function
hi default link groovyNumber Number
hi default link groovyOperator Operator
hi default link groovyRepeat Repeat
hi default link groovyScopeDecl Keyword
hi default link groovyShellDelimiter groovyDelimiter
hi default link groovyStatement Statement
hi default link groovyStorageClass StorageClass
hi default link groovyString String hi default link groovyString String
hi default link groovyStructure Structure hi default link groovyStructure Structure
hi default link groovyIdentifier Identifier hi default link groovyType Type
hi default link groovyFunction Function hi default link groovyTypedef Typedef
hi default link groovyShellDelimiter groovyDelimiter hi default link groovyUserLabelRef Label
let b:current_syntax = 'groovy' let b:current_syntax = 'groovy'