Fix placement of auxiliary IM window for Core Text
[MacVim.git] / runtime / syntax / groovy.vim
blobd2f34968b6312f58901f3dee247b1708b41d82bf
1 " Vim syntax file
2 " Language:     Groovy
3 " Maintainer:   Alessio Pace <billy.corgan@tiscali.it>
4 " Version:      0.1.9b
5 " URL:    http://www.vim.org/scripts/script.php?script_id=945   
6 " Last Change:  6/4/2004
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 :-)
14 " Relies on html.vim
16 " For version 5.x: Clear all syntax items
17 " For version 6.x: Quit when a syntax file was already loaded
19 " HOWTO USE IT (INSTALL):
20 " [groovy is still not recognized by vim! :-( ]
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:
26 " au BufNewFile,BufRead *.groovy  setf groovy
27 " in the global vim filetype.vim file or inside $HOME/.vim/filetype.vim
29 " 3) add this part to recognize by content groovy script (no extension needed :-)
31 "  if did_filetype()
32 "    finish
33 "  endif
34 "  if getline(1) =~ '^#!.*[/\\]groovy\>'
35 "    setf groovy
36 "  endif
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 :-)
42 " Let me know if you like it or send me patches, so that I can improve it
43 " when I have time
45 " Quit when a syntax file was already loaded
46 if !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'
54 endif
56 " don't use standard HiLink, it will not work with included syntax files
57 if version < 508
58   command! -nargs=+ GroovyHiLink hi link <args>
59 else
60   command! -nargs=+ GroovyHiLink hi def link <args>
61 endif
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 "\.\.\."
70 " keyword definitions
71 syn keyword groovyExternal        native package
72 syn match groovyExternal          "\<import\(\s\+static\>\)\?"
73 syn keyword groovyError           goto const
74 syn keyword groovyConditional     if else switch
75 syn keyword groovyRepeat          while for do
76 syn keyword groovyBoolean         true false
77 syn keyword groovyConstant        null
78 syn keyword groovyTypedef         this super
79 syn keyword groovyOperator        new instanceof
80 syn keyword groovyType            boolean char byte short int long float double
81 syn keyword groovyType            void
82 syn keyword groovyType            Integer Double Date Boolean Float String Array Vector List
83 syn keyword groovyStatement       return
84 syn keyword groovyStorageClass    static synchronized transient volatile final strictfp serializable
85 syn keyword groovyExceptions      throw try catch finally
86 syn keyword groovyAssert          assert
87 syn keyword groovyMethodDecl      synchronized throws
88 syn keyword groovyClassDecl       extends implements interface
89 " to differentiate the keyword class from MyClass.class we use a match here
90 syn match   groovyTypedef         "\.\s*\<class\>"ms=s+1
91 syn keyword groovyClassDecl         enum
92 syn match   groovyClassDecl       "^class\>"
93 syn match   groovyClassDecl       "[^.]\s*\<class\>"ms=s+1
94 syn keyword groovyBranch          break continue nextgroup=groovyUserLabelRef skipwhite
95 syn match   groovyUserLabelRef    "\k\+" contained
96 syn keyword groovyScopeDecl       public protected private abstract
99 if 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
139   syn keyword groovyJavaLangObject clone equals finalize getClass hashCode
140   syn keyword groovyJavaLangObject notify notifyAll toString wait
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
147 endif
150 " Groovy stuff
151 syn match groovyOperator "\.\."
152 syn match groovyOperator "<\{2,3}"
153 syn match groovyOperator ">\{2,3}"
154 syn match groovyOperator "->"
155 syn match groovyExternal                '^#!.*[/\\]groovy\>'
156 syn match groovyExceptions        "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
158 " Groovy JDK stuff
159 syn keyword groovyJDKBuiltin    as def in
160 syn keyword groovyJDKOperOverl  div minus plus abs round power multiply 
161 syn keyword groovyJDKMethods    each call inject sort print println 
162 syn keyword groovyJDKMethods    getAt putAt size push pop toList getText writeLine eachLine readLines
163 syn keyword groovyJDKMethods    withReader withStream withWriter withPrintWriter write read leftShift 
164 syn keyword groovyJDKMethods    withWriterAppend readBytes splitEachLine
165 syn keyword groovyJDKMethods    newInputStream newOutputStream newPrintWriter newReader newWriter 
166 syn keyword groovyJDKMethods    compareTo next previous isCase 
167 syn keyword groovyJDKMethods    times step toInteger upto any collect dump every find findAll grep
168 syn keyword groovyJDKMethods    inspect invokeMethods join 
169 syn keyword groovyJDKMethods    getErr getIn getOut waitForOrKill
170 syn keyword groovyJDKMethods    count tokenize asList flatten immutable intersect reverse reverseEach
171 syn keyword groovyJDKMethods    subMap append asWritable eachByte eachLine eachFile 
172 syn cluster groovyTop add=groovyJDKBuiltin,groovyJDKOperOverl,groovyJDKMethods
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
179 if 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
186 endif
188 " it is a better case construct than java.vim to match groovy syntax
189 syn region  groovyLabelRegion     transparent matchgroup=groovyLabel start="\<case\>" matchgroup=NONE end=":\|$" contains=groovyNumber,groovyString,groovyLangClass,groovyJavaLangClass
190 syn match   groovyUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=groovyLabel
191 syn keyword groovyLabel           default
193 if !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
197 endif
199 " The following cluster contains all groovy groups except the contained ones
200 syn 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 " Comments
204 syn keyword groovyTodo             contained TODO FIXME XXX
205 if 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
213 endif
214 syn region  groovyComment          start="/\*"  end="\*/" contains=@groovyCommentSpecial,groovyTodo,@Spell
215 syn match   groovyCommentStar      contained "^\s*\*[^/]"me=e-1
216 syn match   groovyCommentStar      contained "^\s*\*$"
217 syn match   groovyLineComment      "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
218 syn match   groovyLineComment      "#.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell
219 GroovyHiLink groovyCommentString groovyString
220 GroovyHiLink groovyComment2String groovyString
221 GroovyHiLink groovyCommentCharacter groovyCharacter
223 syn cluster groovyTop add=groovyComment,groovyLineComment
225 if !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   syntax spell default  " added by Bram
232   syn region  groovyDocComment    start="/\*\*"  end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell
233   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
235   syn region groovyDocTags  contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}"
236   syn match  groovyDocTags  contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=groovyDocParam
237   syn match  groovyDocParam contained "\s\S\+"
238   syn match  groovyDocTags  contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
239   syntax case match
240 endif
242 " match the special comment /**/
243 syn match   groovyComment          "/\*\*/"
245 " Strings and constants
246 syn match   groovySpecialError     contained "\\."
247 syn match   groovySpecialCharError contained "[^']"
248 syn match   groovySpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
249 syn region  groovyString          start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
250 syn region  groovyString          start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
251 " syn region groovyELExpr start=+${+ end=+}+ keepend contained
252  syn match groovyELExpr /\${.\{-}}/ contained
253 GroovyHiLink groovyELExpr Identifier
255 " TODO: better matching. I am waiting to understand how it really works in groovy
256 " syn region  groovyClosureParamsBraces          start=+|+ end=+|+ contains=groovyClosureParams
257 " syn match groovyClosureParams "[ a-zA-Z0-9_*]\+" contained
258 " GroovyHiLink groovyClosureParams Identifier
260 " next line disabled, it can cause a crash for a long line
261 "syn match   groovyStringError      +"\([^"\\]\|\\.\)*$+
263 " disabled: in groovy strings or characters are written the same
264 " syn match   groovyCharacter        "'[^']*'" contains=groovySpecialChar,groovySpecialCharError
265 " syn match   groovyCharacter        "'\\''" contains=groovySpecialChar
266 " syn match   groovyCharacter        "'[^\\]'"
267 syn match   groovyNumber           "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
268 syn match   groovyNumber           "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
269 syn match   groovyNumber           "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
270 syn match   groovyNumber           "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
272 " unicode characters
273 syn match   groovySpecial "\\u\d\{4\}"
275 syn cluster groovyTop add=groovyString,groovyCharacter,groovyNumber,groovySpecial,groovyStringError
277 if exists("groovy_highlight_functions")
278   if groovy_highlight_functions == "indent"
279     syn match  groovyFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
280     syn region groovyFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
281     syn match  groovyFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
282     syn region groovyFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses
283   else
284     " This line catches method declarations at any indentation>0, but it assumes
285     " two things:
286     "   1. class names are always capitalized (ie: Button)
287     "   2. method names are never capitalized (except constructors, of course)
288     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
289   endif
290   syn match  groovyBraces  "[{}]"
291   syn cluster groovyTop add=groovyFuncDef,groovyBraces
292 endif
294 if exists("groovy_highlight_debug")
296   " Strings and constants
297   syn match   groovyDebugSpecial          contained "\\\d\d\d\|\\."
298   syn region  groovyDebugString           contained start=+"+  end=+"+  contains=groovyDebugSpecial
299   syn match   groovyDebugStringError      +"\([^"\\]\|\\.\)*$+
300   syn match   groovyDebugCharacter        contained "'[^\\]'"
301   syn match   groovyDebugSpecialCharacter contained "'\\.'"
302   syn match   groovyDebugSpecialCharacter contained "'\\''"
303   syn match   groovyDebugNumber           contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
304   syn match   groovyDebugNumber           contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
305   syn match   groovyDebugNumber           contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
306   syn match   groovyDebugNumber           contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
307   syn keyword groovyDebugBoolean          contained true false
308   syn keyword groovyDebugType             contained null this super
309   syn region groovyDebugParen  start=+(+ end=+)+ contained contains=groovyDebug.*,groovyDebugParen
311   " to make this work you must define the highlighting for these groups
312   syn match groovyDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
313   syn match groovyDebug "\<p\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
314   syn match groovyDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
315   syn match groovyDebug "\<trace[SL]\=\s*("me=e-1 contains=groovyDebug.* nextgroup=groovyDebugParen
317   syn cluster groovyTop add=groovyDebug
319   if version >= 508 || !exists("did_c_syn_inits")
320     GroovyHiLink groovyDebug                 Debug
321     GroovyHiLink groovyDebugString           DebugString
322     GroovyHiLink groovyDebugStringError      groovyError
323     GroovyHiLink groovyDebugType             DebugType
324     GroovyHiLink groovyDebugBoolean          DebugBoolean
325     GroovyHiLink groovyDebugNumber           Debug
326     GroovyHiLink groovyDebugSpecial          DebugSpecial
327     GroovyHiLink groovyDebugSpecialCharacter DebugSpecial
328     GroovyHiLink groovyDebugCharacter        DebugString
329     GroovyHiLink groovyDebugParen            Debug
330   
331     GroovyHiLink DebugString               String
332     GroovyHiLink DebugSpecial              Special
333     GroovyHiLink DebugBoolean              Boolean
334     GroovyHiLink DebugType                 Type
335   endif
336 endif
338 " Match all Exception classes 
339 syn match groovyExceptions        "\<Exception\>\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>"
342 if !exists("groovy_minlines")
343   let groovy_minlines = 10
344 endif
345 exec "syn sync ccomment groovyComment minlines=" . groovy_minlines
348 " ################### 
349 " Groovy stuff
350 " syn match groovyOperator              "|[ ,a-zA-Z0-9_*]\+|"
352 " All groovy valid tokens
353 " syn match groovyTokens ";\|,\|<=>\|<>\|:\|:=\|>\|>=\|=\|==\|<\|<=\|!=\|/\|/=\|\.\.|\.\.\.\|\~=\|\~=="
354 " syn match groovyTokens "\*=\|&\|&=\|\*\|->\|\~\|+\|-\|/\|?\|<<<\|>>>\|<<\|>>"
356 " Must put explicit these ones because groovy.vim mark them as errors otherwise
357 " syn match groovyTokens "<=>\|<>\|==\~"
358 "syn cluster groovyTop add=groovyTokens
360 " Mark these as operators
362 " Hightlight brackets
363 " syn match  groovyBraces               "[{}]"
364 " syn match  groovyBraces               "[\[\]]"
365 " syn match  groovyBraces               "[\|]"
367 if exists("groovy_mark_braces_in_parens_as_errors")
368   syn match groovyInParen          contained "[{}]"
369   GroovyHiLink groovyInParen        groovyError
370   syn cluster groovyTop add=groovyInParen
371 endif
373 " catch errors caused by wrong parenthesis
374 syn region  groovyParenT  transparent matchgroup=groovyParen  start="("  end=")" contains=@groovyTop,groovyParenT1
375 syn region  groovyParenT1 transparent matchgroup=groovyParen1 start="(" end=")" contains=@groovyTop,groovyParenT2 contained
376 syn region  groovyParenT2 transparent matchgroup=groovyParen2 start="(" end=")" contains=@groovyTop,groovyParenT  contained
377 syn match   groovyParenError       ")"
378 GroovyHiLink groovyParenError       groovyError
380 " catch errors caused by wrong square parenthesis
381 syn region  groovyParenT  transparent matchgroup=groovyParen  start="\["  end="\]" contains=@groovyTop,groovyParenT1
382 syn region  groovyParenT1 transparent matchgroup=groovyParen1 start="\[" end="\]" contains=@groovyTop,groovyParenT2 contained
383 syn region  groovyParenT2 transparent matchgroup=groovyParen2 start="\[" end="\]" contains=@groovyTop,groovyParenT  contained
384 syn match   groovyParenError       "\]"
386 " ###############################
387 " java.vim default highlighting
388 if version >= 508 || !exists("did_groovy_syn_inits")
389   if version < 508
390     let did_groovy_syn_inits = 1
391   endif
392   GroovyHiLink groovyFuncDef            Function
393   GroovyHiLink groovyBraces             Function
394   GroovyHiLink groovyBranch             Conditional
395   GroovyHiLink groovyUserLabelRef       groovyUserLabel
396   GroovyHiLink groovyLabel              Label
397   GroovyHiLink groovyUserLabel          Label
398   GroovyHiLink groovyConditional        Conditional
399   GroovyHiLink groovyRepeat             Repeat
400   GroovyHiLink groovyExceptions         Exception
401   GroovyHiLink groovyAssert             Statement
402   GroovyHiLink groovyStorageClass       StorageClass
403   GroovyHiLink groovyMethodDecl         groovyStorageClass
404   GroovyHiLink groovyClassDecl          groovyStorageClass
405   GroovyHiLink groovyScopeDecl          groovyStorageClass
406   GroovyHiLink groovyBoolean            Boolean
407   GroovyHiLink groovySpecial            Special
408   GroovyHiLink groovySpecialError       Error
409   GroovyHiLink groovySpecialCharError   Error
410   GroovyHiLink groovyString             String
411   GroovyHiLink groovyCharacter          Character
412   GroovyHiLink groovySpecialChar        SpecialChar
413   GroovyHiLink groovyNumber             Number
414   GroovyHiLink groovyError              Error
415   GroovyHiLink groovyStringError        Error
416   GroovyHiLink groovyStatement          Statement
417   GroovyHiLink groovyOperator           Operator
418   GroovyHiLink groovyComment            Comment
419   GroovyHiLink groovyDocComment         Comment
420   GroovyHiLink groovyLineComment        Comment
421   GroovyHiLink groovyConstant           Constant
422   GroovyHiLink groovyTypedef            Typedef
423   GroovyHiLink groovyTodo               Todo
424   
425   GroovyHiLink groovyCommentTitle       SpecialComment
426   GroovyHiLink groovyDocTags            Special
427   GroovyHiLink groovyDocParam           Function
428   GroovyHiLink groovyCommentStar        groovyComment
429   
430   GroovyHiLink groovyType               Type
431   GroovyHiLink groovyExternal           Include
432   
433   GroovyHiLink htmlComment              Special
434   GroovyHiLink htmlCommentPart          Special
435   GroovyHiLink groovySpaceError         Error
436   GroovyHiLink groovyJDKBuiltin         Special
437   GroovyHiLink groovyJDKOperOverl       Operator
438   GroovyHiLink groovyJDKMethods         Function
439 endif
441 delcommand GroovyHiLink
444 let b:current_syntax = "groovy"
445 if main_syntax == 'groovy'
446   unlet main_syntax
447 endif
449 let b:spell_options="contained"
451 " vim: ts=8