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