From d6a5bc4e8b69798b3accf17651b845d078a5743b Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 29 Mar 2025 09:29:44 +0100 Subject: vim-patch:1054b18: runtime(java): Make changes for JDK 24 in syntax script - "Demote" SecurityManager from the list of java.lang class types to javaLangDeprecated. - Reintroduce supported syntax-preview-feature numbers 455 and 476 as _new numbers_ 488 and 494, respectively. References: - https://openjdk.org/jeps/486 (Permanently Disable the Security Manager) - https://openjdk.org/jeps/488 (Primitive Types in Patterns etc.) - https://openjdk.org/jeps/494 (Module Import Declarations) closes: vim/vim#16977 https://github.com/vim/vim/commit/1054b18291ce611932bc949b22b87b78f1975ca9 Co-authored-by: Aliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com> --- runtime/syntax/java.vim | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'runtime/syntax') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index 9b38ccd4dc..8dabc5e3df 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2025 Jan 02 +" Last Change: 2025 Mar 26 " Please check ":help java.vim" for comments on some of the options " available. @@ -46,8 +46,10 @@ function! s:ff.RightConstant(x, y) abort return a:y endfunction -function! s:ff.IsRequestedPreviewFeature(n) abort - return exists("g:java_syntax_previews") && index(g:java_syntax_previews, a:n) + 1 +function! s:ff.IsAnyRequestedPreviewFeatureOf(ns) abort + return exists("g:java_syntax_previews") && + \ !empty(filter(a:ns, printf('index(%s, v:val) + 1', + \ string(g:java_syntax_previews)))) endfunction if !exists("*s:ReportOnce") @@ -108,7 +110,7 @@ syn keyword javaTypedef this super syn keyword javaOperator new instanceof syn match javaOperator "\\%(\s*(\)\@!" -if s:ff.IsRequestedPreviewFeature(476) +if s:ff.IsAnyRequestedPreviewFeatureOf([476, 494]) " Module imports can be used in any source file. syn match javaExternal "\" contains=javaModuleImport syn keyword javaModuleImport contained module @@ -262,8 +264,12 @@ if exists("g:java_highlight_all") || exists("g:java_highlight_java") || exists(" syn keyword javaC_JavaLang Class InheritableThreadLocal ThreadLocal Enum ClassValue endif - " As of JDK 21, java.lang.Compiler is no more (deprecated in JDK 9). - syn keyword javaLangDeprecated Compiler + " As of JDK 24, SecurityManager is rendered non-functional + " (JDK-8338625). + " (Note that SecurityException and RuntimePermission are still + " not deprecated.) + " As of JDK 21, Compiler is no more (JDK-8205129). + syn keyword javaLangDeprecated Compiler SecurityManager syn cluster javaClasses add=javaC_JavaLang hi def link javaC_JavaLang javaC_Java syn keyword javaE_JavaLang AbstractMethodError ClassCircularityError ClassFormatError Error IllegalAccessError IncompatibleClassChangeError InstantiationError InternalError LinkageError NoClassDefFoundError NoSuchFieldError NoSuchMethodError OutOfMemoryError StackOverflowError ThreadDeath UnknownError UnsatisfiedLinkError VerifyError VirtualMachineError ExceptionInInitializerError UnsupportedClassVersionError AssertionError BootstrapMethodError @@ -311,7 +317,7 @@ endif exec 'syn match javaUserLabel "^\s*\<\K\k*\>\%(\\)\@' . s:ff.Peek('7', '') . '" matchgroup=NONE end=":\|->" contains=javaBoolean,javaNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaType,javaLabelDefault,javaLabelVarType,javaLabelWhenClause else syn region javaLabelRegion transparent matchgroup=javaLabel start="\" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaGenerics,javaLabelDefault,javaLabelVarType,javaLabelWhenClause @@ -609,7 +615,7 @@ syn region javaString start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaS syn region javaString start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell syn match javaTextBlockError +"""\s*"""+ -if s:ff.IsRequestedPreviewFeature(430) +if s:ff.IsAnyRequestedPreviewFeatureOf([430]) 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' @@ -688,7 +694,7 @@ if exists("g:java_highlight_debug") 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 - if s:ff.IsRequestedPreviewFeature(430) + if s:ff.IsAnyRequestedPreviewFeatureOf([430]) " The highlight groups of java{StrTempl,Debug{,Paren,StrTempl}}\, " share one colour by default. Do not conflate unrelated parens. syn region javaDebugStrTemplEmbExp contained matchgroup=javaDebugStrTempl start="\\{" end="}" contains=javaComment,javaLineComment,javaDebug\%(Paren\)\@!.* -- cgit