From 979e700cf9983be9f9917faa61ff8f80e000391e Mon Sep 17 00:00:00 2001 From: Ludovic Koenig Date: Thu, 1 Aug 2019 22:26:04 +0200 Subject: [PATCH] Add suports for Java Enum values and constructors Enum values that are often/always written in uppercase are now handled and considered as constants. They are highlighted within the Enum declaration and outside of it in case statements or through the use of the dot operator on an enum. --- after/syntax/java.vim | 34 ++++++++++++++++++---------------- colors/odyssey.vim | 38 ++++++++++++++++++++------------------ 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/after/syntax/java.vim b/after/syntax/java.vim index a65d433..4879b1d 100644 --- a/after/syntax/java.vim +++ b/after/syntax/java.vim @@ -17,22 +17,24 @@ " " Java Syntax {{{ -syntax keyword javaOdysseyThis this -syntax keyword javaOdysseyLombok val var -syntax match javaOdysseyArrow "->" containedin=javaParenT,javaParenT1,javaParenT2 -syntax match javaOdysseyClass "\%(\\s\+\)\@<=\<\u\w*\>" -syntax match javaOdysseyInterface "\%(\\s\+\)\@<=\<\u\w*\>" -syntax match javaOdysseyEnum "\%(\\s\+\)\@<=\<\u\w*\>" -syntax match javaOdysseyArray "\[\]" contained -syntax match javaOdysseyGeneric "[><]" contained -syntax match javaOdysseySeparator "," contained -syntax match javaOdysseyType "\%(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%(\[\]\)\=\)\%(\s*\<\l\w*\>\)\@=" containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator -syntax match javaOdysseyConstructor "\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%((\|\[\)"me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseySeparator -syntax match javaOdysseyMethod "\<\l\w*\>("me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 -syntax match javaOdysseyCasting "(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)\+>\)\=\%(\[\]\)\=)"hs=s+1,he=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator -syntax match javaOdysseyImport "\%(\\s\+\%(\l\+.\)\+\)\@<=\%(\u\w*\)\%(\s*;\)\@=" -syntax match javaOdysseyExtends "\%(\\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator -syntax match javaOdysseyImplements "\%(\\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator +syntax keyword javaOdysseyThis this +syntax keyword javaOdysseyLombok val var +syntax match javaOdysseyArrow "->" containedin=javaParenT,javaParenT1,javaParenT2 +syntax match javaOdysseyClass "\%(\\s\+\)\@<=\<\u\w*\>" +syntax match javaOdysseyInterface "\%(\\s\+\)\@<=\<\u\w*\>" +syntax match javaOdysseyEnum "\%(\\s\+\)\@<=\<\u\w*\>" +syntax match javaOdysseyArray "\[\]" contained +syntax match javaOdysseyGeneric "[><]" contained +syntax match javaOdysseySeparator "," contained +syntax match javaOdysseyType "\%(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%(\[\]\)\=\)\%(\s*\<\l\w*\>\)\@=" containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator +syntax match javaOdysseyConstructor "\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=\%((\|\[\)"me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseySeparator +syntax match javaOdysseyMethod "\<\l\w*\>("me=e-1 containedin=javaParenT,javaParenT1,javaParenT2 +syntax match javaOdysseyCasting "(\<\u\w*\>\%(<\%(\u\w*\|,\|\s\|<\|>\)\+>\)\=\%(\[\]\)\=)"hs=s+1,he=e-1 containedin=javaParenT,javaParenT1,javaParenT2 contains=javaOdysseyGeneric,javaOdysseyArray,javaOdysseySeparator +syntax match javaOdysseyImport "\%(\\s\+\%(\l\+.\)\+\)\@<=\%(\u\w*\)\%(\s*;\)\@=" +syntax match javaOdysseyExtends "\%(\\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator +syntax match javaOdysseyImplements "\%(\\s\+\)\@<=\%(\<\u\w*\>\)\%(<\%(\u\w*\|,\|\s\|<\|>\)*>\)\=" contains=javaOdysseyGeneric,javaOdysseySeparator +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 diff --git a/colors/odyssey.vim b/colors/odyssey.vim index 4648dc3..9e25c14 100644 --- a/colors/odyssey.vim +++ b/colors/odyssey.vim @@ -258,24 +258,26 @@ call s:h( 'Todo', 'background', 'warning', 'bold') " }}} " Java Highlights {{{ -call s:h( 'javaAnnotation', 'background', 'warning', 'italic') -call s:l( 'javaExternal', 'Statement') -call s:l( 'javaTypeDef', 'javaOdysseyThis') -call s:l( 'javaOdysseyClass', 'Type') -call s:l( 'javaOdysseyInterface', 'Type') -call s:l( 'javaOdysseyEnum', 'Type') -call s:l( 'javaOdysseyCasting', 'Type') -call s:l( 'javaOdysseyImport', 'Type') -call s:l( 'javaOdysseyExtends', 'Type') -call s:l( 'javaOdysseyImplements', 'Type') -call s:l( 'javaOdysseyArray', 'Normal') -call s:l( 'javaOdysseyGeneric', 'Normal') -call s:l( 'javaOdysseyType', 'Type') -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:h( 'javaAnnotation', 'background', 'warning', 'italic') +call s:l( 'javaExternal', 'Statement') +call s:l( 'javaTypeDef', 'javaOdysseyThis') +call s:l( 'javaOdysseyClass', 'Type') +call s:l( 'javaOdysseyInterface', 'Type') +call s:l( 'javaOdysseyEnum', 'Type') +call s:l( 'javaOdysseyCasting', 'Type') +call s:l( 'javaOdysseyImport', 'Type') +call s:l( 'javaOdysseyExtends', 'Type') +call s:l( 'javaOdysseyImplements', 'Type') +call s:l( 'javaOdysseyArray', 'Normal') +call s:l( 'javaOdysseyGeneric', 'Normal') +call s:l( 'javaOdysseyType', 'Type') +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 {{{