java: keep text blocks escapes as separate feature

GitOrigin-RevId: 086115a4a13b983c6a9f116253634fd15dab612e
This commit is contained in:
Anna Kozlova
2020-06-10 09:07:15 +03:00
committed by intellij-monorepo-bot
parent 97d8494221
commit bb49afba0d
4 changed files with 5 additions and 3 deletions
@@ -109,6 +109,7 @@ feature.modules=Modules
feature.lvti=Local variable type inference
feature.var.lambda.parameter='var' in lambda parameters
feature.text.blocks=Text block literals
feature.text.block.escape.sequences='\\s' and '\\' escape sequences
feature.enhanced.switch=Enhanced 'switch' blocks
feature.switch.expressions='switch' expressions
feature.records=Records
@@ -1218,13 +1218,13 @@ public class HighlightUtil {
}
else {
if (file != null && containsUnescaped(text, "\\\n")) {
final HighlightInfo info = checkFeature(expression, HighlightingFeature.TEXT_BLOCKS, level, file);
final HighlightInfo info = checkFeature(expression, HighlightingFeature.TEXT_BLOCK_ESCAPES, level, file);
if (info != null) return info;
}
}
}
if (file != null && containsUnescaped(text, "\\s")) {
final HighlightInfo info = checkFeature(expression, HighlightingFeature.TEXT_BLOCKS, level, file);
final HighlightInfo info = checkFeature(expression, HighlightingFeature.TEXT_BLOCK_ESCAPES, level, file);
if (info != null) return info;
}
}
@@ -36,6 +36,7 @@ public enum HighlightingFeature {
SWITCH_EXPRESSION(LanguageLevel.JDK_14, "feature.switch.expressions"),
RECORDS(LanguageLevel.JDK_14_PREVIEW, "feature.records"),
PATTERNS(LanguageLevel.JDK_14_PREVIEW, "feature.patterns.instanceof"),
TEXT_BLOCK_ESCAPES(LanguageLevel.JDK_14_PREVIEW, "feature.text.block.escape.sequences"),
TEXT_BLOCKS(LanguageLevel.JDK_14_PREVIEW, "feature.text.blocks") {
@Override
boolean isSufficient(@NotNull LanguageLevel useSiteLevel) {
@@ -23,6 +23,6 @@ class UnsupportedFeatures {
String raw = <error descr="Text block literals are not supported at language level '1.4'">"""hi there"""</error>;
String spaceEscapeSeq = <error descr="Text block literals are not supported at language level '1.4'">"\s"</error>;
String spaceEscapeSeq = <error descr="'\s' and '\' escape sequences are not supported at language level '1.4'">"\s"</error>;
}
}