xref: /vim-8.2.3635/runtime/syntax/groovy.vim (revision 17fb0e89)
1" Vim syntax file
2" Language:	Groovy
3" Original Author:	Alessio Pace <[email protected]>
4" Maintainer:	Tobias Rapp <[email protected]>
5" Version: 	0.1.10
6" URL:	  http://www.vim.org/scripts/script.php?script_id=945
7" Last Change:	2010 Nov 29
8
9" THE ORIGINAL AUTHOR'S NOTES:
10"
11" This is my very first vim script, I hope to have
12" done it the right way.
13"
14" I must directly or indirectly thank the author of java.vim and ruby.vim:
15" I copied from them most of the stuff :-)
16"
17" Relies on html.vim
18
19" For version 5.x: Clear all syntax items
20" For version 6.x: Quit when a syntax file was already loaded
21"
22" HOWTO USE IT (INSTALL) when not part of the distribution:
23"
24" 1) copy the file in the (global or user's $HOME/.vim/syntax/) syntax folder
25"
26" 2) add this line to recognize groovy files by filename extension:
27"
28" au BufNewFile,BufRead *.groovy  setf groovy
29" in the global vim filetype.vim file or inside $HOME/.vim/filetype.vim
30"
31" 3) add this part to recognize by content groovy script (no extension needed :-)
32"
33"  if did_filetype()
34"    finish
35"  endif
36"  if getline(1) =~ '^#!.*[/\\]groovy\>'
37"    setf groovy
38"  endif
39"
40"  in the global scripts.vim file or in $HOME/.vim/scripts.vim
41"
42" 4) open/write a .groovy file or a groovy script :-)
43"
44" Let me know if you like it or send me patches, so that I can improve it
45" when I have time
46
47" Quit when a syntax file was already loaded
48if !exists("main_syntax")
49  if version < 600
50    syntax clear
51  elseif exists("b:current_syntax")
52    finish
53  endif
54  " we define it here so that included files can test for it
55  let main_syntax='groovy'
56endif
57
58" don't use standard HiLink, it will not work with included syntax files
59if version < 508
60  command! -nargs=+ GroovyHiLink hi link <args>
61else
62  command! -nargs=+ GroovyHiLink hi def link <args>
63endif
64
65" ##########################
66" Java stuff taken from java.vim
67" some characters that cannot be in a groovy program (outside a string)
68" syn match groovyError "[\\@`]"
69"syn match groovyError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/"
70"syn match groovyOK "\.\.\."
71
72" keyword definitions
73syn keyword groovyExternal        native package
74syn match groovyExternal          "\<import\(\s\+static\>\)\?"
75syn keyword groovyError           goto const
76syn keyword groovyConditional     if else switch
77syn keyword groovyRepeat          while for do
78syn keyword groovyBoolean         true false
79syn keyword groovyConstant        null
80syn keyword groovyTypedef         this super
81syn keyword groovyOperator        new instanceof
82syn keyword groovyType            boolean char byte short int long float double
83syn keyword groovyType            void
84syn keyword groovyType		  Integer Double Date Boolean Float String Array Vector List
85syn keyword groovyStatement       return
86syn keyword groovyStorageClass    static synchronized transient volatile final strictfp serializable
87syn keyword groovyExceptions      throw try catch finally
88syn keyword groovyAssert          assert
89syn keyword groovyMethodDecl      synchronized throws
90syn keyword groovyClassDecl       extends implements interface
91" to differentiate the keyword class from MyClass.class we use a match here
92syn match   groovyTypedef         "\.\s*\<class\>"ms=s+1
93syn keyword groovyClassDecl         enum
94syn match   groovyClassDecl       "^class\>"
95syn match   groovyClassDecl       "[^.]\s*\<class\>"ms=s+1
96syn keyword groovyBranch          break continue nextgroup=groovyUserLabelRef skipwhite
97syn match   groovyUserLabelRef    "\k\+" contained
98syn keyword groovyScopeDecl       public protected private abstract
99
100
101if exists("groovy_highlight_groovy_lang_ids") || exists("groovy_highlight_groovy_lang") || exists("groovy_highlight_all")
102  " groovy.lang.*
103  syn keyword groovyLangClass  Closure MetaMethod GroovyObject
104
105  syn match groovyJavaLangClass "\<System\>"
106  syn keyword groovyJavaLangClass  Cloneable Comparable Runnable Serializable Boolean Byte Class Object
107  syn keyword groovyJavaLangClass  Character CharSequence ClassLoader Compiler
108  " syn keyword groovyJavaLangClass  Integer Double Float Long
109  syn keyword groovyJavaLangClass  InheritableThreadLocal Math Number Object Package Process
110  syn keyword groovyJavaLangClass  Runtime RuntimePermission InheritableThreadLocal
111  syn keyword groovyJavaLangClass  SecurityManager Short StrictMath StackTraceElement
112  syn keyword groovyJavaLangClass  StringBuffer Thread ThreadGroup
113  syn keyword groovyJavaLangClass  ThreadLocal Throwable Void ArithmeticException
114  syn keyword groovyJavaLangClass  ArrayIndexOutOfBoundsException AssertionError
115  syn keyword groovyJavaLangClass  ArrayStoreException ClassCastException
116  syn keyword groovyJavaLangClass  ClassNotFoundException
117  syn keyword groovyJavaLangClass  CloneNotSupportedException Exception
118  syn keyword groovyJavaLangClass  IllegalAccessException
119  syn keyword groovyJavaLangClass  IllegalArgumentException
120  syn keyword groovyJavaLangClass  IllegalMonitorStateException
121  syn keyword groovyJavaLangClass  IllegalStateException
122  syn keyword groovyJavaLangClass  IllegalThreadStateException
123  syn keyword groovyJavaLangClass  IndexOutOfBoundsException
124  syn keyword groovyJavaLangClass  InstantiationException InterruptedException
125  syn keyword groovyJavaLangClass  NegativeArraySizeException NoSuchFieldException
126  syn keyword groovyJavaLangClass  NoSuchMethodException NullPointerException
127  syn keyword groovyJavaLangClass  NumberFormatException RuntimeException
128  syn keyword groovyJavaLangClass  SecurityException StringIndexOutOfBoundsException
129  syn keyword groovyJavaLangClass  UnsupportedOperationException
130  syn keyword groovyJavaLangClass  AbstractMethodError ClassCircularityError
131  syn keyword groovyJavaLangClass  ClassFormatError Error ExceptionInInitializerError
132  syn keyword groovyJavaLangClass  IllegalAccessError InstantiationError
133  syn keyword groovyJavaLangClass  IncompatibleClassChangeError InternalError
134  syn keyword groovyJavaLangClass  LinkageError NoClassDefFoundError
135  syn keyword groovyJavaLangClass  NoSuchFieldError NoSuchMethodError
136  syn keyword groovyJavaLangClass  OutOfMemoryError StackOverflowError
137  syn keyword groovyJavaLangClass  ThreadDeath UnknownError UnsatisfiedLinkError
138  syn keyword groovyJavaLangClass  UnsupportedClassVersionError VerifyError
139  syn keyword groovyJavaLangClass  VirtualMachineError
140
141  syn keyword groovyJavaLangObject clone equals finalize getClass hashCode
142  syn keyword groovyJavaLangObject notify notifyAll toString wait
143
144  GroovyHiLink groovyLangClass                   groovyConstant
145  GroovyHiLink groovyJavaLangClass               groovyExternal
146  GroovyHiLink groovyJavaLangObject              groovyConstant
147  syn cluster groovyTop add=groovyJavaLangObject,groovyJavaLangClass,groovyLangClass
148  syn cluster groovyClasses add=groovyJavaLangClass,groovyLangClass
149endif
150
151
152" Groovy stuff
153syn match groovyOperator "\.\."
154syn match groovyOperator "<\{2,3}"
155syn match groovyOperator ">\{2,3}"
156syn match groovyOperator "->"
157syn match groovyExternal		'^#!.*[/\\]groovy\>'
158syn match groovyExceptions        "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
159
160" Groovy JDK stuff
161syn keyword groovyJDKBuiltin    as def in
162syn keyword groovyJDKOperOverl  div minus plus abs round power multiply
163syn keyword groovyJDKMethods 	each call inject sort print println
164syn keyword groovyJDKMethods    getAt putAt size push pop toList getText writeLine eachLine readLines
165syn keyword groovyJDKMethods    withReader withStream withWriter withPrintWriter write read leftShift
166syn keyword groovyJDKMethods    withWriterAppend readBytes splitEachLine
167syn keyword groovyJDKMethods    newInputStream newOutputStream newPrintWriter newReader newWriter
168syn keyword groovyJDKMethods    compareTo next previous isCase
169syn keyword groovyJDKMethods    times step toInteger upto any collect dump every find findAll grep
170syn keyword groovyJDKMethods    inspect invokeMethods join
171syn keyword groovyJDKMethods    getErr getIn getOut waitForOrKill
172syn keyword groovyJDKMethods    count tokenize asList flatten immutable intersect reverse reverseEach
173syn keyword groovyJDKMethods    subMap append asWritable eachByte eachLine eachFile
174syn cluster groovyTop add=groovyJDKBuiltin,groovyJDKOperOverl,groovyJDKMethods
175
176" no useful I think, so I comment it..
177"if filereadable(expand("<sfile>:p:h")."/groovyid.vim")
178 " source <sfile>:p:h/groovyid.vim
179"endif
180
181if exists("groovy_space_errors")
182  if !exists("groovy_no_trail_space_error")
183    syn match   groovySpaceError  "\s\+$"
184  endif
185  if !exists("groovy_no_tab_space_error")
186    syn match   groovySpaceError  " \+\t"me=e-1
187  endif
188endif
189
190" it is a better case construct than java.vim to match groovy syntax
191syn region  groovyLabelRegion     transparent matchgroup=groovyLabel start="\<case\>" matchgroup=NONE end=":\|$" contains=groovyNumber,groovyString,groovyLangClass,groovyJavaLangClass
192syn match   groovyUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=groovyLabel
193syn keyword groovyLabel           default
194
195if !exists("groovy_allow_cpp_keywords")
196  syn keyword groovyError auto delete extern friend inline redeclared
197  syn keyword groovyError register signed sizeof struct template typedef union
198  syn keyword groovyError unsigned operator
199endif
200
201" The following cluster contains all groovy groups except the contained ones
202syn cluster groovyTop add=groovyExternal,groovyError,groovyError,groovyBranch,groovyLabelRegion,groovyLabel,groovyConditional,groovyRepeat,groovyBoolean,groovyConstant,groovyTypedef,groovyOperator,groovyType,groovyType,groovyStatement,groovyStorageClass,groovyAssert,groovyExceptions,groovyMethodDecl,groovyClassDecl,groovyClassDecl,groovyClassDecl,groovyScopeDecl,groovyError,groovyError2,groovyUserLabel,groovyLangObject
203
204
205" Comments
206syn keyword groovyTodo             contained TODO FIXME XXX
207if exists("groovy_comment_strings")
208  syn region  groovyCommentString    contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=groovySpecial,groovyCommentStar,groovySpecialChar,@Spell
209  syn region  groovyComment2String   contained start=+"+  end=+$\|"+  contains=groovySpecial,groovySpecialChar,@Spell
210  syn match   groovyCommentCharacter contained "'\\[^']\{1,6\}'" contains=groovySpecialChar
211  syn match   groovyCommentCharacter contained "'\\''" contains=groovySpecialChar
212  syn match   groovyCommentCharacter contained "'[^\\]'"
213  syn cluster groovyCommentSpecial add=groovyCommentString,groovyCommentCharacter,groovyNumber
214  syn cluster groovyCommentSpecial2 add=groovyComment2String,groovyCommentCharacter,groovyNumber
215endif
216syn region  groovyComment          start="/\*"  end="\*/" contains=@groovyCommentSpecial,groovyTodo,@Spell
217syn match   groovyCommentStar      contained "^\s*\*[^/]"me=e-1
218syn match   groovyCommentStar      contained "^\s*\*$"
219syn match   groovyLineComment      "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
220syn match   groovyLineComment      "#.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
221GroovyHiLink groovyCommentString groovyString
222GroovyHiLink groovyComment2String groovyString
223GroovyHiLink groovyCommentCharacter groovyCharacter
224
225syn cluster groovyTop add=groovyComment,groovyLineComment
226
227if !exists("groovy_ignore_groovydoc") && main_syntax != 'jsp'
228  syntax case ignore
229  " syntax coloring for groovydoc comments (HTML)
230  " syntax include @groovyHtml <sfile>:p:h/html.vim
231   syntax include @groovyHtml runtime! syntax/html.vim
232  unlet b:current_syntax
233  syntax spell default  " added by Bram
234  syn region  groovyDocComment    start="/\*\*"  end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell
235  syn region  groovyCommentTitle  contained matchgroup=groovyDocComment start="/\*\*"   matchgroup=groovyCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@groovyHtml,groovyCommentStar,groovyTodo,@Spell,groovyDocTags
236
237  syn region groovyDocTags  contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}"
238  syn match  groovyDocTags  contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=groovyDocParam
239  syn match  groovyDocParam contained "\s\S\+"
240  syn match  groovyDocTags  contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
241  syntax case match
242endif
243
244" match the special comment /**/
245syn match   groovyComment          "/\*\*/"
246
247" Strings and constants
248syn match   groovySpecialError     contained "\\."
249syn match   groovySpecialCharError contained "[^']"
250syn match   groovySpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
251syn region  groovyString          start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
252syn region  groovyString          start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell
253syn region  groovyString          start=+"""+ end=+"""+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
254syn region  groovyString          start=+'''+ end=+'''+ contains=groovySpecialChar,groovySpecialError,@Spell
255" syn region groovyELExpr start=+${+ end=+}+ keepend contained
256 syn match groovyELExpr /\${.\{-}}/ contained
257GroovyHiLink groovyELExpr Identifier
258
259" TODO: better matching. I am waiting to understand how it really works in groovy
260" syn region  groovyClosureParamsBraces          start=+|+ end=+|+ contains=groovyClosureParams
261" syn match groovyClosureParams	"[ a-zA-Z0-9_*]\+" contained
262" GroovyHiLink groovyClosureParams Identifier
263
264" next line disabled, it can cause a crash for a long line
265"syn match   groovyStringError      +"\([^"\\]\|\\.\)*$+
266
267" disabled: in groovy strings or characters are written the same
268" syn match   groovyCharacter        "'[^']*'" contains=groovySpecialChar,groovySpecialCharError
269" syn match   groovyCharacter        "'\\''" contains=groovySpecialChar
270" syn match   groovyCharacter        "'[^\\]'"
271syn match   groovyNumber           "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
272syn match   groovyNumber           "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
273syn match   groovyNumber           "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
274syn match   groovyNumber           "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
275
276" unicode characters
277syn match   groovySpecial "\\u\d\{4\}"
278
279syn cluster groovyTop add=groovyString,groovyCharacter,groovyNumber,groovySpecial,groovyStringError
280
281if exists("groovy_highlight_functions")
282  if groovy_highlight_functions == "indent"
283    syn match  groovyFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
284    syn region groovyFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
285    syn match  groovyFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
286    syn region groovyFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
287  else
288    " This line catches method declarations at any indentation>0, but it assumes
289    " two things:
290    "   1. class names are always capitalized (ie: Button)
291    "   2. method names are never capitalized (except constructors, of course)
292    syn region groovyFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,groovyComment,groovyLineComment,@groovyClasses
293  endif
294  syn match  groovyBraces  "[{}]"
295  syn cluster groovyTop add=groovyFuncDef,groovyBraces
296endif
297
298if exists("groovy_highlight_debug")
299
300  " Strings and constants
301  syn match   groovyDebugSpecial          contained "\\\d\d\d\|\\."
302  syn region  groovyDebugString           contained start=+"+  end=+"+  contains=groovyDebugSpecial
303  syn match   groovyDebugStringError      +"\([^"\\]\|\\.\)*$+
304  syn match   groovyDebugCharacter        contained "'[^\\]'"
305  syn match   groovyDebugSpecialCharacter contained "'\\.'"
306  syn match   groovyDebugSpecialCharacter contained "'\\''"
307  syn match   groovyDebugNumber           contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
308  syn match   groovyDebugNumber           contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
309  syn match   groovyDebugNumber           contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
310  syn match   groovyDebugNumber           contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
311  syn keyword groovyDebugBoolean          contained true false
312  syn keyword groovyDebugType             contained null this super
313  syn region groovyDebugParen  start=+(+ end=+)+ contained contains=groovyDebug.*,groovyDebugParen
314
315  " to make this work you must define the highlighting for these groups
316  syn match groovyDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
317  syn match groovyDebug "\<p\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
318  syn match groovyDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
319  syn match groovyDebug "\<trace[SL]\=\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
320
321  syn cluster groovyTop add=groovyDebug
322
323  if version >= 508 || !exists("did_c_syn_inits")
324    GroovyHiLink groovyDebug                 Debug
325    GroovyHiLink groovyDebugString           DebugString
326    GroovyHiLink groovyDebugStringError      groovyError
327    GroovyHiLink groovyDebugType             DebugType
328    GroovyHiLink groovyDebugBoolean          DebugBoolean
329    GroovyHiLink groovyDebugNumber           Debug
330    GroovyHiLink groovyDebugSpecial          DebugSpecial
331    GroovyHiLink groovyDebugSpecialCharacter DebugSpecial
332    GroovyHiLink groovyDebugCharacter        DebugString
333    GroovyHiLink groovyDebugParen            Debug
334
335    GroovyHiLink DebugString               String
336    GroovyHiLink DebugSpecial              Special
337    GroovyHiLink DebugBoolean              Boolean
338    GroovyHiLink DebugType                 Type
339  endif
340endif
341
342" Match all Exception classes
343syn match groovyExceptions        "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
344
345
346if !exists("groovy_minlines")
347  let groovy_minlines = 10
348endif
349exec "syn sync ccomment groovyComment minlines=" . groovy_minlines
350
351
352" ###################
353" Groovy stuff
354" syn match groovyOperator		"|[ ,a-zA-Z0-9_*]\+|"
355
356" All groovy valid tokens
357" syn match groovyTokens ";\|,\|<=>\|<>\|:\|:=\|>\|>=\|=\|==\|<\|<=\|!=\|/\|/=\|\.\.|\.\.\.\|\~=\|\~=="
358" syn match groovyTokens "\*=\|&\|&=\|\*\|->\|\~\|+\|-\|/\|?\|<<<\|>>>\|<<\|>>"
359
360" Must put explicit these ones because groovy.vim mark them as errors otherwise
361" syn match groovyTokens "<=>\|<>\|==\~"
362"syn cluster groovyTop add=groovyTokens
363
364" Mark these as operators
365
366" Hightlight brackets
367" syn match  groovyBraces		"[{}]"
368" syn match  groovyBraces		"[\[\]]"
369" syn match  groovyBraces		"[\|]"
370
371if exists("groovy_mark_braces_in_parens_as_errors")
372  syn match groovyInParen          contained "[{}]"
373  GroovyHiLink groovyInParen        groovyError
374  syn cluster groovyTop add=groovyInParen
375endif
376
377" catch errors caused by wrong parenthesis
378syn region  groovyParenT  transparent matchgroup=groovyParen  start="("  end=")" contains=@groovyTop,groovyParenT1
379syn region  groovyParenT1 transparent matchgroup=groovyParen1 start="(" end=")" contains=@groovyTop,groovyParenT2 contained
380syn region  groovyParenT2 transparent matchgroup=groovyParen2 start="(" end=")" contains=@groovyTop,groovyParenT  contained
381syn match   groovyParenError       ")"
382GroovyHiLink groovyParenError       groovyError
383
384" catch errors caused by wrong square parenthesis
385syn region  groovyParenT  transparent matchgroup=groovyParen  start="\["  end="\]" contains=@groovyTop,groovyParenT1
386syn region  groovyParenT1 transparent matchgroup=groovyParen1 start="\[" end="\]" contains=@groovyTop,groovyParenT2 contained
387syn region  groovyParenT2 transparent matchgroup=groovyParen2 start="\[" end="\]" contains=@groovyTop,groovyParenT  contained
388syn match   groovyParenError       "\]"
389
390" ###############################
391" java.vim default highlighting
392if version >= 508 || !exists("did_groovy_syn_inits")
393  if version < 508
394    let did_groovy_syn_inits = 1
395  endif
396  GroovyHiLink groovyFuncDef		Function
397  GroovyHiLink groovyBraces		Function
398  GroovyHiLink groovyBranch		Conditional
399  GroovyHiLink groovyUserLabelRef	groovyUserLabel
400  GroovyHiLink groovyLabel		Label
401  GroovyHiLink groovyUserLabel		Label
402  GroovyHiLink groovyConditional	Conditional
403  GroovyHiLink groovyRepeat		Repeat
404  GroovyHiLink groovyExceptions		Exception
405  GroovyHiLink groovyAssert 		Statement
406  GroovyHiLink groovyStorageClass	StorageClass
407  GroovyHiLink groovyMethodDecl		groovyStorageClass
408  GroovyHiLink groovyClassDecl		groovyStorageClass
409  GroovyHiLink groovyScopeDecl		groovyStorageClass
410  GroovyHiLink groovyBoolean		Boolean
411  GroovyHiLink groovySpecial		Special
412  GroovyHiLink groovySpecialError	Error
413  GroovyHiLink groovySpecialCharError	Error
414  GroovyHiLink groovyString		String
415  GroovyHiLink groovyCharacter		Character
416  GroovyHiLink groovySpecialChar	SpecialChar
417  GroovyHiLink groovyNumber		Number
418  GroovyHiLink groovyError		Error
419  GroovyHiLink groovyStringError	Error
420  GroovyHiLink groovyStatement		Statement
421  GroovyHiLink groovyOperator		Operator
422  GroovyHiLink groovyComment		Comment
423  GroovyHiLink groovyDocComment		Comment
424  GroovyHiLink groovyLineComment	Comment
425  GroovyHiLink groovyConstant		Constant
426  GroovyHiLink groovyTypedef		Typedef
427  GroovyHiLink groovyTodo		Todo
428
429  GroovyHiLink groovyCommentTitle	SpecialComment
430  GroovyHiLink groovyDocTags		Special
431  GroovyHiLink groovyDocParam		Function
432  GroovyHiLink groovyCommentStar	groovyComment
433
434  GroovyHiLink groovyType		Type
435  GroovyHiLink groovyExternal		Include
436
437  GroovyHiLink htmlComment		Special
438  GroovyHiLink htmlCommentPart		Special
439  GroovyHiLink groovySpaceError		Error
440  GroovyHiLink groovyJDKBuiltin         Special
441  GroovyHiLink groovyJDKOperOverl       Operator
442  GroovyHiLink groovyJDKMethods         Function
443endif
444
445delcommand GroovyHiLink
446
447
448let b:current_syntax = "groovy"
449if main_syntax == 'groovy'
450  unlet main_syntax
451endif
452
453let b:spell_options="contained"
454
455" vim: ts=8
456