mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	vim-patch:2307945: runtime(java): Optionally recognise all primitive constants in _switch-case_ labels
Define "g:java_syntax_previews" and include number 455 in
its list to enable this recognition:
------------------------------------------------------------
	let g:java_syntax_previews = [455]
------------------------------------------------------------
Reference:
https://openjdk.org/jeps/455
closes: vim/vim#15698
23079450a8
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
			
			
This commit is contained in:
		| @@ -1704,10 +1704,11 @@ cycles for such a feature to become either integrated into the platform or | |||||||
| withdrawn from this effort.  To cater for early adopters, there is optional | withdrawn from this effort.  To cater for early adopters, there is optional | ||||||
| support in Vim for syntax related preview features that are implemented.  You | support in Vim for syntax related preview features that are implemented.  You | ||||||
| can request it by specifying a list of preview feature numbers as follows: > | can request it by specifying a list of preview feature numbers as follows: > | ||||||
| 	:let g:java_syntax_previews = [430] | 	:let g:java_syntax_previews = [455] | ||||||
|  |  | ||||||
| The supported JEP numbers are to be drawn from this table: | The supported JEP numbers are to be drawn from this table: | ||||||
| 	`430`: String Templates [JDK 21] | 	`430`: String Templates [JDK 21] | ||||||
|  | 	`455`: Primitive types in Patterns, instanceof, and switch | ||||||
|  |  | ||||||
| Note that as soon as the particular preview feature will have been integrated | Note that as soon as the particular preview feature will have been integrated | ||||||
| into the Java platform, its entry will be removed from the table and related | into the Java platform, its entry will be removed from the table and related | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ | |||||||
| " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com> | " Maintainer:		Aliaksei Budavei <0x000c70 AT gmail DOT com> | ||||||
| " Former Maintainer:	Claudio Fleiner <claudio@fleiner.com> | " Former Maintainer:	Claudio Fleiner <claudio@fleiner.com> | ||||||
| " Repository:		https://github.com/zzzyxwvut/java-vim.git | " Repository:		https://github.com/zzzyxwvut/java-vim.git | ||||||
| " Last Change:		2024 Sep 11 | " Last Change:		2024 Sep 18 | ||||||
|  |  | ||||||
| " Please check :help java.vim for comments on some of the options available. | " Please check :help java.vim for comments on some of the options available. | ||||||
|  |  | ||||||
| @@ -283,19 +283,27 @@ if exists("g:java_space_errors") | |||||||
| endif | endif | ||||||
|  |  | ||||||
| exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\<default\>\)\@' . s:ff.Peek('7', '') . '<!\s*::\@!"he=e-1' | exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\<default\>\)\@' . s:ff.Peek('7', '') . '<!\s*::\@!"he=e-1' | ||||||
|  |  | ||||||
|  | if s:ff.IsRequestedPreviewFeature(455) | ||||||
|  |   syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":\|->" contains=javaBoolean,javaNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaType,javaLabelDefault,javaLabelVarType,javaLabelWhenClause | ||||||
|  | else | ||||||
|   syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause |   syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause | ||||||
|  |   syn keyword javaLabelCastType	contained char byte short int | ||||||
|  |   syn match   javaLabelNumber	contained "\<0\>[lL]\@!" | ||||||
|  |   syn match   javaLabelNumber	contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)\>[lL]\@!" | ||||||
|  |   hi def link javaLabelCastType	javaType | ||||||
|  |   hi def link javaLabelNumber	javaNumber | ||||||
|  | endif | ||||||
|  |  | ||||||
| syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<default\>\%(\s*\%(:\|->\)\)\@=" matchgroup=NONE end=":\|->" oneline | syn region  javaLabelRegion	transparent matchgroup=javaLabel start="\<default\>\%(\s*\%(:\|->\)\)\@=" matchgroup=NONE end=":\|->" oneline | ||||||
| " Consider grouped _default_ _case_ labels, i.e. | " Consider grouped _default_ _case_ labels, i.e. | ||||||
| " case null, default -> | " case null, default -> | ||||||
| " case null: default: | " case null: default: | ||||||
| syn keyword javaLabelDefault	contained default | syn keyword javaLabelDefault	contained default | ||||||
| syn keyword javaLabelVarType	contained var | syn keyword javaLabelVarType	contained var | ||||||
| syn keyword javaLabelCastType	contained char byte short int |  | ||||||
| " Allow for the contingency of the enclosing region not being able to | " Allow for the contingency of the enclosing region not being able to | ||||||
| " _keep_ its _end_, e.g. case ':':. | " _keep_ its _end_, e.g. case ':':. | ||||||
| syn region  javaLabelWhenClause	contained transparent matchgroup=javaLabel start="\<when\>" matchgroup=NONE end=":"me=e-1 end="->"me=e-2 contains=TOP,javaExternal,javaLambdaDef | syn region  javaLabelWhenClause	contained transparent matchgroup=javaLabel start="\<when\>" matchgroup=NONE end=":"me=e-1 end="->"me=e-2 contains=TOP,javaExternal,javaLambdaDef | ||||||
| syn match   javaLabelNumber	contained "\<0\>[lL]\@!" |  | ||||||
| syn match   javaLabelNumber	contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)\>[lL]\@!" |  | ||||||
|  |  | ||||||
| " Comments | " Comments | ||||||
| syn keyword javaTodo		contained TODO FIXME XXX | syn keyword javaTodo		contained TODO FIXME XXX | ||||||
| @@ -692,8 +700,6 @@ hi def link javaUserLabelRef		javaUserLabel | |||||||
| hi def link javaLabel			Label | hi def link javaLabel			Label | ||||||
| hi def link javaLabelDefault		javaLabel | hi def link javaLabelDefault		javaLabel | ||||||
| hi def link javaLabelVarType		javaOperator | hi def link javaLabelVarType		javaOperator | ||||||
| hi def link javaLabelNumber		javaNumber |  | ||||||
| hi def link javaLabelCastType		javaType |  | ||||||
|  |  | ||||||
| hi def link javaComment			Comment | hi def link javaComment			Comment | ||||||
| hi def link javaCommentStar		javaComment | hi def link javaCommentStar		javaComment | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Christian Clason
					Christian Clason