From 76edecb90af176f2f588af95dd1103adb2c6c1ef Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Mon, 20 May 2013 17:02:38 +0400 Subject: [PATCH] KT-3575, KT-2297 Inserting pair for "${": use JetPairMatcher instead of KotlinTypeHandler #KT-3575 fixed --- .../org/jetbrains/jet/plugin/JetPairMatcher.java | 3 ++- .../jet/plugin/editor/KotlinTypedHandler.java | 14 -------------- .../org/jetbrains/jet/editor/TypedHandlerTest.java | 6 ++++++ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/JetPairMatcher.java b/idea/src/org/jetbrains/jet/plugin/JetPairMatcher.java index 5646c25cac2..a97fdee0200 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetPairMatcher.java +++ b/idea/src/org/jetbrains/jet/plugin/JetPairMatcher.java @@ -39,7 +39,8 @@ public class JetPairMatcher implements PairedBraceMatcher { @Override public boolean isPairedBracesAllowedBeforeType(@NotNull IElementType lbraceType, @Nullable IElementType contextType) { - return JetTokens.WHITE_SPACE_OR_COMMENT_BIT_SET.contains(contextType) + return lbraceType.equals(JetTokens.LONG_TEMPLATE_ENTRY_START) + || JetTokens.WHITE_SPACE_OR_COMMENT_BIT_SET.contains(contextType) || contextType == JetTokens.SEMICOLON || contextType == JetTokens.COMMA || contextType == JetTokens.RPAR diff --git a/idea/src/org/jetbrains/jet/plugin/editor/KotlinTypedHandler.java b/idea/src/org/jetbrains/jet/plugin/editor/KotlinTypedHandler.java index baedb696788..b35d929710d 100644 --- a/idea/src/org/jetbrains/jet/plugin/editor/KotlinTypedHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/editor/KotlinTypedHandler.java @@ -57,20 +57,6 @@ public class KotlinTypedHandler extends TypedHandlerDelegate { JetLtGtTypingUtils.handleJetAutoCloseLT(editor); return Result.STOP; } - - if (!(file instanceof JetFile) || !CodeInsightSettings.getInstance().AUTOINSERT_PAIR_BRACKET) { - return Result.CONTINUE; - } - if (c == '{') { - PsiDocumentManager.getInstance(project).commitAllDocuments(); - int offset = editor.getCaretModel().getOffset(); - PsiElement previousElement = file.findElementAt(offset - 1); - if (previousElement instanceof LeafPsiElement - && ((LeafPsiElement) previousElement).getElementType() == JetTokens.LONG_TEMPLATE_ENTRY_START) { - editor.getDocument().insertString(offset, "}"); - } - return Result.STOP; - } return Result.CONTINUE; } } diff --git a/idea/tests/org/jetbrains/jet/editor/TypedHandlerTest.java b/idea/tests/org/jetbrains/jet/editor/TypedHandlerTest.java index 78a78adffbf..5ac75e43c72 100644 --- a/idea/tests/org/jetbrains/jet/editor/TypedHandlerTest.java +++ b/idea/tests/org/jetbrains/jet/editor/TypedHandlerTest.java @@ -26,6 +26,12 @@ public class TypedHandlerTest extends LightCodeInsightTestCase { checkResultByText("val x = \"${}\""); } + public void testKT3575() throws Exception { + configureFromFileText("a.kt", "val x = \"$]\""); + EditorTestUtil.performTypingAction(getEditor(), '{'); + checkResultByText("val x = \"${}]\""); + } + public void testTypeLtInFunDeclaration() throws Exception { doLtGtTest("fun "); }