runtime(java): Optionally recognise all primitive constants in _switch-case_ labels

Define "g:java_syntax_previews" and include number 455 in
its list to enable this recognition:
------------------------------------------------------------
	let g:java_syntax_previews = [455]
------------------------------------------------------------

Reference:
https://openjdk.org/jeps/455

closes: #15698

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Aliaksei Budavei
2024-09-19 18:22:58 +02:00
committed by Christian Brabandt
parent 41c7bbaf8f
commit 23079450a8
7 changed files with 160 additions and 9 deletions

View File

@ -0,0 +1,20 @@
>/+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
@75
@75
@75
|c+0#00e0003&|l|a|s@1| +0#0000000&|P|r|i|m|i|t|i|v|e|S|w|i|t|c|h|T|e|s|t|s| @1|/+0#0000e05&@1| |J|D|K| |2|3|+| |(|-@1|e|n|a|b|l|e|-|p|r|e|v|i|e|w| |-@1|r|e|l|e|a|s|e| |2|3|)|.| +0#0000000&@3
|{| @73
@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|e|c|h|o|(|O|b|j|e|c|t| |o|)| |{| |S|y|s|t|e|m|.|o|u|t|.|p|r|i|n|t|l|n|(|o|)|;| |}| @17
@75
@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|{| @62
@8|l+0#00e0003&|o|n|g| +0#0000000&|g| |=| |2+0#e000002&|L|;+0#0000000&| @54
@75
@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|g|)| |{| @54
@8|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|L|:+0#0000000&| @7|{| |e|c|h|o|(|0+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @30
@8|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|L|:+0#0000000&| @7|{| |e|c|h|o|(|1+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @30
@8|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| @7|{| |e|c|h|o|(|-|1+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @29
@8|}| @65
@75
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|g|)| |{| @49
@12|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|L| +0#0000000&@4|-|>| |0+0#e000002&|L|;+0#0000000&| @44
@57|1|,|1| @10|T|o|p|

View File

@ -0,0 +1,20 @@
| +0&#ffffff0@7|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|L|:+0#0000000&| @7|{| |e|c|h|o|(|1+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @30
@8|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| @7|{| |e|c|h|o|(|-|1+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @29
@8|}| @65
@75
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|g|)| |{| @49
@12>c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|L| +0#0000000&@4|-|>| |0+0#e000002&|L|;+0#0000000&| @44
@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|L| +0#0000000&@4|-|>| |1+0#e000002&|L|;+0#0000000&| @44
@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&@4|-|>| |-|1+0#e000002&|L|;+0#0000000&| @43
@8|}|)|;| @63
@75
@8|b+0#00e0003&|o@1|l|e|a|n| +0#0000000&|b|o@1|l| |=| |f+0#e000002&|a|l|s|e|;+0#0000000&| @45
@75
@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|b|o@1|l|)| |{| @51
@8|c+0#af5f00255&|a|s|e| +0#0000000&|t+0#e000002&|r|u|e|:+0#0000000&| @5|{| |e|c|h|o|(|t+0#e000002&|r|u|e|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @28
@8|c+0#af5f00255&|a|s|e| +0#0000000&|f+0#e000002&|a|l|s|e|:+0#0000000&| @4|{| |e|c|h|o|(|f+0#e000002&|a|l|s|e|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @27
@8|}| @65
@75
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|b|o@1|l|)| |{| @46
@12|c+0#af5f00255&|a|s|e| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@2|-|>| |t+0#e000002&|r|u|e|;+0#0000000&| @42
@57|1|9|,|4|-|1|3| @6|2|8|%|

View File

@ -0,0 +1,20 @@
| +0&#ffffff0@11|c+0#af5f00255&|a|s|e| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@2|-|>| |t+0#e000002&|r|u|e|;+0#0000000&| @42
@12|c+0#af5f00255&|a|s|e| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@1|-|>| |f+0#e000002&|a|l|s|e|;+0#0000000&| @41
@8|}|)|;| @63
@75
@8|f+0#00e0003&|l|o|a|t| +0#0000000&|f| |=| |2+0#e000002&|.|0|f|;+0#0000000&| @51
> @74
@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|f|)| |{| @54
@8|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|.|0|f|:+0#0000000&| @5|{| |e|c|h|o|(|0+0#e000002&|.|0|f|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @28
@8|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|.|0|f|:+0#0000000&| @5|{| |e|c|h|o|(|1+0#e000002&|.|0|f|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @28
@8|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| @7|{| |e|c|h|o|(|-|1+0#e000002&|.|0|f|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @27
@8|}| @65
@75
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|f|)| |{| @49
@12|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|.|0|f| +0#0000000&@2|-|>| |0+0#e000002&|.|0|f|;+0#0000000&| @42
@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|.|0|f| +0#0000000&@2|-|>| |1+0#e000002&|.|0|f|;+0#0000000&| @42
@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&@4|-|>| |-|1+0#e000002&|.|0|f|;+0#0000000&| @41
@8|}|)|;| @63
@75
@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|d| |=| |2+0#e000002&|.|0|;+0#0000000&| @51
@57|3|7|,|0|-|1| @7|6|8|%|

View File

@ -0,0 +1,20 @@
| +0&#ffffff0@7|d+0#00e0003&|o|u|b|l|e| +0#0000000&|d| |=| |2+0#e000002&|.|0|;+0#0000000&| @51
@75
@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|d|)| |{| @54
@8|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|.|0|:+0#0000000&| @6|{| |e|c|h|o|(|0+0#e000002&|.|0|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @29
@8|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|.|0|:+0#0000000&| @6|{| |e|c|h|o|(|1+0#e000002&|.|0|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @29
@8>d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| @7|{| |e|c|h|o|(|-|1+0#e000002&|.|0|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @28
@8|}| @65
@75
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|d|)| |{| @49
@12|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|.|0| +0#0000000&@3|-|>| |0+0#e000002&|.|0|;+0#0000000&| @43
@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|.|0| +0#0000000&@3|-|>| |1+0#e000002&|.|0|;+0#0000000&| @43
@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&@4|-|>| |-|1+0#e000002&|.|0|;+0#0000000&| @42
@8|}|)|;| @63
@4|}| @69
|}| @73
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|5@1|,|3|-|9| @7|B|o|t|

View File

@ -0,0 +1,64 @@
// VIM_TEST_SETUP let g:java_syntax_previews = [455]
class PrimitiveSwitchTests // JDK 23+ (--enable-preview --release 23).
{
static void echo(Object o) { System.out.println(o); }
static {
long g = 2L;
switch (g) {
case 0L: { echo(0L); break; }
case 1L: { echo(1L); break; }
default: { echo(-1L); break; }
}
echo(switch (g) {
case 0L -> 0L;
case 1L -> 1L;
default -> -1L;
});
boolean bool = false;
switch (bool) {
case true: { echo(true); break; }
case false: { echo(false); break; }
}
echo(switch (bool) {
case true -> true;
case false -> false;
});
float f = 2.0f;
switch (f) {
case 0.0f: { echo(0.0f); break; }
case 1.0f: { echo(1.0f); break; }
default: { echo(-1.0f); break; }
}
echo(switch (f) {
case 0.0f -> 0.0f;
case 1.0f -> 1.0f;
default -> -1.0f;
});
double d = 2.0;
switch (d) {
case 0.0: { echo(0.0); break; }
case 1.0: { echo(1.0); break; }
default: { echo(-1.0); break; }
}
echo(switch (d) {
case 0.0 -> 0.0;
case 1.0 -> 1.0;
default -> -1.0;
});
}
}