language level 12 with RSL support

This commit is contained in:
Anna.Kozlova
2018-10-04 16:37:47 +02:00
parent 958ae451d9
commit f62a26fa0e
9 changed files with 12 additions and 6 deletions
@@ -2930,7 +2930,7 @@ public class HighlightUtil extends HighlightUtilBase {
STATIC_INTERFACE_CALLS(LanguageLevel.JDK_1_8, "feature.static.interface.calls"),
REFS_AS_RESOURCE(LanguageLevel.JDK_1_9, "feature.try.with.resources.refs"),
MODULES(LanguageLevel.JDK_1_9, "feature.modules"),
RAW_LITERALS(LanguageLevel.JDK_X, "feature.raw.literals");
RAW_LITERALS(LanguageLevel.JDK_12_PREVIEW, "feature.raw.literals");
private final LanguageLevel level;
private final String key;
@@ -16,7 +16,7 @@ public class RedundantBackticksAroundRawStringLiteralInspection extends Abstract
@NotNull
@Override
public PsiElementVisitor buildVisitor(@NotNull final ProblemsHolder holder, boolean isOnTheFly) {
if (PsiUtil.getLanguageLevel(holder.getFile()) != LanguageLevel.JDK_X) {
if (PsiUtil.getLanguageLevel(holder.getFile()) != LanguageLevel.JDK_12_PREVIEW) {
return PsiElementVisitor.EMPTY_VISITOR;
}
return new JavaElementVisitor() {
@@ -33,7 +33,7 @@ public class ConvertStringLiteralToRawAction implements IntentionAction, LowPrio
public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) {
final PsiElement element = file.findElementAt(editor.getCaretModel().getOffset());
if (PsiUtil.isJavaToken(element, JavaTokenType.STRING_LITERAL) &&
PsiUtil.getLanguageLevel(file) == LanguageLevel.JDK_X) {
PsiUtil.getLanguageLevel(file) == LanguageLevel.JDK_12_PREVIEW) {
PsiElement parent = element.getParent();
if (parent instanceof PsiLiteralExpressionImpl) {
String text = ((PsiLiteralExpressionImpl)parent).getInnerText();
@@ -26,7 +26,8 @@ public enum JavaSdkVersion {
JDK_1_8(LanguageLevel.JDK_1_8),
JDK_1_9(LanguageLevel.JDK_1_9),
JDK_10(LanguageLevel.JDK_10),
JDK_11(LanguageLevel.JDK_11);
JDK_11(LanguageLevel.JDK_11),
JDK_12(LanguageLevel.JDK_12);
private final LanguageLevel myMaxLanguageLevel;
@@ -30,6 +30,8 @@ public enum LanguageLevel {
JDK_1_9(JavaCoreBundle.message("jdk.1.9.language.level.description"), 9),
JDK_10(JavaCoreBundle.message("jdk.10.language.level.description"), 10),
JDK_11(JavaCoreBundle.message("jdk.11.language.level.description"), 11),
JDK_12(JavaCoreBundle.message("jdk.12.language.level.description"), 12),
JDK_12_PREVIEW(JavaCoreBundle.message("jdk.12.preview.language.level.description"), 12),
JDK_X(JavaCoreBundle.message("jdk.X.language.level.description"), 12);
public static final LanguageLevel HIGHEST = JDK_11;
@@ -10,4 +10,6 @@ jdk.1.8.language.level.description=8 - Lambdas, type annotations etc.
jdk.1.9.language.level.description=9 - Modules, private methods in interfaces etc.
jdk.10.language.level.description=10 - Local variable type inference
jdk.11.language.level.description=11 - Local variable syntax for lambda parameters
jdk.12.language.level.description=12 -
jdk.12.preview.language.level.description=12 (Preview) - Switch expressions, raw string literals
jdk.X.language.level.description=X - Experimental features
@@ -26,7 +26,7 @@ public class LightAdvRawStringLiteralsTest extends LightCodeInsightFixtureTestCa
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {
return JAVA_X;
return JAVA_12;
}
public void testStringAssignability() {
@@ -60,6 +60,7 @@ public abstract class LightCodeInsightFixtureTestCase extends UsefulTestCase {
@NotNull public static final LightProjectDescriptor JAVA_10 = new ProjectDescriptor(LanguageLevel.JDK_10);
@NotNull public static final LightProjectDescriptor JAVA_10_ANNOTATED = new ProjectDescriptor(LanguageLevel.JDK_10, true);
@NotNull public static final LightProjectDescriptor JAVA_11 = new ProjectDescriptor(LanguageLevel.JDK_11);
@NotNull public static final LightProjectDescriptor JAVA_12 = new ProjectDescriptor(LanguageLevel.JDK_12_PREVIEW);
@NotNull public static final LightProjectDescriptor JAVA_X = new ProjectDescriptor(LanguageLevel.JDK_X);
public static final LightProjectDescriptor JAVA_LATEST = new ProjectDescriptor(LanguageLevel.HIGHEST) {
@@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
* @author nik
*/
public enum LanguageLevel {
JDK_1_3(3), JDK_1_4(4), JDK_1_5(5), JDK_1_6(6), JDK_1_7(7), JDK_1_8(8), JDK_1_9(9), JDK_10(10), JDK_11(11), JDK_X(12);
JDK_1_3(3), JDK_1_4(4), JDK_1_5(5), JDK_1_6(6), JDK_1_7(7), JDK_1_8(8), JDK_1_9(9), JDK_10(10), JDK_11(11), JDK_12(12), JDK_12_PREVIEW(12), JDK_X(13);
private final JavaVersion myVersion;