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