Skip to content

Commit 280dbfc

Browse files
committed
First import version bundled in vim
0 parents  commit 280dbfc

File tree

1 file changed

+352
-0
lines changed

1 file changed

+352
-0
lines changed

syntax/java.vim

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

0 commit comments

Comments
 (0)