runtime(java): Match annotation- and interface-type names of "java.lang"

Commit: 
https://github.com/vim/vim/commit/b577ad50d0fcc9588a73a93a64e7f34f4e74cdff
Author: Aliaksei Budavei <0x000...@gmail.com>
Date:   Sun Jun 1 18:29:37 2025 +0200

    runtime(java): Match annotation- and interface-type names of "java.lang"
    
    Complement the documented support for the recognition of all
    public types of the "java.lang" package (":help java.vim").
    (The original syntax item generator may have, inadvertently,
    contributed via suppressing "NullPointerException"s to not
    having annotation and interface types qualify in general.)
    
    Also, re-link usage instructions for the alternative syntax
    item generator to a rolling "master"'s version.
    
    closes: #17419
    
    Signed-off-by: Aliaksei Budavei <0x000...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 76b8dc0be..a23b892e5 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 May 31
+*syntax.txt*   For Vim version 9.1.  Last change: 2025 Jun 01
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2068,7 +2068,7 @@ All (exported) public types declared in `java.lang` are 
always automatically
 imported and available as simple names.  To highlight them, use: >
        :let g:java_highlight_java_lang_ids = 1
 You can also generate syntax items for other public and protected types and
-opt in to highlight some of their names see |java-package-info-url|.
+opt in to highlight some of their names; see |java-package-info-url|.
 
 Headers of indented function declarations can be highlighted (along with parts
 of lambda expressions and method reference expressions), but it depends on how
@@ -2222,7 +2222,7 @@ 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
 optionality will be discontinued.
                                                *java-package-info-url*
-https://github.com/zzzyxwvut/java-vim/blob/42cbd51/tools/javaid/src/javaid/package-info.java
+https://github.com/zzzyxwvut/java-vim/blob/master/tools/javaid/src/javaid/package-info.java
 
 JSON                   *json.vim* *ft-json-syntax* *g:vim_json_conceal*
                                                *g:vim_json_warnings*
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 8128512a2..0cb54349a 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 <clau...@fleiner.com>
 " Repository:          https://github.com/zzzyxwvut/java-vim.git
-" Last Change:         2025 May 30
+" Last Change:         2025 Jun 01
 
 " Please check ":help java.vim" for comments on some of the options
 " available.
@@ -229,15 +229,15 @@ endif
 if exists("g:java_highlight_java_lang_ids")
   let g:java_highlight_all = 1
 endif
+
 if exists("g:java_highlight_all") || exists("g:java_highlight_java") || 
exists("g:java_highlight_java_lang")
   " java.lang.*
   "
-  " The keywords of javaR_JavaLang, javaC_JavaLang, javaE_JavaLang,
-  " and javaX_JavaLang are sub-grouped according to the Java version
-  " of their introduction, and sub-group keywords (that is, class
-  " names) are arranged in alphabetical order, so that future newer
-  " keywords can be pre-sorted and appended without disturbing
-  " the current keyword placement. The below _match_es follow suit.
+  " The type names in ":syn-keyword"s (and in ":syn-match"es) of the
+  " "java[CEIRX]_JavaLang" syntax groups are sub-grouped according to
+  " the Java version of their introduction, and sub-group names are
+  " arranged in alphabetical order, so that future newer names can be
+  " pre-sorted and appended without disturbing their placement.
 
   syn keyword javaR_JavaLang ArithmeticException 
ArrayIndexOutOfBoundsException ArrayStoreException ClassCastException 
IllegalArgumentException IllegalMonitorStateException 
IllegalThreadStateException IndexOutOfBoundsException 
NegativeArraySizeException NullPointerException NumberFormatException 
RuntimeException SecurityException StringIndexOutOfBoundsException 
IllegalStateException UnsupportedOperationException 
EnumConstantNotPresentException TypeNotPresentException IllegalCallerException 
LayerInstantiationException WrongThreadException MatchException
   syn cluster javaClasses add=javaR_JavaLang
@@ -278,15 +278,35 @@ if exists("g:java_highlight_all") || 
exists("g:java_highlight_java") || exists("
   syn keyword javaX_JavaLang ClassNotFoundException CloneNotSupportedException 
Exception IllegalAccessException InstantiationException InterruptedException 
NoSuchMethodException Throwable NoSuchFieldException 
ReflectiveOperationException
   syn cluster javaClasses add=javaX_JavaLang
   hi def link javaX_JavaLang javaX_Java
+  syn keyword javaI_JavaLang Cloneable Runnable CharSequence Appendable 
Deprecated Override Readable SuppressWarnings AutoCloseable SafeVarargs 
FunctionalInterface ProcessHandle
+  " Member interfaces:
+  exec 'syn match javaI_JavaLang "\%(\<Thread\.\)\@' . s:ff.Peek('7', '') . 
'<=\<UncaughtExceptionHandler\>"'
+  exec 'syn match javaI_JavaLang "\%(\<ProcessHandle\.\)\@' . s:ff.Peek('14', 
'') . '<=\<Info\>"'
+  exec 'syn match javaI_JavaLang "\%(\<System\.\)\@' . s:ff.Peek('7', '') . 
'<=\<Logger\>"'
+  exec 'syn match javaI_JavaLang "\%(\<StackWalker\.\)\@' . s:ff.Peek('12', 
'') . '<=\<StackFrame\>"'
+  exec 'syn match javaI_JavaLang "\%(\<Thread\.\)\@' . s:ff.Peek('7', '') . 
'<=\<Builder\>"'
+  exec 'syn match javaI_JavaLang "\%(\<Thread\.Builder\.\)\@' . 
s:ff.Peek('15', '') . '<=\<OfPlatform\>"'
+  exec 'syn match javaI_JavaLang "\%(\<Thread\.Builder\.\)\@' . 
s:ff.Peek('15', '') . '<=\<OfVirtual\>"'
+
+  if !exists("g:java_highlight_generics")
+    " The non-class parameterised names of java.lang members.
+    syn keyword javaI_JavaLang Comparable Iterable
+  endif
+
+  syn cluster javaClasses add=javaI_JavaLang
+  hi def link javaI_JavaLang javaI_Java
 
+  " Common groups for generated "javaid.vim" syntax items.
   hi def link javaR_Java javaR_
   hi def link javaC_Java javaC_
   hi def link javaE_Java javaE_
   hi def link javaX_Java javaX_
+  hi def link javaI_Java javaI_
   hi def link javaX_ javaExceptions
   hi def link javaR_ javaExceptions
   hi def link javaE_ javaExceptions
   hi def link javaC_ javaConstant
+  hi def link javaI_ javaTypedef
 
   syn keyword javaLangObject getClass notify notifyAll wait
 

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1uLlnz-00BRdF-0m%40256bit.org.

Raspunde prin e-mail lui