]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(java): Make changes for JDK 24 in syntax script
authorAliaksei Budavei <32549825+zzzyxwvut@users.noreply.github.com>
Sat, 29 Mar 2025 08:16:30 +0000 (09:16 +0100)
committerChristian Brabandt <cb@256bit.org>
Sat, 29 Mar 2025 08:16:30 +0000 (09:16 +0100)
- "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 <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/doc/syntax.txt
runtime/syntax/java.vim
runtime/syntax/testdir/dumps/java_previews_455_00.dump
runtime/syntax/testdir/input/java_previews_455.java
runtime/syntax/testdir/input/setup/java_module_info.vim

index 1a7452f93c51c928a78ddbe85df0f80d8bab838a..521c6116d8c294b7f5d7840faedf45eee74bc940 100644 (file)
@@ -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
index 9b38ccd4dc77015a86a608a7d185c9327a408241..8dabc5e3dfd28ae21cb8d180c56eaa0e8ef86a9f 100644 (file)
@@ -3,7 +3,7 @@
 " Maintainer:          Aliaksei Budavei <0x000c70 AT gmail DOT com>
 " Former Maintainer:   Claudio Fleiner <claudio@fleiner.com>
 " 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=+"""[ \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\)\@!.*
index af67913b6f55fa89da4c36df01acc850ad23f189..1a446bc6932cd40056c72ebab5696db31c04286a 100644 (file)
@@ -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
index b9c2070e1cf0b5156c2676adc92b3ad344471a6e..ed6430f573ae4994170f78c48e587f60034e551f 100644 (file)
@@ -1,4 +1,4 @@
-// VIM_TEST_SETUP let g:java_syntax_previews = [455]
+// VIM_TEST_SETUP let g:java_syntax_previews = [455, 488]
 
 
 
index b7b818f822825196326b4e6b960bc6de2c0e45a1..15dbdc80abb1c2dc11f193d3f311e10cb64280d3 100644 (file)
@@ -29,4 +29,4 @@ autocmd_add([{
     once:      true,
 }])
 
-g:java_syntax_previews = [476]
+g:java_syntax_previews = [476, 494]