1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Java 3071d4279SBram Moolenaar" Maintainer: Claudio Fleiner <[email protected]> 4071d4279SBram Moolenaar" URL: http://www.fleiner.com/vim/syntax/java.vim 5*293ee4d4SBram Moolenaar" Last Change: 2004 Nov 12 6071d4279SBram Moolenaar 7071d4279SBram Moolenaar" Please check :help java.vim for comments on some of the options available. 8071d4279SBram Moolenaar 9071d4279SBram Moolenaar" Quit when a syntax file was already loaded 10071d4279SBram Moolenaarif !exists("main_syntax") 11071d4279SBram Moolenaar if version < 600 12071d4279SBram Moolenaar syntax clear 13071d4279SBram Moolenaar elseif exists("b:current_syntax") 14071d4279SBram Moolenaar finish 15071d4279SBram Moolenaar endif 16071d4279SBram Moolenaar " we define it here so that included files can test for it 17071d4279SBram Moolenaar let main_syntax='java' 18071d4279SBram Moolenaarendif 19071d4279SBram Moolenaar 20071d4279SBram Moolenaar" don't use standard HiLink, it will not work with included syntax files 21071d4279SBram Moolenaarif version < 508 22071d4279SBram Moolenaar command! -nargs=+ JavaHiLink hi link <args> 23071d4279SBram Moolenaarelse 24071d4279SBram Moolenaar command! -nargs=+ JavaHiLink hi def link <args> 25071d4279SBram Moolenaarendif 26071d4279SBram Moolenaar 27071d4279SBram Moolenaar" some characters that cannot be in a java program (outside a string) 28071d4279SBram Moolenaarsyn match javaError "[\\@`]" 29071d4279SBram Moolenaarsyn match javaError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/" 30071d4279SBram Moolenaarsyn match javaOK "\.\.\." 31071d4279SBram Moolenaar 32071d4279SBram Moolenaar" use separate name so that it can be deleted in javacc.vim 33071d4279SBram Moolenaarsyn match javaError2 "#\|=<" 34071d4279SBram MoolenaarJavaHiLink javaError2 javaError 35071d4279SBram Moolenaar 36071d4279SBram Moolenaar 37071d4279SBram Moolenaar 38071d4279SBram Moolenaar" keyword definitions 39071d4279SBram Moolenaarsyn keyword javaExternal native package 40*293ee4d4SBram Moolenaarsyn match javaExternal "\<import\>\(\s\+static\>\)\?" 41071d4279SBram Moolenaarsyn keyword javaError goto const 42071d4279SBram Moolenaarsyn keyword javaConditional if else switch 43071d4279SBram Moolenaarsyn keyword javaRepeat while for do 44071d4279SBram Moolenaarsyn keyword javaBoolean true false 45071d4279SBram Moolenaarsyn keyword javaConstant null 46071d4279SBram Moolenaarsyn keyword javaTypedef this super 47071d4279SBram Moolenaarsyn keyword javaOperator new instanceof 48071d4279SBram Moolenaarsyn keyword javaType boolean char byte short int long float double 49071d4279SBram Moolenaarsyn keyword javaType void 50071d4279SBram Moolenaarsyn keyword javaStatement return 51071d4279SBram Moolenaarsyn keyword javaStorageClass static synchronized transient volatile final strictfp serializable 52071d4279SBram Moolenaarsyn keyword javaExceptions throw try catch finally 53071d4279SBram Moolenaarsyn keyword javaAssert assert 54071d4279SBram Moolenaarsyn keyword javaMethodDecl synchronized throws 55071d4279SBram Moolenaarsyn keyword javaClassDecl extends implements interface 56071d4279SBram Moolenaar" to differentiate the keyword class from MyClass.class we use a match here 57071d4279SBram Moolenaarsyn match javaTypedef "\.\s*\<class\>"ms=s+1 58071d4279SBram Moolenaarsyn keyword javaClassDecl enum 59071d4279SBram Moolenaarsyn match javaClassDecl "^class\>" 60071d4279SBram Moolenaarsyn match javaClassDecl "[^.]\s*\<class\>"ms=s+1 61071d4279SBram Moolenaarsyn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite 62071d4279SBram Moolenaarsyn match javaUserLabelRef "\k\+" contained 63071d4279SBram Moolenaarsyn keyword javaScopeDecl public protected private abstract 64071d4279SBram Moolenaar 65071d4279SBram Moolenaarif exists("java_highlight_java_lang_ids") || exists("java_highlight_java_lang") || exists("java_highlight_all") 66071d4279SBram Moolenaar " java.lang.* 67071d4279SBram Moolenaar syn match javaLangClass "\<System\>" 68071d4279SBram Moolenaar syn keyword javaLangClass Cloneable Comparable Runnable Boolean Byte Class 69071d4279SBram Moolenaar syn keyword javaLangClass Character CharSequence ClassLoader Compiler Double Float 70071d4279SBram Moolenaar syn keyword javaLangClass Integer InheritableThreadLocal Long Math Number Object Package Process 71071d4279SBram Moolenaar syn keyword javaLangClass Runtime RuntimePermission InheritableThreadLocal 72071d4279SBram Moolenaar syn keyword javaLangClass SecurityManager Short String StrictMath StackTraceElement 73071d4279SBram Moolenaar syn keyword javaLangClass StringBuffer Thread ThreadGroup 74071d4279SBram Moolenaar syn keyword javaLangClass ThreadLocal Throwable Void ArithmeticException 75071d4279SBram Moolenaar syn keyword javaLangClass ArrayIndexOutOfBoundsException AssertionError 76071d4279SBram Moolenaar syn keyword javaLangClass ArrayStoreException ClassCastException 77071d4279SBram Moolenaar syn keyword javaLangClass ClassNotFoundException 78071d4279SBram Moolenaar syn keyword javaLangClass CloneNotSupportedException Exception 79071d4279SBram Moolenaar syn keyword javaLangClass IllegalAccessException 80071d4279SBram Moolenaar syn keyword javaLangClass IllegalArgumentException 81071d4279SBram Moolenaar syn keyword javaLangClass IllegalMonitorStateException 82071d4279SBram Moolenaar syn keyword javaLangClass IllegalStateException 83071d4279SBram Moolenaar syn keyword javaLangClass IllegalThreadStateException 84071d4279SBram Moolenaar syn keyword javaLangClass IndexOutOfBoundsException 85071d4279SBram Moolenaar syn keyword javaLangClass InstantiationException InterruptedException 86071d4279SBram Moolenaar syn keyword javaLangClass NegativeArraySizeException NoSuchFieldException 87071d4279SBram Moolenaar syn keyword javaLangClass NoSuchMethodException NullPointerException 88071d4279SBram Moolenaar syn keyword javaLangClass NumberFormatException RuntimeException 89071d4279SBram Moolenaar syn keyword javaLangClass SecurityException StringIndexOutOfBoundsException 90071d4279SBram Moolenaar syn keyword javaLangClass UnsupportedOperationException 91071d4279SBram Moolenaar syn keyword javaLangClass AbstractMethodError ClassCircularityError 92071d4279SBram Moolenaar syn keyword javaLangClass ClassFormatError Error ExceptionInInitializerError 93071d4279SBram Moolenaar syn keyword javaLangClass IllegalAccessError InstantiationError 94071d4279SBram Moolenaar syn keyword javaLangClass IncompatibleClassChangeError InternalError 95071d4279SBram Moolenaar syn keyword javaLangClass LinkageError NoClassDefFoundError 96071d4279SBram Moolenaar syn keyword javaLangClass NoSuchFieldError NoSuchMethodError 97071d4279SBram Moolenaar syn keyword javaLangClass OutOfMemoryError StackOverflowError 98071d4279SBram Moolenaar syn keyword javaLangClass ThreadDeath UnknownError UnsatisfiedLinkError 99071d4279SBram Moolenaar syn keyword javaLangClass UnsupportedClassVersionError VerifyError 100071d4279SBram Moolenaar syn keyword javaLangClass VirtualMachineError 101071d4279SBram Moolenaar syn keyword javaLangObject clone equals finalize getClass hashCode 102071d4279SBram Moolenaar syn keyword javaLangObject notify notifyAll toString wait 103071d4279SBram Moolenaar JavaHiLink javaLangClass javaConstant 104071d4279SBram Moolenaar JavaHiLink javaLangObject javaConstant 105071d4279SBram Moolenaar syn cluster javaTop add=javaLangObject,javaLangClass 106071d4279SBram Moolenaar syn cluster javaClasses add=javaLangClass 107071d4279SBram Moolenaarendif 108071d4279SBram Moolenaar 109071d4279SBram Moolenaarif filereadable(expand("<sfile>:p:h")."/javaid.vim") 110071d4279SBram Moolenaar source <sfile>:p:h/javaid.vim 111071d4279SBram Moolenaarendif 112071d4279SBram Moolenaar 113071d4279SBram Moolenaarif exists("java_space_errors") 114071d4279SBram Moolenaar if !exists("java_no_trail_space_error") 115071d4279SBram Moolenaar syn match javaSpaceError "\s\+$" 116071d4279SBram Moolenaar endif 117071d4279SBram Moolenaar if !exists("java_no_tab_space_error") 118071d4279SBram Moolenaar syn match javaSpaceError " \+\t"me=e-1 119071d4279SBram Moolenaar endif 120071d4279SBram Moolenaarendif 121071d4279SBram Moolenaar 122071d4279SBram Moolenaarsyn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":" contains=javaNumber,javaCharacter 123071d4279SBram Moolenaarsyn match javaUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel 124071d4279SBram Moolenaarsyn keyword javaLabel default 125071d4279SBram Moolenaar 126071d4279SBram Moolenaarif !exists("java_allow_cpp_keywords") 127071d4279SBram Moolenaar syn keyword javaError auto delete extern friend inline redeclared 128071d4279SBram Moolenaar syn keyword javaError register signed sizeof struct template typedef union 129071d4279SBram Moolenaar syn keyword javaError unsigned operator 130071d4279SBram Moolenaarendif 131071d4279SBram Moolenaar 132071d4279SBram Moolenaar" The following cluster contains all java groups except the contained ones 133071d4279SBram 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 134071d4279SBram Moolenaar 135071d4279SBram Moolenaar 136071d4279SBram Moolenaar" Comments 137071d4279SBram Moolenaarsyn keyword javaTodo contained TODO FIXME XXX 138071d4279SBram Moolenaarif exists("java_comment_strings") 139071d4279SBram Moolenaar syn region javaCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell 140071d4279SBram Moolenaar syn region javaComment2String contained start=+"+ end=+$\|"+ contains=javaSpecial,javaSpecialChar,@Spell 141071d4279SBram Moolenaar syn match javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar 142071d4279SBram Moolenaar syn match javaCommentCharacter contained "'\\''" contains=javaSpecialChar 143071d4279SBram Moolenaar syn match javaCommentCharacter contained "'[^\\]'" 144071d4279SBram Moolenaar syn cluster javaCommentSpecial add=javaCommentString,javaCommentCharacter,javaNumber 145071d4279SBram Moolenaar syn cluster javaCommentSpecial2 add=javaComment2String,javaCommentCharacter,javaNumber 146071d4279SBram Moolenaarendif 147071d4279SBram Moolenaarsyn region javaComment start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,@Spell 148071d4279SBram Moolenaarsyn match javaCommentStar contained "^\s*\*[^/]"me=e-1 149071d4279SBram Moolenaarsyn match javaCommentStar contained "^\s*\*$" 150071d4279SBram Moolenaarsyn match javaLineComment "//.*" contains=@javaCommentSpecial2,javaTodo,@Spell 151071d4279SBram MoolenaarJavaHiLink javaCommentString javaString 152071d4279SBram MoolenaarJavaHiLink javaComment2String javaString 153071d4279SBram MoolenaarJavaHiLink javaCommentCharacter javaCharacter 154071d4279SBram Moolenaar 155071d4279SBram Moolenaarsyn cluster javaTop add=javaComment,javaLineComment 156071d4279SBram Moolenaar 157071d4279SBram Moolenaarif !exists("java_ignore_javadoc") && main_syntax != 'jsp' 158071d4279SBram Moolenaar syntax case ignore 159071d4279SBram Moolenaar " syntax coloring for javadoc comments (HTML) 160071d4279SBram Moolenaar syntax include @javaHtml <sfile>:p:h/html.vim 161071d4279SBram Moolenaar unlet b:current_syntax 162071d4279SBram Moolenaar syn region javaDocComment start="/\*\*" end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaTodo,@Spell 163071d4279SBram 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 164071d4279SBram Moolenaar 165071d4279SBram Moolenaar syn region javaDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}" 166071d4279SBram Moolenaar syn match javaDocTags contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=javaDocParam 167071d4279SBram Moolenaar syn match javaDocParam contained "\s\S\+" 168071d4279SBram Moolenaar syn match javaDocTags contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>" 169071d4279SBram Moolenaar syntax case match 170071d4279SBram Moolenaarendif 171071d4279SBram Moolenaar 172071d4279SBram Moolenaar" match the special comment /**/ 173071d4279SBram Moolenaarsyn match javaComment "/\*\*/" 174071d4279SBram Moolenaar 175071d4279SBram Moolenaar" Strings and constants 176071d4279SBram Moolenaarsyn match javaSpecialError contained "\\." 177071d4279SBram Moolenaarsyn match javaSpecialCharError contained "[^']" 178071d4279SBram Moolenaarsyn match javaSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)" 179071d4279SBram Moolenaarsyn region javaString start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell 180071d4279SBram Moolenaar" next line disabled, it can cause a crash for a long line 181071d4279SBram Moolenaar"syn match javaStringError +"\([^"\\]\|\\.\)*$+ 182071d4279SBram Moolenaarsyn match javaCharacter "'[^']*'" contains=javaSpecialChar,javaSpecialCharError 183071d4279SBram Moolenaarsyn match javaCharacter "'\\''" contains=javaSpecialChar 184071d4279SBram Moolenaarsyn match javaCharacter "'[^\\]'" 185071d4279SBram Moolenaarsyn match javaNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" 186071d4279SBram Moolenaarsyn match javaNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" 187071d4279SBram Moolenaarsyn match javaNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" 188071d4279SBram Moolenaarsyn match javaNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" 189071d4279SBram Moolenaar 190071d4279SBram Moolenaar" unicode characters 191071d4279SBram Moolenaarsyn match javaSpecial "\\u\d\{4\}" 192071d4279SBram Moolenaar 193071d4279SBram Moolenaarsyn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError 194071d4279SBram Moolenaar 195071d4279SBram Moolenaarif exists("java_highlight_functions") 196071d4279SBram Moolenaar if java_highlight_functions == "indent" 197071d4279SBram Moolenaar syn match javaFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses 198071d4279SBram Moolenaar syn region javaFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses 199071d4279SBram Moolenaar syn match javaFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses 200071d4279SBram Moolenaar syn region javaFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,@javaClasses 201071d4279SBram Moolenaar else 202071d4279SBram Moolenaar " This line catches method declarations at any indentation>0, but it assumes 203071d4279SBram Moolenaar " two things: 204071d4279SBram Moolenaar " 1. class names are always capitalized (ie: Button) 205071d4279SBram Moolenaar " 2. method names are never capitalized (except constructors, of course) 206071d4279SBram 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 207071d4279SBram Moolenaar endif 208071d4279SBram Moolenaar syn match javaBraces "[{}]" 209071d4279SBram Moolenaar syn cluster javaTop add=javaFuncDef,javaBraces 210071d4279SBram Moolenaarendif 211071d4279SBram Moolenaar 212071d4279SBram Moolenaarif exists("java_highlight_debug") 213071d4279SBram Moolenaar 214071d4279SBram Moolenaar " Strings and constants 215071d4279SBram Moolenaar syn match javaDebugSpecial contained "\\\d\d\d\|\\." 216071d4279SBram Moolenaar syn region javaDebugString contained start=+"+ end=+"+ contains=javaDebugSpecial 217071d4279SBram Moolenaar syn match javaDebugStringError +"\([^"\\]\|\\.\)*$+ 218071d4279SBram Moolenaar syn match javaDebugCharacter contained "'[^\\]'" 219071d4279SBram Moolenaar syn match javaDebugSpecialCharacter contained "'\\.'" 220071d4279SBram Moolenaar syn match javaDebugSpecialCharacter contained "'\\''" 221071d4279SBram Moolenaar syn match javaDebugNumber contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" 222071d4279SBram Moolenaar syn match javaDebugNumber contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" 223071d4279SBram Moolenaar syn match javaDebugNumber contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" 224071d4279SBram Moolenaar syn match javaDebugNumber contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" 225071d4279SBram Moolenaar syn keyword javaDebugBoolean contained true false 226071d4279SBram Moolenaar syn keyword javaDebugType contained null this super 227071d4279SBram Moolenaar syn region javaDebugParen start=+(+ end=+)+ contained contains=javaDebug.*,javaDebugParen 228071d4279SBram Moolenaar 229071d4279SBram Moolenaar " to make this work you must define the highlighting for these groups 230071d4279SBram Moolenaar syn match javaDebug "\<System\.\(out\|err\)\.print\(ln\)*\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen 231*293ee4d4SBram Moolenaar syn match javaDebug "\<p\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen 232071d4279SBram Moolenaar syn match javaDebug "[A-Za-z][a-zA-Z0-9_]*\.printStackTrace\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen 233071d4279SBram Moolenaar syn match javaDebug "\<trace[SL]\=\s*("me=e-1 contains=javaDebug.* nextgroup=javaDebugParen 234071d4279SBram Moolenaar 235071d4279SBram Moolenaar syn cluster javaTop add=javaDebug 236071d4279SBram Moolenaar 237071d4279SBram Moolenaar if version >= 508 || !exists("did_c_syn_inits") 238071d4279SBram Moolenaar JavaHiLink javaDebug Debug 239071d4279SBram Moolenaar JavaHiLink javaDebugString DebugString 240071d4279SBram Moolenaar JavaHiLink javaDebugStringError javaError 241071d4279SBram Moolenaar JavaHiLink javaDebugType DebugType 242071d4279SBram Moolenaar JavaHiLink javaDebugBoolean DebugBoolean 243071d4279SBram Moolenaar JavaHiLink javaDebugNumber Debug 244071d4279SBram Moolenaar JavaHiLink javaDebugSpecial DebugSpecial 245071d4279SBram Moolenaar JavaHiLink javaDebugSpecialCharacter DebugSpecial 246071d4279SBram Moolenaar JavaHiLink javaDebugCharacter DebugString 247071d4279SBram Moolenaar JavaHiLink javaDebugParen Debug 248071d4279SBram Moolenaar 249071d4279SBram Moolenaar JavaHiLink DebugString String 250071d4279SBram Moolenaar JavaHiLink DebugSpecial Special 251071d4279SBram Moolenaar JavaHiLink DebugBoolean Boolean 252071d4279SBram Moolenaar JavaHiLink DebugType Type 253071d4279SBram Moolenaar endif 254071d4279SBram Moolenaarendif 255071d4279SBram Moolenaar 256071d4279SBram Moolenaarif exists("java_mark_braces_in_parens_as_errors") 257071d4279SBram Moolenaar syn match javaInParen contained "[{}]" 258071d4279SBram Moolenaar JavaHiLink javaInParen javaError 259071d4279SBram Moolenaar syn cluster javaTop add=javaInParen 260071d4279SBram Moolenaarendif 261071d4279SBram Moolenaar 262071d4279SBram Moolenaar" catch errors caused by wrong parenthesis 263071d4279SBram Moolenaarsyn region javaParenT transparent matchgroup=javaParen start="(" end=")" contains=@javaTop,javaParenT1 264071d4279SBram Moolenaarsyn region javaParenT1 transparent matchgroup=javaParen1 start="(" end=")" contains=@javaTop,javaParenT2 contained 265071d4279SBram Moolenaarsyn region javaParenT2 transparent matchgroup=javaParen2 start="(" end=")" contains=@javaTop,javaParenT contained 266071d4279SBram Moolenaarsyn match javaParenError ")" 267*293ee4d4SBram Moolenaar" catch errors caused by wrong square parenthesis 268*293ee4d4SBram Moolenaarsyn region javaParenT transparent matchgroup=javaParen start="\[" end="\]" contains=@javaTop,javaParenT1 269*293ee4d4SBram Moolenaarsyn region javaParenT1 transparent matchgroup=javaParen1 start="\[" end="\]" contains=@javaTop,javaParenT2 contained 270*293ee4d4SBram Moolenaarsyn region javaParenT2 transparent matchgroup=javaParen2 start="\[" end="\]" contains=@javaTop,javaParenT contained 271*293ee4d4SBram Moolenaarsyn match javaParenError "\]" 272*293ee4d4SBram Moolenaar 273071d4279SBram MoolenaarJavaHiLink javaParenError javaError 274071d4279SBram Moolenaar 275071d4279SBram Moolenaarif !exists("java_minlines") 276071d4279SBram Moolenaar let java_minlines = 10 277071d4279SBram Moolenaarendif 278071d4279SBram Moolenaarexec "syn sync ccomment javaComment minlines=" . java_minlines 279071d4279SBram Moolenaar 280071d4279SBram Moolenaar" The default highlighting. 281071d4279SBram Moolenaarif version >= 508 || !exists("did_java_syn_inits") 282071d4279SBram Moolenaar if version < 508 283071d4279SBram Moolenaar let did_java_syn_inits = 1 284071d4279SBram Moolenaar endif 285071d4279SBram Moolenaar JavaHiLink javaFuncDef Function 286071d4279SBram Moolenaar JavaHiLink javaBraces Function 287071d4279SBram Moolenaar JavaHiLink javaBranch Conditional 288071d4279SBram Moolenaar JavaHiLink javaUserLabelRef javaUserLabel 289071d4279SBram Moolenaar JavaHiLink javaLabel Label 290071d4279SBram Moolenaar JavaHiLink javaUserLabel Label 291071d4279SBram Moolenaar JavaHiLink javaConditional Conditional 292071d4279SBram Moolenaar JavaHiLink javaRepeat Repeat 293071d4279SBram Moolenaar JavaHiLink javaExceptions Exception 294071d4279SBram Moolenaar JavaHiLink javaAssert Statement 295071d4279SBram Moolenaar JavaHiLink javaStorageClass StorageClass 296071d4279SBram Moolenaar JavaHiLink javaMethodDecl javaStorageClass 297071d4279SBram Moolenaar JavaHiLink javaClassDecl javaStorageClass 298071d4279SBram Moolenaar JavaHiLink javaScopeDecl javaStorageClass 299071d4279SBram Moolenaar JavaHiLink javaBoolean Boolean 300071d4279SBram Moolenaar JavaHiLink javaSpecial Special 301071d4279SBram Moolenaar JavaHiLink javaSpecialError Error 302071d4279SBram Moolenaar JavaHiLink javaSpecialCharError Error 303071d4279SBram Moolenaar JavaHiLink javaString String 304071d4279SBram Moolenaar JavaHiLink javaCharacter Character 305071d4279SBram Moolenaar JavaHiLink javaSpecialChar SpecialChar 306071d4279SBram Moolenaar JavaHiLink javaNumber Number 307071d4279SBram Moolenaar JavaHiLink javaError Error 308071d4279SBram Moolenaar JavaHiLink javaStringError Error 309071d4279SBram Moolenaar JavaHiLink javaStatement Statement 310071d4279SBram Moolenaar JavaHiLink javaOperator Operator 311071d4279SBram Moolenaar JavaHiLink javaComment Comment 312071d4279SBram Moolenaar JavaHiLink javaDocComment Comment 313071d4279SBram Moolenaar JavaHiLink javaLineComment Comment 314071d4279SBram Moolenaar JavaHiLink javaConstant Constant 315071d4279SBram Moolenaar JavaHiLink javaTypedef Typedef 316071d4279SBram Moolenaar JavaHiLink javaTodo Todo 317071d4279SBram Moolenaar 318071d4279SBram Moolenaar JavaHiLink javaCommentTitle SpecialComment 319071d4279SBram Moolenaar JavaHiLink javaDocTags Special 320071d4279SBram Moolenaar JavaHiLink javaDocParam Function 321071d4279SBram Moolenaar JavaHiLink javaCommentStar javaComment 322071d4279SBram Moolenaar 323071d4279SBram Moolenaar JavaHiLink javaType Type 324071d4279SBram Moolenaar JavaHiLink javaExternal Include 325071d4279SBram Moolenaar 326071d4279SBram Moolenaar JavaHiLink htmlComment Special 327071d4279SBram Moolenaar JavaHiLink htmlCommentPart Special 328071d4279SBram Moolenaar JavaHiLink javaSpaceError Error 329071d4279SBram Moolenaarendif 330071d4279SBram Moolenaar 331071d4279SBram Moolenaardelcommand JavaHiLink 332071d4279SBram Moolenaar 333071d4279SBram Moolenaarlet b:current_syntax = "java" 334071d4279SBram Moolenaar 335071d4279SBram Moolenaarif main_syntax == 'java' 336071d4279SBram Moolenaar unlet main_syntax 337071d4279SBram Moolenaarendif 338071d4279SBram Moolenaar 339071d4279SBram Moolenaarlet b:spell_options="contained" 340071d4279SBram Moolenaar 341071d4279SBram Moolenaar" vim: ts=8 342