diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/StringLiteralEscaper.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/StringLiteralEscaper.java index adfb825cfd90..213232073971 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/StringLiteralEscaper.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/injected/StringLiteralEscaper.java @@ -15,6 +15,7 @@ */ package com.intellij.psi.impl.source.tree.injected; +import com.intellij.psi.PsiLanguageInjectionHost; import com.intellij.psi.impl.source.tree.java.PsiLiteralExpressionImpl; import com.intellij.psi.LiteralTextEscaper; import com.intellij.openapi.util.TextRange; @@ -24,10 +25,10 @@ import org.jetbrains.annotations.NotNull; /** * @author cdr */ -public class StringLiteralEscaper extends LiteralTextEscaper { +public class StringLiteralEscaper extends LiteralTextEscaper { private int[] outSourceOffsets; - public StringLiteralEscaper(PsiLiteralExpressionImpl host) { + public StringLiteralEscaper(T host) { super(host); } diff --git a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java index 49891e75539e..873ad30ea6af 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/tree/java/PsiLiteralExpressionImpl.java @@ -547,7 +547,7 @@ public class PsiLiteralExpressionImpl @NotNull public LiteralTextEscaper createLiteralTextEscaper() { - return new StringLiteralEscaper(this); + return new StringLiteralEscaper(this); } public void processInjectedPsi(@NotNull InjectedPsiVisitor visitor) { diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/literals/GrLiteralEscaper.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/literals/GrLiteralEscaper.java index 4e371961f868..64f0ae72624c 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/literals/GrLiteralEscaper.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/literals/GrLiteralEscaper.java @@ -16,32 +16,14 @@ package org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.literals; -import com.intellij.psi.LiteralTextEscaper; -import com.intellij.psi.impl.source.tree.java.PsiLiteralExpressionImpl; -import com.intellij.openapi.util.TextRange; -import com.intellij.openapi.util.ProperTextRange; -import org.jetbrains.annotations.NotNull; +import com.intellij.psi.impl.source.tree.injected.StringLiteralEscaper; -public class GrLiteralEscaper extends LiteralTextEscaper { - private int[] outSourceOffsets; +public class GrLiteralEscaper extends StringLiteralEscaper { public GrLiteralEscaper(final GrLiteralImpl literal) { super(literal); } - public boolean decode(@NotNull final TextRange rangeInsideHost, @NotNull StringBuilder outChars) { - ProperTextRange.assertProperRange(rangeInsideHost); - String subText = rangeInsideHost.substring(myHost.getText()); - outSourceOffsets = new int[subText.length() + 1]; - return PsiLiteralExpressionImpl.parseStringCharacters(subText, outChars, outSourceOffsets); - } - - public int getOffsetInHost(int offsetInDecoded, @NotNull final TextRange rangeInsideHost) { - int result = offsetInDecoded < outSourceOffsets.length ? outSourceOffsets[offsetInDecoded] : -1; - if (result == -1) return -1; - return (result <= rangeInsideHost.getLength() ? result : rangeInsideHost.getLength()) + rangeInsideHost.getStartOffset(); - } - public boolean isOneLine() { final Object value = myHost.getValue(); return value instanceof String && ((String)value).indexOf('\n') < 0;