From dc0dbbbfe0ea88090591a2a3d4d6a21341a5cd4c Mon Sep 17 00:00:00 2001 From: "Maxim.Medvedev" Date: Thu, 21 Jun 2012 10:43:08 +0400 Subject: [PATCH] \n in string in reference expression --- .../lang/editor/actions/GroovyEnterHandler.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/actions/GroovyEnterHandler.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/actions/GroovyEnterHandler.java index bacfe493789f..5b58426d8bf4 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/actions/GroovyEnterHandler.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/actions/GroovyEnterHandler.java @@ -304,6 +304,13 @@ public class GroovyEnterHandler extends EnterHandlerDelegateAdapter { if (isSlashBeforeCaret(caretOffset, fileText)) { EditorModificationUtil.insertStringAtCaret(editor, "\n"); } + else if(stringElement.getParent() instanceof GrReferenceExpression) { + TextRange range = stringElement.getTextRange(); + convertEndToMultiline(range.getEndOffset(), document, fileText, '\''); + document.insertString(range.getStartOffset(), "''"); + caretModel.moveToOffset(caretOffset + 2); + EditorModificationUtil.insertStringAtCaret(editor, "\n"); + } else { EditorModificationUtil.insertStringAtCaret(editor, "'+"); originalHandler.execute(editor, dataContext); @@ -335,12 +342,14 @@ public class GroovyEnterHandler extends EnterHandlerDelegateAdapter { boolean rightFromDollar = exprSibling instanceof GrExpression && exprSibling.getTextRange().getStartOffset() == caretOffset; if (rightFromDollar) caretOffset--; TextRange parentRange = parent.getTextRange(); - if (rightFromDollar) { + if (rightFromDollar || parent.getParent() instanceof GrReferenceExpression) { convertEndToMultiline(parent.getTextRange().getEndOffset(), document, fileText, '"'); document.insertString(parentRange.getStartOffset(), "\"\""); caretModel.moveToOffset(caretOffset + 2); EditorModificationUtil.insertStringAtCaret(editor, "\n"); - caretModel.moveCaretRelatively(1, 0, false, false, true); + if (rightFromDollar) { + caretModel.moveCaretRelatively(1, 0, false, false, true); + } } else if (isSlashBeforeCaret(caretOffset, fileText)) { EditorModificationUtil.insertStringAtCaret(editor, "\n");