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