runtime(java): Make changes for JDK 24 in syntax script
Commit:
https://github.com/vim/vim/commit/1054b18291ce611932bc949b22b87b78f1975ca9
Author: Aliaksei Budavei <[email protected]>
Date: Sat Mar 29 09:16:30 2025 +0100
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: #16977
Signed-off-by: Aliaksei Budavei <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 1a7452f93..521c6116d 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.1. Last change: 2025 Mar 26
+*syntax.txt* For Vim version 9.1. Last change: 2025 Mar 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2202,12 +2202,12 @@ 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
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: >
- :let g:java_syntax_previews = [455, 476]
+ :let g:java_syntax_previews = [488, 494]
The supported JEP numbers are to be drawn from this table:
`430`: String Templates [JDK 21]
- `455`: Primitive types in Patterns, instanceof, and switch
- `476`: Module Import Declarations
+ `488`: Primitive types in Patterns, instanceof, and switch
+ `494`: Module Import Declarations
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
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 9b38ccd4d..8dabc5e3d 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 <[email protected]>
" 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 "\<var\>\%(\s*(\)\@!"
-if s:ff.IsRequestedPreviewFeature(476)
+if s:ff.IsAnyRequestedPreviewFeatureOf([476, 494])
" Module imports can be used in any source file.
syn match javaExternal "\<import\s\+module\>" 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*\>\%(\<default\>\)\@' .
s:ff.Peek('7', '') . '<!\s*::\@!"he=e-1'
-if s:ff.IsRequestedPreviewFeature(455)
+if s:ff.IsAnyRequestedPreviewFeatureOf([455, 488])
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
@@ -609,7 +615,7 @@ syn region javaString start=+"+ end=+"+
end=+$+ contains=javaSpecialChar,javaS
syn region javaString start=+"""[ \x0c
]*$+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:]
]*\)\@' . s:ff.Peek('80', '') . '<="+ end=+"+
contains=javaStrTemplEmbExp,javaSpecialChar,javaSpecialError,@Spell'
exec 'syn region javaStrTempl start=+\%(\.[[:space:]
]*\)\@' . s:ff.Peek('80', '') . '<="""[ \x0c
]*$+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=+"""[ \x0c
]*$+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\)\@!.*
diff --git a/runtime/syntax/testdir/dumps/java_previews_455_00.dump
b/runtime/syntax/testdir/dumps/java_previews_455_00.dump
index af67913b6..1a446bc69 100644
--- a/runtime/syntax/testdir/dumps/java_previews_455_00.dump
+++ b/runtime/syntax/testdir/dumps/java_previews_455_00.dump
@@ -1,4 +1,4 @@
->/+0#0000e05#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t|
|g|:|j|a|v|a|_|s|y|n|t|a|x|_|p|r|e|v|i|e|w|s| |=| |[|4|5@1|]| +0#0000000&@22
+>/+0#0000e05#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t|
|g|:|j|a|v|a|_|s|y|n|t|a|x|_|p|r|e|v|i|e|w|s| |=| |[|4|5@1|,| |4|8@1|]|
+0#0000000&@17
@75
@75
@75
diff --git a/runtime/syntax/testdir/input/java_previews_455.java
b/runtime/syntax/testdir/input/java_previews_455.java
index b9c2070e1..ed6430f57 100644
--- a/runtime/syntax/testdir/input/java_previews_455.java
+++ b/runtime/syntax/testdir/input/java_previews_455.java
@@ -1,4 +1,4 @@
-// VIM_TEST_SETUP let g:java_syntax_previews = [455]
+// VIM_TEST_SETUP let g:java_syntax_previews = [455, 488]
diff --git a/runtime/syntax/testdir/input/setup/java_module_info.vim
b/runtime/syntax/testdir/input/setup/java_module_info.vim
index b7b818f82..15dbdc80a 100644
--- a/runtime/syntax/testdir/input/setup/java_module_info.vim
+++ b/runtime/syntax/testdir/input/setup/java_module_info.vim
@@ -29,4 +29,4 @@ autocmd_add([{
once: true,
}])
-g:java_syntax_previews = [476]
+g:java_syntax_previews = [476, 494]
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1tyRZr-004zo9-OS%40256bit.org.