From ca4a6e39d1b2b35cce2366a467329485fb192bfd Mon Sep 17 00:00:00 2001 From: "Maxim.Medvedev" Date: Thu, 15 Mar 2012 16:23:37 +0400 Subject: [PATCH] IDEA-80213 Enable fragment editor for multiline strings --- .../lang/editor/GroovyLiteralCopyPasteProcessor.java | 6 ++---- .../plugins/groovy/lang/psi/util/GrStringUtil.java | 12 ++++++------ .../lang/resolve/GroovyStringLiteralManipulator.java | 7 ++++--- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/GroovyLiteralCopyPasteProcessor.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/GroovyLiteralCopyPasteProcessor.java index 89c710f3ebbf..659c100a0058 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/GroovyLiteralCopyPasteProcessor.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/GroovyLiteralCopyPasteProcessor.java @@ -157,13 +157,11 @@ public class GroovyLiteralCopyPasteProcessor extends StringLiteralCopyPasteProce } if (tokenType == mGSTRING_CONTENT || tokenType == mGSTRING_LITERAL) { - boolean escapeDoubleQuotes = !token.getText().contains("\"\"\""); - return GrStringUtil.escapeSymbolsForGString(s, escapeDoubleQuotes, false); + return GrStringUtil.escapeSymbolsForGString(s, !token.getText().contains("\"\"\""), false); } if (tokenType == mSTRING_LITERAL) { - boolean escapeQuotes = !token.getText().contains("'''"); - return GrStringUtil.escapeSymbolsForString(s, escapeQuotes, false); + return GrStringUtil.escapeSymbolsForString(s, !token.getText().contains("'''"), false); } return super.escapeCharCharacters(s, token); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrStringUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrStringUtil.java index b7a948d5f302..9658515a2ac7 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrStringUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrStringUtil.java @@ -242,20 +242,20 @@ public class GrStringUtil { buffer.append(hexCode); } - public static String escapeSymbolsForGString(String s, boolean escapeDoubleQuotes, boolean forInjection) { + public static String escapeSymbolsForGString(String s, boolean isSingleLine, boolean forInjection) { StringBuilder b = new StringBuilder(); - escapeStringCharacters(s.length(), s, escapeDoubleQuotes ? "$\"" : "$", forInjection, true, b); + escapeStringCharacters(s.length(), s, isSingleLine ? "$\"" : "$", isSingleLine, true, b); if (!forInjection) { - unescapeCharacters(b, escapeDoubleQuotes ? "'" : "'\"", true); + unescapeCharacters(b, isSingleLine ? "'" : "'\"", true); } return b.toString(); } - public static String escapeSymbolsForString(String s, boolean escapeQuotes, boolean forInjection) { + public static String escapeSymbolsForString(String s, boolean isSingleLine, boolean forInjection) { final StringBuilder builder = new StringBuilder(); - escapeStringCharacters(s.length(), s, escapeQuotes ? "'" : "", forInjection, true, builder); + escapeStringCharacters(s.length(), s, isSingleLine ? "'" : "", isSingleLine, true, builder); if (!forInjection) { - unescapeCharacters(builder, escapeQuotes ? "$\"" : "$'\"", true); + unescapeCharacters(builder, isSingleLine ? "$\"" : "$'\"", true); } return builder.toString(); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyStringLiteralManipulator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyStringLiteralManipulator.java index 0737a3e1aa64..67d975795cdc 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyStringLiteralManipulator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/resolve/GroovyStringLiteralManipulator.java @@ -17,6 +17,7 @@ package org.jetbrains.plugins.groovy.lang.resolve; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.AbstractElementManipulator; import com.intellij.util.IncorrectOperationException; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.literals.GrLiteral; @@ -36,10 +37,10 @@ public class GroovyStringLiteralManipulator extends AbstractElementManipulator