[java] Cosmetic changes in feature-based language level support (IDEA-345517)

GitOrigin-RevId: 8fe21e83b6cee29955d5be5d45744d3db18ea99d
This commit is contained in:
Tagir Valeev
2024-04-03 17:29:43 +02:00
committed by intellij-monorepo-bot
parent d335d79749
commit 7cf578f646
2 changed files with 21 additions and 11 deletions

View File

@@ -78,20 +78,30 @@ public enum LanguageLevel {
Stream.of(values()).filter(ver -> !ver.isPreview())
.collect(Collectors.toMap(ver -> ver.myVersion.feature, Function.identity()));
/**
* Construct the language level for a supported Java version
*
* @param presentableTextSupplier a supplier that returns the language level description
* @param major the major version number. Whether the version is a preview version is determined by the enum constant name
*/
LanguageLevel(Supplier<@Nls String> presentableTextSupplier, int major) {
this(presentableTextSupplier, major, false);
}
LanguageLevel(int major) {
this(JavaPsiBundle.messagePointer("jdk.unsupported.preview.language.level.description", major), major, true);
}
LanguageLevel(Supplier<@Nls String> presentableTextSupplier, int major, boolean unsupported) {
myPresentableText = presentableTextSupplier;
myVersion = JavaVersion.compose(major);
myUnsupported = unsupported;
myUnsupported = false;
myPreview = name().endsWith("_PREVIEW") || name().endsWith("_X");
if (myUnsupported && !myPreview) {
}
/**
* Construct the language level for an unsupported Java version
*
* @param major the major version number. Unsupported Java version is always a preview version
*/
LanguageLevel(int major) {
myPresentableText = JavaPsiBundle.messagePointer("jdk.unsupported.preview.language.level.description", major);
myVersion = JavaVersion.compose(major);
myUnsupported = true;
myPreview = true;
if (!name().endsWith("_PREVIEW")) {
throw new IllegalArgumentException("Only preview versions could be unsupported: " + name());
}
}

View File

@@ -956,7 +956,7 @@ java.preview.features.notification.title=Java preview features
java.preview.features.warning=Newer IDE versions may discontinue support for Java preview features. When Java {0} is released, support for the {1} (Preview) language level may be dropped.
java.preview.features.unsupported.title=Unsupported Java preview features
java.preview.features.unsupported=Java language level <b>{0} (Preview)</b> used in this project is not supported anymore. \
The code insight features may work incorrectly.<br>\
Code insight for the preview features may work incorrectly.<br>\
It''s strongly encouraged to migrate to newer Java version or stop using preview features.
java.terms.exception=exception
java.terms.region=region