mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
runtime(java): Provide support for syntax preview features
Introduce a new API variable "g:java_syntax_previews" whose value must be a list of syntax preview feature numbers. Enumerate the currently supported numbers in a table at the end of the documentation entry for "ft-java-syntax". Also, disable the recognition of String Templates. Despite the withdrawal of this preview feature in its proposed form from the upcoming JDK 23 release and the fact that the JDK 22 release is coming to EOL this September, an earlier iteration of this preview feature was included in JDK 21 (LTS) whose EOL is projected to fall due in late 2028 and, therefore, retain the current implementation. Define "g:java_syntax_previews" and include number 430 in its list to enable the recognition of String Templates: ------------------------------------------------------------ let g:java_syntax_previews = [430] ------------------------------------------------------------ References: https://openjdk.org/jeps/430 (Preview) https://openjdk.org/jeps/459 (Second Preview) https://openjdk.org/jeps/465 (Third Preview) https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html closes: #15579 Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
d56c451e1c
commit
8556e23ee9
@@ -1,4 +1,4 @@
|
||||
class StringTests // JDK 21+ (--enable-preview --release 21).
|
||||
class StringTests
|
||||
{
|
||||
static {
|
||||
String s1 = "A quick brown fox jumps over the lazy dog";
|
||||
@@ -40,65 +40,5 @@ class StringTests // JDK 21+ (--enable-preview --release 21).
|
||||
""\"""\u005c\u0022
|
||||
""\"""\""
|
||||
""\"""\""\"""");
|
||||
|
||||
System.out.println(STR."""
|
||||
"
|
||||
\{"\"\""}
|
||||
\{"\"\""}\{"\u005c\u0022"}
|
||||
\{"\"\""}\{"\u005c\u0022"}"
|
||||
\{"\"\""}\"\{"\u005c\u0022\u005c\u0022"}
|
||||
\{"\"\""}\"\{"\"\""}\{"\u005c\u0022"}
|
||||
\{"\"\""}\"\{"\"\""}\""
|
||||
\{"\"\""}\"\{"\"\""}\""\""""); // JDK 21+.
|
||||
|
||||
String woof = "Woof", dog = "dog", fox = "fox";
|
||||
|
||||
String s6 = STR
|
||||
."A quick brown \{fox} jumps over the lazy \{dog}";
|
||||
String s7 = STR.process(StringTemplate.RAW
|
||||
."\"\{woof}\s!\"");
|
||||
String s8 = STR."""
|
||||
A\s\
|
||||
quick \
|
||||
brown\s\
|
||||
\{fox} \
|
||||
jumps\s\
|
||||
over \
|
||||
the\s\
|
||||
lazy \
|
||||
\{dog}""";
|
||||
String s9 = STR.process(StringTemplate.RAW
|
||||
.
|
||||
"""
|
||||
"\{woof}\s!\"""");
|
||||
String s10 = java.util.FormatProcessor.FMT
|
||||
. "%-14s\{"A\s" + STR . "quick" + "brown"}%s\{fox} "
|
||||
+ java.util.FormatProcessor.FMT
|
||||
. "%-20s\{"jumps\sover the\s"
|
||||
+ STR . "lazy"}%s\{dog}";
|
||||
String s11 = STR."""
|
||||
\"\{ // A nested comment.
|
||||
(new java.util.function.Function<String, String>() {
|
||||
public String apply(String bay) { return bay; };
|
||||
}).apply(woof)
|
||||
}\s!\"""";
|
||||
String s12 = java.util.FormatProcessor.FMT
|
||||
."""
|
||||
%-14s\{STR."""
|
||||
A\s\
|
||||
\{ "quick" } \
|
||||
brown"""}\
|
||||
%s\{ fox } \
|
||||
%-20s\{STR."""
|
||||
jumps\s\
|
||||
over \
|
||||
the\s\
|
||||
\{ "lazy" } """}\
|
||||
%s\{ dog }""";
|
||||
String s13 = STR
|
||||
."\"\{ /* A nested comment. */
|
||||
((java.util.function.Function<String, String>) bay -> bay)
|
||||
.apply(woof)
|
||||
}\s!\"";
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user