diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index a63ae0216a..bd867b2974 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -8,12 +8,12 @@ " 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 !exists("g:main_syntax") if exists("b:current_syntax") finish endif " we define it here so that included files can test for it - let main_syntax='java' + let g:main_syntax = 'java' endif let s:cpo_save = &cpo @@ -87,18 +87,18 @@ syn match javaOperator "\\%(\s*(\)\@!" " if necessary, on the line before that (h: \@<=), trying to match " neither a method reference nor a qualified method invocation. try - syn match javaOperator "\%(\%(::\|\.\)[[:space:]\n]*\)\@80" + syn match javaOperator "\%(\%(::\|\.\)[[:space:]\n]*\)\@80" let s:ff.Peek = s:ff.LeftConstant catch /\" + syn match javaOperator "\%(\%(::\|\.\)[[:space:]\n]*\)\@" let s:ff.Peek = s:ff.RightConstant endtry 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 strictfp serializable +syn keyword javaStorageClass static synchronized transient volatile strictfp syn keyword javaExceptions throw try catch finally syn keyword javaAssert assert syn keyword javaMethodDecl throws @@ -113,7 +113,7 @@ syn match javaAnnotation "@\%(\K\k*\.\)*\K\k*\>" syn region javaAnnotation transparent matchgroup=javaAnnotationStart start=/@\%(\K\k*\.\)*\K\k*(/ end=/)/ skip=/\/\*.\{-}\*\/\|\/\/.*$/ contains=javaAnnotation,javaParenT,javaBlock,javaString,javaBoolean,javaNumber,javaTypedef,javaComment,javaLineComment syn match javaClassDecl "@interface\>" syn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite -syn match javaUserLabelRef "\k\+" contained +syn match javaUserLabelRef contained "\k\+" syn match javaVarArg "\.\.\." syn keyword javaScopeDecl public protected private syn keyword javaConceptKind abstract final @@ -139,7 +139,7 @@ else let [s:ff.Engine, s:ff.UpperCase, s:ff.LowerCase] = repeat([s:ff.RightConstant], 3) endif -if exists("java_highlight_signature") +if exists("g:java_highlight_signature") let [s:ff.PeekTo, s:ff.PeekFrom, s:ff.GroupArgs] = repeat([s:ff.LeftConstant], 3) else let [s:ff.PeekTo, s:ff.PeekFrom, s:ff.GroupArgs] = repeat([s:ff.RightConstant], 3) @@ -156,7 +156,7 @@ endif " " Note that false positives may elsewhere occur whenever an identifier " is butted against a less-than operator. Cf. (X" " See javaDebug. - if !exists("java_highlight_generics") + if !exists("g:java_highlight_generics") " The non-interface parameterised names of java.lang members. exec 'syn match javaC_JavaLang "\%(\"' syn keyword javaC_JavaLang Class InheritableThreadLocal ThreadLocal Enum ClassValue @@ -229,10 +229,10 @@ if exists("java_highlight_all") || exists("java_highlight_java") || exists("ja hi def link javaC_Java javaC_ hi def link javaE_Java javaE_ hi def link javaX_Java javaX_ - hi def link javaX_ javaExceptions - hi def link javaR_ javaExceptions - hi def link javaE_ javaExceptions - hi def link javaC_ javaConstant + hi def link javaX_ javaExceptions + hi def link javaR_ javaExceptions + hi def link javaE_ javaExceptions + hi def link javaC_ javaConstant syn keyword javaLangObject getClass notify notifyAll wait @@ -251,12 +251,12 @@ if filereadable(expand(":p:h") . "/javaid.vim") source :p:h/javaid.vim endif -if exists("java_space_errors") - if !exists("java_no_trail_space_error") - syn match javaSpaceError "\s\+$" +if exists("g:java_space_errors") + if !exists("g:java_no_trail_space_error") + syn match javaSpaceError "\s\+$" endif - if !exists("java_no_tab_space_error") - syn match javaSpaceError " \+\t"me=e-1 + if !exists("g:java_no_tab_space_error") + syn match javaSpaceError " \+\t"me=e-1 endif endif @@ -280,12 +280,12 @@ hi def link javaLabelNumber javaNumber hi def link javaLabelCastType javaType " Comments -syn keyword javaTodo contained TODO FIXME XXX +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 javaCommentString contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell,javaSpecialError,javaTextBlockError - syn region javaComment2String contained start=+"+ end=+$\|"+ contains=javaSpecial,javaSpecialChar,@Spell +if exists("g:java_comment_strings") + syn region javaCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell + syn region javaCommentString contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell,javaSpecialError,javaTextBlockError + 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 "'[^\\]'" @@ -293,9 +293,9 @@ if exists("java_comment_strings") syn cluster javaCommentSpecial2 add=javaComment2String,javaCommentCharacter,javaNumber,javaStrTempl endif -syn region javaComment matchgroup=javaCommentStart start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,javaCommentError,javaSpaceError,@Spell fold -syn match javaCommentStar contained "^\s*\*[^/]"me=e-1 -syn match javaCommentStar contained "^\s*\*$" +syn region javaComment matchgroup=javaCommentStart start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,javaCommentError,javaSpaceError,@Spell fold +syn match javaCommentStar contained "^\s*\*[^/]"me=e-1 +syn match javaCommentStar contained "^\s*\*$" syn match javaLineComment "//.*" contains=@javaCommentSpecial2,javaTodo,javaCommentMarkupTag,javaSpaceError,@Spell syn match javaCommentMarkupTag contained "@\%(end\|highlight\|link\|replace\|start\)\>" nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite syn match javaCommentMarkupTagAttr contained "\" nextgroup=javaCommentMarkupTagAttr,javaSpaceError skipwhite @@ -308,7 +308,7 @@ syn match javaCommentError contained "/\*"me=e-1 display hi def link javaCommentError javaError hi def link javaCommentStart javaComment -if !exists("java_ignore_javadoc") && main_syntax != 'jsp' +if !exists("g:java_ignore_javadoc") && g:main_syntax != 'jsp' " The overridable "html*" default links must be defined _before_ the " inclusion of the same default links from "html.vim". hi def link htmlComment Special @@ -349,42 +349,42 @@ if !exists("java_ignore_javadoc") && main_syntax != 'jsp' endif " match the special comment /**/ -syn match javaComment "/\*\*/" +syn match javaComment "/\*\*/" " Strings and constants -syn match javaSpecialError contained "\\." +syn match javaSpecialError contained "\\." syn match javaSpecialCharError contained "[^']" " Escape Sequences (JLS-17, §3.10.7): -syn match javaSpecialChar contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)" +syn match javaSpecialChar contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)" syn region javaString start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell syn region javaString start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell syn match javaTextBlockError +"""\s*"""+ -syn region javaStrTemplEmbExp contained matchgroup=javaStrTempl start="\\{" end="}" contains=TOP +syn region javaStrTemplEmbExp contained matchgroup=javaStrTempl start="\\{" end="}" contains=TOP exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+ contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,@Spell' exec 'syn region javaStrTempl start=+\%(\.[[:space:]\n]*\)\@' . s:ff.Peek('80', '') . '<="""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell' -syn match javaCharacter "'[^']*'" contains=javaSpecialChar,javaSpecialCharError -syn match javaCharacter "'\\''" contains=javaSpecialChar -syn match javaCharacter "'[^\\]'" +syn match javaCharacter "'[^']*'" contains=javaSpecialChar,javaSpecialCharError +syn match javaCharacter "'\\''" contains=javaSpecialChar +syn match javaCharacter "'[^\\]'" " Integer literals (JLS-17, §3.10.1): -syn keyword javaNumber 0 0l 0L -syn match javaNumber "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)[lL]\=\>" +syn keyword javaNumber 0 0l 0L +syn match javaNumber "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)[lL]\=\>" " Decimal floating-point literals (JLS-17, §3.10.2): " Against "\<\d\+\>\.": -syn match javaNumber "\<\d\%(_*\d\)*\." -syn match javaNumber "\%(\<\d\%(_*\d\)*\.\%(\d\%(_*\d\)*\)\=\|\.\d\%(_*\d\)*\)\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\=\>" -syn match javaNumber "\<\d\%(_*\d\)*[eE][-+]\=\d\%(_*\d\)*[fFdD]\=\>" -syn match javaNumber "\<\d\%(_*\d\)*\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\>" +syn match javaNumber "\<\d\%(_*\d\)*\." +syn match javaNumber "\%(\<\d\%(_*\d\)*\.\%(\d\%(_*\d\)*\)\=\|\.\d\%(_*\d\)*\)\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\=\>" +syn match javaNumber "\<\d\%(_*\d\)*[eE][-+]\=\d\%(_*\d\)*[fFdD]\=\>" +syn match javaNumber "\<\d\%(_*\d\)*\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\>" " Hexadecimal floating-point literals (JLS-17, §3.10.2): -syn match javaNumber "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>" +syn match javaNumber "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>" " Unicode characters syn match javaSpecial "\\u\x\x\x\x" " Method declarations (JLS-17, §8.4.3, §8.4.4, §9.4). -if exists("java_highlight_functions") +if exists("g:java_highlight_functions") syn cluster javaFuncParams contains=javaAnnotation,@javaClasses,javaGenerics,javaType,javaVarArg,javaComment,javaLineComment - if exists("java_highlight_signature") + if exists("g:java_highlight_signature") syn keyword javaParamModifier contained final syn cluster javaFuncParams add=javaParamModifier hi def link javaParamModifier javaConceptKind @@ -393,8 +393,8 @@ if exists("java_highlight_functions") syn cluster javaFuncParams add=javaScopeDecl,javaConceptKind,javaStorageClass,javaExternal endif - if java_highlight_functions =~# '^indent[1-8]\=$' - let s:last = java_highlight_functions[-1 :] + if g:java_highlight_functions =~# '^indent[1-8]\=$' + let s:last = g:java_highlight_functions[-1 :] let s:indent = s:last != 't' ? repeat("\x20", s:last) : "\t" " Try to not match other type members, initialiser blocks, enum " constants (JLS-17, §8.9.1), and constructors (JLS-17, §8.1.7): @@ -430,10 +430,10 @@ if exists("java_highlight_functions") endif endif -if exists("java_highlight_debug") +if exists("g:java_highlight_debug") " Strings and constants syn match javaDebugSpecial contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)" - syn region javaDebugString contained start=+"+ end=+"+ contains=javaDebugSpecial + syn region javaDebugString contained start=+"+ end=+"+ contains=javaDebugSpecial syn region javaDebugString contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaDebugSpecial,javaDebugTextBlockError " The highlight groups of java{StrTempl,Debug{,Paren,StrTempl}}\, " share one colour by default. Do not conflate unrelated parens. @@ -453,7 +453,7 @@ if exists("java_highlight_debug") syn match javaDebugNumber contained "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>" syn keyword javaDebugBoolean contained true false syn keyword javaDebugType contained null this super - syn region javaDebugParen start=+(+ end=+)+ contained contains=javaDebug.*,javaDebugParen + syn region javaDebugParen contained start=+(+ end=+)+ contains=javaDebug.*,javaDebugParen " To make this work, define the highlighting for these groups. syn match javaDebug "\