99 lines
5.4 KiB
VimL
99 lines
5.4 KiB
VimL
" File: groovy.vim
|
|
" Author: Kenneth Benzie (Benie) <k.benzie83@gmail.com>
|
|
" Description: Extended groovy syntax for Jenkins DSL.
|
|
|
|
" Highlight shell('') and shell('''''') blocks with the sh filetype.
|
|
" unlet !b:current_syntax
|
|
|
|
" Highlight batchFile('') and batchFile('''''') blocks with the batch filetype.
|
|
" syn include @groovyHighlightBatch syntax/batch.vim
|
|
" syn region groovyHighlightBatch matchgroup=groovyString start="batchFile(\zs'\(''\)\=" end="\(''\)\='\ze)" contains=@groovyHighlightBatch
|
|
|
|
" keyword definitions
|
|
syn keyword groovyExternal native package
|
|
syn match groovyExternal "\<import\>\(\s\+static\>\)\?"
|
|
syn keyword groovyError goto const
|
|
syn keyword groovyConditional if else switch
|
|
syn keyword groovyRepeat while for do
|
|
syn keyword groovyBoolean true false
|
|
syn keyword groovyConstant null
|
|
syn keyword groovyTypedef this super
|
|
syn keyword groovyOperator new instanceof
|
|
syn keyword groovyType boolean char byte short int long float double void Integer Double Date Boolean Float String Array Vector List
|
|
syn keyword groovyStatement return
|
|
syn keyword groovyStorageClass static synchronized transient volatile final strictfp serializable
|
|
syn keyword groovyExceptions throw try catch finally
|
|
syn keyword groovyAssert assert
|
|
syn keyword groovyMethodDecl synchronized throws
|
|
syn keyword groovyClassDecl extends implements interface
|
|
" To differentiate the keyword class from MyClass.class we use a match here
|
|
syn match groovyTypedef "\.\s*\<class\>"ms=s+1
|
|
syn keyword groovyClassDecl enum
|
|
syn match groovyClassDecl "^class\>"
|
|
syn match groovyClassDecl "[^.]\s*\<class\>"ms=s+1
|
|
" syn keyword groovyBranch break continue nextgroup=groovyUserLabelRef skipwhite
|
|
" syn match groovyUserLabelRef "\k\+" contained
|
|
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 match groovyComment '\/\/.*$'
|
|
syn match groovyDelimiter '[()\[\]]'
|
|
syn region groovyBlock matchgroup=groovyDelimiter start='{' end='}' transparent fold
|
|
syn match groovyStructure '\w\+\ze\s*{'
|
|
syn match groovyFunction '\w\+\ze\s*('
|
|
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=+'''+ fold contains=groovyIdentifier
|
|
|
|
syn match groovyKeywordParam "\w\+\ze\s*=\s*"
|
|
syn region groovyFunctionParams matchgroup=groovyDelimiter start='(' end=')' contains=groovyComment,groovyString,groovyIdentifier,groovyNumber,groovyBoolean,groovyKeywordParam transparent
|
|
|
|
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
|
|
unlet b:current_syntax
|
|
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 include @groovyBatchSyntax syntax/dosbatch.vim
|
|
unlet b:current_syntax
|
|
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 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 groovyBranch Conditional
|
|
hi default link groovyClassDecl Structure
|
|
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 groovyKeywordParam 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 groovyStructure Structure
|
|
hi default link groovyType Type
|
|
hi default link groovyTypedef Typedef
|
|
hi default link groovyUserLabelRef Label
|
|
|
|
let b:current_syntax = 'groovy'
|