mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
'Convert Gstring to String' honor existing escapes
This commit is contained in:
@@ -1065,7 +1065,7 @@
|
||||
<intentionAction>
|
||||
<bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
|
||||
<categoryKey>intention.category.groovy/intention.category.conversions</categoryKey>
|
||||
<className>org.jetbrains.plugins.groovy.intentions.conversions.ConvertGStringToStringIntention</className>
|
||||
<className>org.jetbrains.plugins.groovy.intentions.conversions.strings.ConvertGStringToStringIntention</className>
|
||||
</intentionAction>
|
||||
<intentionAction>
|
||||
<bundleName>org.jetbrains.plugins.groovy.intentions.GroovyIntentionsBundle</bundleName>
|
||||
|
||||
+14
-4
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.plugins.groovy.intentions.conversions;
|
||||
package org.jetbrains.plugins.groovy.intentions.conversions.strings;
|
||||
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -154,9 +154,19 @@ public class ConvertGStringToStringIntention extends Intention {
|
||||
|
||||
|
||||
final StringBuilder buffer = new StringBuilder();
|
||||
boolean containsLineFeeds = text.indexOf('\n') >= 0 || text.indexOf('\r') >= 0;
|
||||
GrStringUtil.escapeStringCharacters(text.length(), text, "'", false, false, buffer);
|
||||
GrStringUtil.unescapeCharacters(buffer, containsLineFeeds ? "$'\"" : "$\"", true);
|
||||
if (text.indexOf('\n') >= 0) {
|
||||
GrStringUtil.escapeAndUnescapeSymbols(text, "", "\"$", buffer);
|
||||
fixAllTripleQuotes(buffer, 0);
|
||||
}
|
||||
else {
|
||||
GrStringUtil.escapeAndUnescapeSymbols(text, "'", "\"$", buffer);
|
||||
}
|
||||
return GrStringUtil.addQuotes(buffer.toString(), false);
|
||||
}
|
||||
|
||||
private static void fixAllTripleQuotes(StringBuilder builder, int position) {
|
||||
for (int i = builder.indexOf("'''", position); i >= 0; i = builder.indexOf("'''", i)) {
|
||||
builder.replace(i + 2, i + 3, "\\'");
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.plugins.groovy.intentions.conversions;
|
||||
package org.jetbrains.plugins.groovy.intentions.conversions.strings;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
+1
-1
@@ -26,7 +26,7 @@ import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.plugins.groovy.intentions.conversions.ConvertGStringToStringIntention;
|
||||
import org.jetbrains.plugins.groovy.intentions.conversions.strings.ConvertGStringToStringIntention;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElement;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory;
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult;
|
||||
|
||||
+1
-2
@@ -1,5 +1,4 @@
|
||||
def x=5;
|
||||
def y=7;
|
||||
def name="abc"
|
||||
print String.valueOf(x++ + ++y) + ' is very "strange" \'expression\'. x=' + String.valueOf(x) + String.valueOf(y) + '=y; ' + name + ' ' + String.valueOf(name.collect {true}) + '''
|
||||
wow\\'''
|
||||
print String.valueOf(x++ + ++y) + ' is very "strange" \'expression\'. x=' + String.valueOf(x) + String.valueOf(y) + '=y; ' + name + ' ' + String.valueOf(name.collect {true}) + ' \n wow\\'
|
||||
Reference in New Issue
Block a user