101 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			5.6 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 match groovyTodo "\(TODO\|FIXME\)" contained
 | 
						|
syn region groovyComment start='\/\*' end='\*\/' contains=groovyTodo fold
 | 
						|
syn match groovyComment '\/\/.*$' contains=groovyTodo
 | 
						|
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 groovyTodo Todo
 | 
						|
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'
 |