1*071d4279SBram Moolenaar" Vim syntax file 2*071d4279SBram Moolenaar" Language: Java 3*071d4279SBram Moolenaar" Maintainer: Claudio Fleiner <[email protected]> 4*071d4279SBram Moolenaar" URL: http://www.fleiner.com/vim/syntax/java.vim 5*071d4279SBram Moolenaar" Last Change: 2004 Apr 23 6*071d4279SBram Moolenaar 7*071d4279SBram Moolenaar" Please check :help java.vim for comments on some of the options available. 8*071d4279SBram Moolenaar 9*071d4279SBram Moolenaar" Quit when a syntax file was already loaded 10*071d4279SBram Moolenaarif !exists("main_syntax") 11*071d4279SBram Moolenaar if version < 600 12*071d4279SBram Moolenaar syntax clear 13*071d4279SBram Moolenaar elseif exists("b:current_syntax") 14*071d4279SBram Moolenaar finish 15*071d4279SBram Moolenaar endif 16*071d4279SBram Moolenaar " we define it here so that included files can test for it 17*071d4279SBram Moolenaar let main_syntax='java' 18*071d4279SBram Moolenaarendif 19*071d4279SBram Moolenaar 20*071d4279SBram Moolenaar" don't use standard HiLink, it will not work with included syntax files 21*071d4279SBram Moolenaarif version < 508 22*071d4279SBram Moolenaar command! -nargs=+ JavaHiLink hi link <args> 23*071d4279SBram Moolenaarelse 24*071d4279SBram Moolenaar command! -nargs=+ JavaHiLink hi def link <args> 25*071d4279SBram Moolenaarendif 26*071d4279SBram Moolenaar 27*071d4279SBram Moolenaar" some characters that cannot be in a java program (outside a string) 28*071d4279SBram Moolenaarsyn match javaError "[\\@`]" 29*071d4279SBram Moolenaarsyn match javaError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/" 30*071d4279SBram Moolenaarsyn match javaOK "\.\.\." 31*071d4279SBram Moolenaar 32*071d4279SBram Moolenaar" use separate name so that it can be deleted in javacc.vim 33*071d4279SBram Moolenaarsyn match javaError2 "#\|=<" 34*071d4279SBram MoolenaarJavaHiLink javaError2 javaError 35*071d4279SBram Moolenaar 36*071d4279SBram Moolenaar 37*071d4279SBram Moolenaar 38*071d4279SBram Moolenaar" keyword definitions 39*071d4279SBram Moolenaarsyn keyword javaExternal native package 40*071d4279SBram Moolenaarsyn match javaExternal "\<import\(\s\+static\>\)\?" 41*071d4279SBram Moolenaarsyn keyword javaError goto const 42*071d4279SBram Moolenaarsyn keyword javaConditional if else switch 43*071d4279SBram Moolenaarsyn keyword javaRepeat while for do 44*071d4279SBram Moolenaarsyn keyword javaBoolean true false 45*071d4279SBram Moolenaarsyn keyword javaConstant null 46*071d4279SBram Moolenaarsyn keyword javaTypedef this super 47*071d4279SBram Moolenaarsyn keyword javaOperator new instanceof 48*071d4279SBram Moolenaarsyn keyword javaType boolean char byte short int long float double 49*071d4279SBram Moolenaarsyn keyword javaType void 50*071d4279SBram Moolenaarsyn keyword javaStatement return 51*071d4279SBram Moolenaarsyn keyword javaStorageClass static synchronized transient volatile final strictfp serializable 52*071d4279SBram Moolenaarsyn keyword javaExceptions throw try catch finally 53*071d4279SBram Moolenaarsyn keyword javaAssert assert 54*071d4279SBram Moolenaarsyn keyword javaMethodDecl synchronized throws 55*071d4279SBram Moolenaarsyn keyword javaClassDecl extends implements interface 56*071d4279SBram Moolenaar" to differentiate the keyword class from MyClass.class we use a match here 57*071d4279SBram Moolenaarsyn match javaTypedef "\.\s*\<class\>"ms=s+1 58*071d4279SBram Moolenaarsyn keyword javaClassDecl enum 59*071d4279SBram Moolenaarsyn match javaClassDecl "^class\>" 60*071d4279SBram Moolenaarsyn match javaClassDecl "[^.]\s*\<class\>"ms=s+1 61*071d4279SBram Moolenaarsyn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite 62*071d4279SBram Moolenaarsyn match javaUserLabelRef "\k\+" contained 63*071d4279SBram Moolenaarsyn keyword javaScopeDecl public protected private abstract 64*071d4279SBram Moolenaar 65*071d4279SBram Moolenaarif exists("java_highlight_java_lang_ids") || exists("java_highlight_java_lang") || exists("java_highlight_all") 66*071d4279SBram Moolenaar " java.lang.* 67*071d4279SBram Moolenaar syn match javaLangClass "\<System\>" 68*071d4279SBram Moolenaar syn keyword javaLangClass Cloneable Comparable Runnable Boolean Byte Class 69*071d4279SBram Moolenaar syn keyword javaLangClass Character CharSequence ClassLoader Compiler Double Float 70*071d4279SBram Moolenaar syn keyword javaLangClass Integer InheritableThreadLocal Long Math Number Object Package Process 71*071d4279SBram Moolenaar syn keyword javaLangClass Runtime RuntimePermission InheritableThreadLocal 72*071d4279SBram Moolenaar syn keyword javaLangClass SecurityManager Short String StrictMath StackTraceElement 73*071d4279SBram Moolenaar syn keyword javaLangClass StringBuffer Thread ThreadGroup 74*071d4279SBram Moolenaar syn keyword javaLangClass ThreadLocal Throwable Void ArithmeticException 75*071d4279SBram Moolenaar syn keyword javaLangClass ArrayIndexOutOfBoundsException AssertionError 76*071d4279SBram Moolenaar syn keyword javaLangClass ArrayStoreException ClassCastException 77*071d4279SBram Moolenaar syn keyword javaLangClass ClassNotFoundException 78*071d4279SBram Moolenaar syn keyword javaLangClass CloneNotSupportedException Exception 79*071d4279SBram Moolenaar syn keyword javaLangClass IllegalAccessException 80*071d4279SBram Moolenaar syn keyword javaLangClass IllegalArgumentException 81*071d4279SBram Moolenaar syn keyword javaLangClass IllegalMonitorStateException 82*071d4279SBram Moolenaar syn keyword javaLangClass IllegalStateException 83*071d4279SBram Moolenaar syn keyword javaLangClass IllegalThreadStateException 84*071d4279SBram Moolenaar syn keyword javaLangClass IndexOutOfBoundsException 85*071d4279SBram Moolenaar syn keyword javaLangClass InstantiationException InterruptedException 86*071d4279SBram Moolenaar syn keyword javaLangClass NegativeArraySizeException NoSuchFieldException 87*071d4279SBram Moolenaar syn keyword javaLangClass NoSuchMethodException NullPointerException 88*071d4279SBram Moolenaar syn keyword javaLangClass NumberFormatException RuntimeException 89*071d4279SBram Moolenaar syn keyword javaLangClass SecurityException StringIndexOutOfBoundsException 90*071d4279SBram Moolenaar syn keyword javaLangClass UnsupportedOperationException 91*071d4279SBram Moolenaar syn keyword javaLangClass AbstractMethodError ClassCircularityError 92*071d4279SBram Moolenaar syn keyword javaLangClass ClassFormatError Error ExceptionInInitializerError 93*071d4279SBram Moolenaar syn keyword javaLangClass IllegalAccessError InstantiationError 94*071d4279SBram Moolenaar syn keyword javaLangClass IncompatibleClassChangeError InternalError 95*071d4279SBram Moolenaar syn keyword javaLangClass LinkageError NoClassDefFoundError 96*071d4279SBram Moolenaar syn keyword javaLangClass NoSuchFieldError NoSuchMethodError 97*071d4279SBram Moolenaar syn keyword javaLangClass OutOfMemoryError StackOverflowError 98*071d4279SBram Moolenaar syn keyword javaLangClass ThreadDeath UnknownError UnsatisfiedLinkError 99*071d4279SBram Moolenaar syn keyword javaLangClass UnsupportedClassVersionError VerifyError 100*071d4279SBram Moolenaar syn keyword javaLangClass VirtualMachineError 101*071d4279SBram Moolenaar syn keyword javaLangObject clone equals finalize getClass hashCode 102*071d4279SBram Moolenaar syn keyword javaLangObject notify notifyAll toString wait 103*071d4279SBram Moolenaar JavaHiLink javaLangClass javaConstant 104*071d4279SBram Moolenaar JavaHiLink javaLangObject javaConstant 105*071d4279SBram Moolenaar syn cluster javaTop add=javaLangObject,javaLangClass 106*071d4279SBram Moolenaar syn cluster javaClasses add=javaLangClass 107*071d4279SBram Moolenaarendif 108*071d4279SBram Moolenaar 109*071d4279SBram Moolenaarif filereadable(expand("<sfile>:p:h")."/javaid.vim") 110*071d4279SBram Moolenaar source <sfile>:p:h/javaid.vim 111*071d4279SBram Moolenaarendif 112*071d4279SBram Moolenaar 113*071d4279SBram Moolenaarif exists("java_space_errors") 114*071d4279SBram Moolenaar if !exists("java_no_trail_space_error") 115*071d4279SBram Moolenaar syn match javaSpaceError "\s\+$" 116*071d4279SBram Moolenaar endif 117*071d4279SBram Moolenaar if !exists("java_no_tab_space_error") 118*071d4279SBram Moolenaar syn match javaSpaceError " \+\t"me=e-1 119*071d4279SBram Moolenaar endif 120*071d4279SBram Moolenaarendif 121*071d4279SBram Moolenaar 122*071d4279SBram Moolenaarsyn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":" contains=javaNumber,javaCharacter 123*071d4279SBram Moolenaarsyn match javaUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel 124*071d4279SBram Moolenaarsyn keyword javaLabel default 125*071d4279SBram Moolenaar 126*071d4279SBram Moolenaarif !exists("java_allow_cpp_keywords") 127*071d4279SBram Moolenaar syn keyword javaError auto delete extern friend inline redeclared 128*071d4279SBram Moolenaar syn keyword javaError register signed sizeof struct template typedef union 129*071d4279SBram Moolenaar syn keyword javaError unsigned operator 130*071d4279SBram Moolenaarendif 131*071d4279SBram Moolenaar 132*071d4279SBram Moolenaar" The following cluster contains all java groups except the contained ones 133*071d4279SBram Moolenaarsyn cluster javaTop add=javaExternal,javaError,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaClassDecl,javaClassDecl,javaScopeDecl,javaError,javaError2,javaUserLabel,javaLangObject 134*071d4279SBram Moolenaar 135*071d4279SBram Moolenaar 136*071d4279SBram Moolenaar" Comments 137*071d4279SBram Moolenaarsyn keyword javaTodo contained TODO FIXME XXX 138*071d4279SBram Moolenaarif exists("java_comment_strings") 139*071d4279SBram Moolenaar syn region javaCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell 140*071d4279SBram Moolenaar syn region javaComment2String contained start=+"+ end=+$\|"+ contains=javaSpecial,javaSpecialChar,@Spell 141*071d4279SBram Moolenaar syn match javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar 142*071d4279SBram Moolenaar syn match javaCommentCharacter contained "'\\''" contains=javaSpecialChar 143*071d4279SBram Moolenaar syn match javaCommentCharacter contained "'[^\\]'" 144*071d4279SBram Moolenaar syn cluster javaCommentSpecial add=javaCommentString,javaCommentCharacter,javaNumber 145*071d4279SBram Moolenaar syn cluster javaCommentSpecial2 add=javaComment2String,javaCommentCharacter,javaNumber 146*071d4279SBram Moolenaarendif 147*071d4279SBram Moolenaarsyn region javaComment start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,@Spell 148*071d4279SBram Moolenaarsyn match javaCommentStar contained "^\s*\*[^/]"me=e-1 149*071d4279SBram Moolenaarsyn match javaCommentStar contained "^\s*\*$" 150*071d4279SBram Moolenaarsyn match javaLineComment "//.*" contains=@javaCommentSpecial2,javaTodo,@Spell 151*071d4279SBram MoolenaarJavaHiLink javaCommentString javaString 152*071d4279SBram MoolenaarJavaHiLink javaComment2String javaString 153*071d4279SBram MoolenaarJavaHiLink javaCommentCharacter javaCharacter 154*071d4279SBram Moolenaar 155*071d4279SBram Moolenaarsyn cluster javaTop add=javaComment,javaLineComment 156*071d4279SBram Moolenaar 157*071d4279SBram Moolenaarif !exists("java_ignore_javadoc") && main_syntax != 'jsp' 158*071d4279SBram Moolenaar syntax case ignore 159*071d4279SBram Moolenaar " syntax coloring for javadoc comments (HTML) 160*071d4279SBram Moolenaar syntax include @javaHtml <sfile>:p:h/html.vim 161*071d4279SBram Moolenaar unlet b:current_syntax 162*071d4279SBram Moolenaar syn region javaDocComment start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaTodo,@Spell 163*071d4279SBram Moolenaar syn region javaCommentTitle contained matchgroup=javaDocComment start="/\*\*" matchgroup=javaCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,@Spell,javaDocTags 164*071d4279SBram Moolenaar 165*071d4279SBram Moolenaar syn region javaDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}" 166*071d4279SBram Moolenaar syn match javaDocTags contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=javaDocParam 167*071d4279SBram Moolenaar syn match javaDocParam contained "\s\S\+" 168*071d4279SBram Moolenaar syn match javaDocTags contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>" 169*071d4279SBram Moolenaar syntax case match 170*071d4279SBram Moolenaarendif 171*071d4279SBram Moolenaar 172*071d4279SBram Moolenaar" match the special comment /**/ 173*071d4279SBram Moolenaarsyn match javaComment "/\*\*/" 174*071d4279SBram Moolenaar 175*071d4279SBram Moolenaar" Strings and constants 176*071d4279SBram Moolenaarsyn match javaSpecialError contained "\\." 177*071d4279SBram Moolenaarsyn match javaSpecialCharError contained "[^']" 178*071d4279SBram Moolenaarsyn match javaSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)" 179*071d4279SBram Moolenaarsyn region javaString start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell 180*071d4279SBram Moolenaar" next line disabled, it can cause a crash for a long line 181*071d4279SBram Moolenaar"syn match javaStringError +"\([^"\\]\|\\.\)*$+ 182*071d4279SBram Moolenaarsyn match javaCharacter "'[^']*'" contains=javaSpecialChar,javaSpecialCharError 183*071d4279SBram Moolenaarsyn match javaCharacter "'\\''" contains=javaSpecialChar 184*071d4279SBram Moolenaarsyn match javaCharacter "'[^\\]'" 185*071d4279SBram Moolenaarsyn match javaNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" 186*071d4279SBram Moolenaarsyn match javaNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" 187*071d4279SBram Moolenaarsyn match javaNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" 188*071d4279SBram Moolenaarsyn match javaNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" 189*071d4279SBram Moolenaar 190*071d4279SBram Moolenaar" unicode characters 191*071d4279SBram Moolenaarsyn match javaSpecial "\\u\d\{4\}" 192*071d4279SBram Moolenaar 193*071d4279SBram Moolenaarsyn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError 194*071d4279SBram Moolenaar 195*071d4279SBram Moolenaarif exists("java_highlight_functions") 196*071d4279SBram Moolenaar if java_highlight_functions == "indent" 197*071d4279SBram Moolenaar syn match javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses 198*071d4279SBram Moolenaar syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses 199*071d4279SBram Moolenaar syn match javaFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses 200*071d4279SBram Moolenaar syn region javaFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses 201*071d4279SBram Moolenaar else 202*071d4279SBram Moolenaar " This line catches method declarations at any indentation>0, but it assumes 203*071d4279SBram Moolenaar " two things: 204*071d4279SBram Moolenaar " 1. class names are always capitalized (ie: Button) 205*071d4279SBram Moolenaar " 2. method names are never capitalized (except constructors, of course) 206*071d4279SBram Moolenaar syn region javaFuncDef 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=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses 207*071d4279SBram Moolenaar endif 208*071d4279SBram Moolenaar syn match javaBraces "[{}]" 209*071d4279SBram Moolenaar syn cluster javaTop add=javaFuncDef,javaBraces 210*071d4279SBram Moolenaarendif 211*071d4279SBram Moolenaar 212*071d4279SBram Moolenaarif exists("java_highlight_debug") 213*071d4279SBram Moolenaar 214*071d4279SBram Moolenaar " Strings and constants 215*071d4279SBram Moolenaar syn match javaDebugSpecial contained "\\\d\d\d\|\\." 216*071d4279SBram Moolenaar syn region javaDebugString contained start=+"+ end=+"+ contains=javaDebugSpecial 217*071d4279SBram Moolenaar syn match javaDebugStringError +"\([^"\\]\|\\.\)*$+ 218*071d4279SBram Moolenaar syn match javaDebugCharacter contained "'[^\\]'" 219*071d4279SBram Moolenaar syn match javaDebugSpecialCharacter contained "'\\.'" 220*071d4279SBram Moolenaar syn match javaDebugSpecialCharacter contained "'\\''" 221*071d4279SBram Moolenaar syn match javaDebugNumber contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" 222*071d4279SBram Moolenaar syn match javaDebugNumber contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" 223*071d4279SBram Moolenaar syn match javaDebugNumber contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" 224*071d4279SBram Moolenaar syn match javaDebugNumber contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" 225*071d4279SBram Moolenaar syn keyword javaDebugBoolean contained true false 226*071d4279SBram Moolenaar syn keyword javaDebugType contained null this super 227*071d4279SBram Moolenaar syn region javaDebugParen start=+(+ end=+)+ contained contains=javaDebug.*,javaDebugParen 228*071d4279SBram Moolenaar 229*071d4279SBram Moolenaar " to make this work you must define the highlighting for these groups 230*071d4279SBram Moolenaar syn match javaDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen 231*071d4279SBram Moolenaar syn match javaDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen 232*071d4279SBram Moolenaar syn match javaDebug "\<trace[SL]\=\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen 233*071d4279SBram Moolenaar 234*071d4279SBram Moolenaar syn cluster javaTop add=javaDebug 235*071d4279SBram Moolenaar 236*071d4279SBram Moolenaar if version >= 508 || !exists("did_c_syn_inits") 237*071d4279SBram Moolenaar JavaHiLink javaDebug Debug 238*071d4279SBram Moolenaar JavaHiLink javaDebugString DebugString 239*071d4279SBram Moolenaar JavaHiLink javaDebugStringError javaError 240*071d4279SBram Moolenaar JavaHiLink javaDebugType DebugType 241*071d4279SBram Moolenaar JavaHiLink javaDebugBoolean DebugBoolean 242*071d4279SBram Moolenaar JavaHiLink javaDebugNumber Debug 243*071d4279SBram Moolenaar JavaHiLink javaDebugSpecial DebugSpecial 244*071d4279SBram Moolenaar JavaHiLink javaDebugSpecialCharacter DebugSpecial 245*071d4279SBram Moolenaar JavaHiLink javaDebugCharacter DebugString 246*071d4279SBram Moolenaar JavaHiLink javaDebugParen Debug 247*071d4279SBram Moolenaar 248*071d4279SBram Moolenaar JavaHiLink DebugString String 249*071d4279SBram Moolenaar JavaHiLink DebugSpecial Special 250*071d4279SBram Moolenaar JavaHiLink DebugBoolean Boolean 251*071d4279SBram Moolenaar JavaHiLink DebugType Type 252*071d4279SBram Moolenaar endif 253*071d4279SBram Moolenaarendif 254*071d4279SBram Moolenaar 255*071d4279SBram Moolenaarif exists("java_mark_braces_in_parens_as_errors") 256*071d4279SBram Moolenaar syn match javaInParen contained "[{}]" 257*071d4279SBram Moolenaar JavaHiLink javaInParen javaError 258*071d4279SBram Moolenaar syn cluster javaTop add=javaInParen 259*071d4279SBram Moolenaarendif 260*071d4279SBram Moolenaar 261*071d4279SBram Moolenaar" catch errors caused by wrong parenthesis 262*071d4279SBram Moolenaarsyn region javaParenT transparent matchgroup=javaParen start="(" end=")" contains=@javaTop,javaParenT1 263*071d4279SBram Moolenaarsyn region javaParenT1 transparent matchgroup=javaParen1 start="(" end=")" contains=@javaTop,javaParenT2 contained 264*071d4279SBram Moolenaarsyn region javaParenT2 transparent matchgroup=javaParen2 start="(" end=")" contains=@javaTop,javaParenT contained 265*071d4279SBram Moolenaarsyn match javaParenError ")" 266*071d4279SBram MoolenaarJavaHiLink javaParenError javaError 267*071d4279SBram Moolenaar 268*071d4279SBram Moolenaarif !exists("java_minlines") 269*071d4279SBram Moolenaar let java_minlines = 10 270*071d4279SBram Moolenaarendif 271*071d4279SBram Moolenaarexec "syn sync ccomment javaComment minlines=" . java_minlines 272*071d4279SBram Moolenaar 273*071d4279SBram Moolenaar" The default highlighting. 274*071d4279SBram Moolenaarif version >= 508 || !exists("did_java_syn_inits") 275*071d4279SBram Moolenaar if version < 508 276*071d4279SBram Moolenaar let did_java_syn_inits = 1 277*071d4279SBram Moolenaar endif 278*071d4279SBram Moolenaar JavaHiLink javaFuncDef Function 279*071d4279SBram Moolenaar JavaHiLink javaBraces Function 280*071d4279SBram Moolenaar JavaHiLink javaBranch Conditional 281*071d4279SBram Moolenaar JavaHiLink javaUserLabelRef javaUserLabel 282*071d4279SBram Moolenaar JavaHiLink javaLabel Label 283*071d4279SBram Moolenaar JavaHiLink javaUserLabel Label 284*071d4279SBram Moolenaar JavaHiLink javaConditional Conditional 285*071d4279SBram Moolenaar JavaHiLink javaRepeat Repeat 286*071d4279SBram Moolenaar JavaHiLink javaExceptions Exception 287*071d4279SBram Moolenaar JavaHiLink javaAssert Statement 288*071d4279SBram Moolenaar JavaHiLink javaStorageClass StorageClass 289*071d4279SBram Moolenaar JavaHiLink javaMethodDecl javaStorageClass 290*071d4279SBram Moolenaar JavaHiLink javaClassDecl javaStorageClass 291*071d4279SBram Moolenaar JavaHiLink javaScopeDecl javaStorageClass 292*071d4279SBram Moolenaar JavaHiLink javaBoolean Boolean 293*071d4279SBram Moolenaar JavaHiLink javaSpecial Special 294*071d4279SBram Moolenaar JavaHiLink javaSpecialError Error 295*071d4279SBram Moolenaar JavaHiLink javaSpecialCharError Error 296*071d4279SBram Moolenaar JavaHiLink javaString String 297*071d4279SBram Moolenaar JavaHiLink javaCharacter Character 298*071d4279SBram Moolenaar JavaHiLink javaSpecialChar SpecialChar 299*071d4279SBram Moolenaar JavaHiLink javaNumber Number 300*071d4279SBram Moolenaar JavaHiLink javaError Error 301*071d4279SBram Moolenaar JavaHiLink javaStringError Error 302*071d4279SBram Moolenaar JavaHiLink javaStatement Statement 303*071d4279SBram Moolenaar JavaHiLink javaOperator Operator 304*071d4279SBram Moolenaar JavaHiLink javaComment Comment 305*071d4279SBram Moolenaar JavaHiLink javaDocComment Comment 306*071d4279SBram Moolenaar JavaHiLink javaLineComment Comment 307*071d4279SBram Moolenaar JavaHiLink javaConstant Constant 308*071d4279SBram Moolenaar JavaHiLink javaTypedef Typedef 309*071d4279SBram Moolenaar JavaHiLink javaTodo Todo 310*071d4279SBram Moolenaar 311*071d4279SBram Moolenaar JavaHiLink javaCommentTitle SpecialComment 312*071d4279SBram Moolenaar JavaHiLink javaDocTags Special 313*071d4279SBram Moolenaar JavaHiLink javaDocParam Function 314*071d4279SBram Moolenaar JavaHiLink javaCommentStar javaComment 315*071d4279SBram Moolenaar 316*071d4279SBram Moolenaar JavaHiLink javaType Type 317*071d4279SBram Moolenaar JavaHiLink javaExternal Include 318*071d4279SBram Moolenaar 319*071d4279SBram Moolenaar JavaHiLink htmlComment Special 320*071d4279SBram Moolenaar JavaHiLink htmlCommentPart Special 321*071d4279SBram Moolenaar JavaHiLink javaSpaceError Error 322*071d4279SBram Moolenaarendif 323*071d4279SBram Moolenaar 324*071d4279SBram Moolenaardelcommand JavaHiLink 325*071d4279SBram Moolenaar 326*071d4279SBram Moolenaarlet b:current_syntax = "java" 327*071d4279SBram Moolenaar 328*071d4279SBram Moolenaarif main_syntax == 'java' 329*071d4279SBram Moolenaar unlet main_syntax 330*071d4279SBram Moolenaarendif 331*071d4279SBram Moolenaar 332*071d4279SBram Moolenaarlet b:spell_options="contained" 333*071d4279SBram Moolenaar 334*071d4279SBram Moolenaar" vim: ts=8 335