enable spellchecker inside raw string literals (IDEA-190938)

This commit is contained in:
Anna.Kozlova
2018-04-25 19:33:37 +02:00
parent 7c782d938a
commit f05f48c17f
@@ -6,6 +6,7 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
import com.intellij.psi.impl.source.tree.java.PsiLiteralExpressionImpl;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.spellchecker.inspections.PlainTextSplitter;
@@ -23,7 +24,8 @@ public class LiteralExpressionTokenizer extends EscapeSequenceTokenizer<PsiLiter
@Override
public void tokenize(@NotNull PsiLiteralExpression element, TokenConsumer consumer) {
PsiLiteralExpressionImpl literalExpression = (PsiLiteralExpressionImpl)element;
if (literalExpression.getLiteralElementType() != JavaTokenType.STRING_LITERAL) return; // not a string literal
IElementType literalElementType = literalExpression.getLiteralElementType();
if (literalElementType != JavaTokenType.STRING_LITERAL && literalElementType != JavaTokenType.RAW_STRING_LITERAL) return; // not a string literal
String text = literalExpression.getInnerText();
if (StringUtil.isEmpty(text) || text.length() <= 2) { // optimisation to avoid expensive injection check