From 30c2b26339e77c59d344e1d22bbca7aaebfd8b59 Mon Sep 17 00:00:00 2001 From: Yaroslav Ulanovych Date: Fri, 18 Mar 2016 20:14:17 +0300 Subject: [PATCH] Do not insert closing brace for string template between open brace and identifier (KT-11143) #KT-11143 Fixed --- .../jetbrains/kotlin/idea/editor/KotlinTypedHandler.java | 9 +++++++-- .../org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/editor/KotlinTypedHandler.java b/idea/src/org/jetbrains/kotlin/idea/editor/KotlinTypedHandler.java index bcda18c1835..a7a48cfdf4a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/editor/KotlinTypedHandler.java +++ b/idea/src/org/jetbrains/kotlin/idea/editor/KotlinTypedHandler.java @@ -250,8 +250,13 @@ public class KotlinTypedHandler extends TypedHandlerDelegate { PsiElement previousElement = file.findElementAt(offset - 1); if (previousElement instanceof LeafPsiElement && ((LeafPsiElement) previousElement).getElementType() == KtTokens.LONG_TEMPLATE_ENTRY_START) { - editor.getDocument().insertString(offset, "}"); - return Result.STOP; + PsiElement currentElement = file.findElementAt(offset); + + if (currentElement instanceof LeafPsiElement + && ((LeafPsiElement) currentElement).getElementType() != KtTokens.IDENTIFIER) { + editor.getDocument().insertString(offset, "}"); + return Result.STOP; + } } } else if (c == ':') { diff --git a/idea/tests/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt b/idea/tests/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt index 50a76564ee9..c5a2604f150 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt @@ -65,7 +65,7 @@ class TypedHandlerTest : LightCodeInsightTestCase() { fun testTypeStringTemplateStartBeforeString() = doCharTypeTest( '{', """fun foo() { "$something" }""", - """fun foo() { "$dollar{}something" }""" + """fun foo() { "$dollar{something" }""" ) fun testKT3575() = doCharTypeTest(