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