diff --git a/idea/src/org/jetbrains/kotlin/idea/joinLines/JoinToStringTemplateHandler.kt b/idea/src/org/jetbrains/kotlin/idea/joinLines/JoinToStringTemplateHandler.kt index 42c714d4b7a..58a9ec22fd9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/joinLines/JoinToStringTemplateHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/joinLines/JoinToStringTemplateHandler.kt @@ -49,7 +49,9 @@ class JoinToStringTemplateHandler : JoinRawLinesHandlerDelegate { var rightText = ConvertToStringTemplateIntention.buildText(binaryExpr.right, false) var left = binaryExpr.left - while (left is KtBinaryExpression && left.joinable() && left.parent.getLineCount() >= lineCount) { + while (left is KtBinaryExpression && left.joinable()) { + val leftLeft = (left as? KtBinaryExpression)?.left ?: break + if (leftLeft.lineCount() < lineCount) break rightText = ConvertToStringTemplateIntention.buildText(left.right, false) + rightText left = left.left } diff --git a/idea/testData/joinLines/stringTemplate/threeLines2.kt b/idea/testData/joinLines/stringTemplate/threeLines2.kt new file mode 100644 index 00000000000..ead65e6ff41 --- /dev/null +++ b/idea/testData/joinLines/stringTemplate/threeLines2.kt @@ -0,0 +1,5 @@ +fun test() { + val s = "1" + + "2" + + "3" +} \ No newline at end of file diff --git a/idea/testData/joinLines/stringTemplate/threeLines2.kt.after b/idea/testData/joinLines/stringTemplate/threeLines2.kt.after new file mode 100644 index 00000000000..cfc9208a01f --- /dev/null +++ b/idea/testData/joinLines/stringTemplate/threeLines2.kt.after @@ -0,0 +1,4 @@ +fun test() { + val s = "1" + + "23" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/declarations/JoinLinesTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/declarations/JoinLinesTestGenerated.java index b04df438544..2132942ed11 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/declarations/JoinLinesTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/declarations/JoinLinesTestGenerated.java @@ -458,5 +458,11 @@ public class JoinLinesTestGenerated extends AbstractJoinLinesTest { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/joinLines/stringTemplate/threeLines.kt"); doTest(fileName); } + + @TestMetadata("threeLines2.kt") + public void testThreeLines2() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/joinLines/stringTemplate/threeLines2.kt"); + doTest(fileName); + } } }