Add some additional support for Java syntax

It modifies the 'import' statement by fixing some bugs and adding some
new support.

Plus enum values and classes used with the dot operator are also now
highlighted.
This commit is contained in:
Ludovic Koenig
2019-08-02 07:37:18 +02:00
2 changed files with 44 additions and 32 deletions
+21 -15
View File
@@ -17,21 +17,27 @@
" "
" Java Syntax {{{ " Java Syntax {{{
syntax keyword javaOdysseyThis this syntax keyword javaOdysseyThis this
syntax match javaOdysseyArrow "->" containedin=javaParenT,javaParenT1,javaParenT2 syntax keyword javaOdysseyLombok val var
syntax match javaOdysseyClass "\%(\<class\>\s\+\)\@<=\<\u\w*\>" syntax match javaOdysseyArrow "->" containedin=javaParenT,javaParenT1,javaParenT2
syntax match javaOdysseyInterface "\%(\<interface\>\s\+\)\@<=\<\u\w*\>" syntax match javaOdysseyClass "\%(\<class\>\s\+\)\@<=\<\u\w*\>"
syntax match javaOdysseyEnum "\%(\<enum\>\s\+\)\@<=\<\u\w*\>" syntax match javaOdysseyInterface "\%(\<interface\>\s\+\)\@<=\<\u\w*\>"
syntax match javaOdysseyArray "\[\]" contained syntax match javaOdysseyEnum "\%(\<enum\>\s\+\)\@<=\<\u\w*\>"
syntax match javaOdysseyGeneric "[><]" contained syntax match javaOdysseyArray "\[\]" contained
syntax match javaOdysseySeparator "," contained syntax match javaOdysseyGeneric "[><]" contained
syntax match javaOdysseyType "\%(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%(\[\]\)\=\)\%(\s*\<\l\w*\>\)\@=" containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator syntax match javaOdysseySeparator "," contained
syntax match javaOdysseyConstructor "\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%((\|\[\)"me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseySeparator syntax match javaOdysseyType "\%(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%(\[\]\)\=\)\%(\s*\<\l\w*\>\)\@=" containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator
syntax match javaOdysseyMethod "\<\l\w*\>("me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 syntax match javaOdysseyConstructor "\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%((\|\[\)"me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseySeparator
syntax match javaOdysseyCasting "(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)\+>\)\=\%(\[\]\)\=)"hs=s+1,he=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator syntax match javaOdysseyMethod "\<\l\w*\>("me=e-1 containedin=javaParenT,javaParenT1,javaParenT2
syntax match javaOdysseyImport "\%(\<import\>\s\+\%(\l\+.\)\+\)\@<=\%(\u\w*\)\s*;" syntax match javaOdysseyCasting "(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)\+>\)\=\%(\[\]\)\=)"hs=s+1,he=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator
syntax match javaOdysseyExtends "\%(\<extends\>\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator syntax match javaOdysseyImport "\%(\<import\>\s\+\%(\l\+\.\)\+\)\@<=\%(\u\w*\)\%(\s*;\)\@="
syntax match javaOdysseyImplements "\%(\<implements\>\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator syntax match javaOdysseyStaticMethod "\%(\<import\>\s\+\<static\>\s\+\%(\w\+\.\)\+\)\@<=\%(\l\w*\)\%(\s*;\)\@="
syntax match javaOdysseyStaticClass "\%(\<import\>\s\+\<static\>\s\+\%(\w\+\.\)\+\)\@<=\%(\u\w*\)\%(\s*;\)\@="
syntax match javaOdysseyExtends "\%(\<extends\>\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator
syntax match javaOdysseyImplements "\%(\<implements\>\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator
syntax match javaOdysseyDottedClass "\<\u\w*\>\."me=e-1 containedin=javaParenT,javaParenT1,javaParenT2
syntax match javaOdysseyEnumValue "\<[A-Z][_A-Z0-9]\+\>" containedin=javaParenT,javaParenT1,javaParenT2,javaLabelRegion
syntax match javaOdysseyEnumConstructor "\<[A-Z][_A-Z0-9]\+\>("me=e-1 containedin=javaParenT,javaParenT1,javaParenT2
" }}} " }}}
" vim: foldmethod=marker " vim: foldmethod=marker
+23 -17
View File
@@ -258,23 +258,29 @@ call s:h( 'Todo', 'background', 'warning', 'bold')
" }}} " }}}
" Java Highlights {{{ " Java Highlights {{{
call s:h( 'javaAnnotation', 'background', 'warning', 'italic') call s:h( 'javaAnnotation', 'background', 'warning', 'italic')
call s:l( 'javaExternal', 'Statement') call s:l( 'javaExternal', 'Statement')
call s:l( 'javaTypeDef', 'javaOdysseyThis') call s:l( 'javaTypeDef', 'javaOdysseyThis')
call s:l( 'javaOdysseyClass', 'Type') call s:l( 'javaOdysseyClass', 'Type')
call s:l( 'javaOdysseyInterface', 'Type') call s:l( 'javaOdysseyDottedClass', 'Type')
call s:l( 'javaOdysseyEnum', 'Type') call s:l( 'javaOdysseyInterface', 'Type')
call s:l( 'javaOdysseyCasting', 'Type') call s:l( 'javaOdysseyEnum', 'Type')
call s:l( 'javaOdysseyImport', 'Type') call s:l( 'javaOdysseyCasting', 'Type')
call s:l( 'javaOdysseyExtends', 'Type') call s:l( 'javaOdysseyImport', 'Type')
call s:l( 'javaOdysseyImplements', 'Type') call s:l( 'javaOdysseyStaticMethod', 'Function')
call s:l( 'javaOdysseyArray', 'Normal') call s:l( 'javaOdysseyStaticClass', 'Type')
call s:l( 'javaOdysseyGeneric', 'Normal') call s:l( 'javaOdysseyExtends', 'Type')
call s:l( 'javaOdysseyType', 'Type') call s:l( 'javaOdysseyImplements', 'Type')
call s:l('javaOdysseyConstructor', 'Type') call s:l( 'javaOdysseyArray', 'Normal')
call s:l( 'javaOdysseyMethod', 'Function') call s:l( 'javaOdysseyGeneric', 'Normal')
call s:l( 'javaOdysseyThis', 'Special') call s:l( 'javaOdysseyType', 'Type')
call s:l( 'javaOdysseyArrow', 'Operator') call s:l( 'javaOdysseyConstructor', 'Type')
call s:l( 'javaOdysseyMethod', 'Function')
call s:l( 'javaOdysseyThis', 'Special')
call s:l( 'javaOdysseyArrow', 'Operator')
call s:l( 'javaOdysseyLombok', 'Statement')
call s:l( 'javaOdysseyEnumValue', 'Constant')
call s:l('javaOdysseyEnumConstructor', 'Constant')
" }}} " }}}
" Ruby Highlights {{{ " Ruby Highlights {{{