From 26478b1374fc96d45713108668336c5eb531bff1 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Mon, 27 May 2019 17:32:38 +0700 Subject: [PATCH] Remove ConvertTrimMarginToTrimIndentIntention Relates to #KT-31502 --- idea/resources/META-INF/plugin-common.xml | 5 -- .../after.kt.template | 7 -- .../before.kt.template | 7 -- .../description.html | 5 -- .../ConvertTrimMarginToTrimIndentIntention.kt | 75 ------------------- .../convertTrimMarginToTrimIndent/.intention | 1 - .../differentIndent.kt | 9 --- .../differentIndent.kt.after | 9 --- .../escapedMarginPrefixArgument.kt | 9 --- .../noMarginPrefix.kt | 9 --- .../notBlankFirst.kt | 9 --- .../notBlankLast.kt | 9 --- .../notRawString.kt | 5 -- .../referenceMarginPrefixArgument.kt | 9 --- .../convertTrimMarginToTrimIndent/simple.kt | 9 --- .../simple.kt.after | 9 --- .../convertTrimMarginToTrimIndent/simple2.kt | 9 --- .../simple2.kt.after | 9 --- .../intentions/IntentionTestGenerated.java | 58 -------------- 19 files changed, 262 deletions(-) delete mode 100644 idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/after.kt.template delete mode 100644 idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/before.kt.template delete mode 100644 idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/description.html delete mode 100644 idea/src/org/jetbrains/kotlin/idea/intentions/ConvertTrimMarginToTrimIndentIntention.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/.intention delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt.after delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/escapedMarginPrefixArgument.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/noMarginPrefix.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankFirst.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankLast.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/notRawString.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/referenceMarginPrefixArgument.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt.after delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt delete mode 100644 idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt.after diff --git a/idea/resources/META-INF/plugin-common.xml b/idea/resources/META-INF/plugin-common.xml index ec305138016..71e5c29111c 100644 --- a/idea/resources/META-INF/plugin-common.xml +++ b/idea/resources/META-INF/plugin-common.xml @@ -1678,11 +1678,6 @@ Kotlin - - org.jetbrains.kotlin.idea.intentions.ConvertTrimMarginToTrimIndentIntention - Kotlin - - org.jetbrains.kotlin.idea.intentions.ConvertPropertyGetterToInitializerIntention Kotlin diff --git a/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/after.kt.template b/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/after.kt.template deleted file mode 100644 index bc79586214c..00000000000 --- a/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/after.kt.template +++ /dev/null @@ -1,7 +0,0 @@ -fun test() { - val x = - """ - a - b - """.trimIndent() -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/before.kt.template b/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/before.kt.template deleted file mode 100644 index 1c94172d80e..00000000000 --- a/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/before.kt.template +++ /dev/null @@ -1,7 +0,0 @@ -fun test() { - val x = - """ - |a - |b - """.trimMargin() -} \ No newline at end of file diff --git a/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/description.html b/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/description.html deleted file mode 100644 index 074f5fae78d..00000000000 --- a/idea/resources/intentionDescriptions/ConvertTrimMarginToTrimIndentIntention/description.html +++ /dev/null @@ -1,5 +0,0 @@ - - -This intention converts an trimMargin() call to an trimIndent() call. - - \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertTrimMarginToTrimIndentIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertTrimMarginToTrimIndentIntention.kt deleted file mode 100644 index b442a22d287..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertTrimMarginToTrimIndentIntention.kt +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.idea.intentions - -import com.intellij.openapi.editor.Editor -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.psi.KtCallExpression -import org.jetbrains.kotlin.psi.KtLiteralStringTemplateEntry -import org.jetbrains.kotlin.psi.KtPsiFactory -import org.jetbrains.kotlin.psi.KtStringTemplateExpression -import org.jetbrains.kotlin.psi.psiUtil.getQualifiedExpressionForSelector -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe - -class ConvertTrimMarginToTrimIndentIntention : SelfTargetingIntention( - KtCallExpression::class.java, "Convert to 'trimIndent'" -) { - override fun isApplicableTo(element: KtCallExpression, caretOffset: Int): Boolean { - val template = (element.getQualifiedExpressionForSelector()?.receiverExpression as? KtStringTemplateExpression) ?: return false - if (!template.text.startsWith("\"\"\"")) return false - - val callee = element.calleeExpression ?: return false - if (callee.text != "trimMargin" || callee.getCallableDescriptor()?.fqNameSafe != FqName("kotlin.text.trimMargin")) return false - - val marginPrefix = element.marginPrefix() ?: return false - - val entries = template.entries - if (!listOfNotNull(entries.firstOrNull(), entries.lastOrNull()).all { it.text.isLineBreakOrBlank() }) { - return false - } - - return entries.drop(1).dropLast(1).all { stringTemplateEntry -> - val text = stringTemplateEntry.text - text.isLineBreakOrBlank() || text.dropWhile { it.isWhitespace() }.startsWith(marginPrefix) - } - } - - override fun applyTo(element: KtCallExpression, editor: Editor?) { - val qualifiedExpression = element.getQualifiedExpressionForSelector() - val template = (qualifiedExpression?.receiverExpression as? KtStringTemplateExpression) ?: return - val marginPrefix = element.marginPrefix() ?: return - - val indent = template.entries.asSequence().mapNotNull { stringTemplateEntry -> - val text = stringTemplateEntry.text - if (text.isLineBreakOrBlank()) null else text.takeWhile { it.isWhitespace() } - }.minBy { it.length } ?: "" - - val newTemplate = buildString { - template.entries.forEach { entry -> - val text = entry.text - if (text.isLineBreakOrBlank()) { - append(text) - } else { - append(indent) - append(entry.text.dropWhile { it.isWhitespace() }.replaceFirst(marginPrefix, "")) - } - } - } - qualifiedExpression.replace(KtPsiFactory(element).createExpression("\"\"\"$newTemplate\"\"\".trimIndent()")) - } -} - -private fun KtCallExpression.marginPrefix(): String? { - val argument = valueArguments.firstOrNull()?.getArgumentExpression() - if (argument != null) { - if (argument !is KtStringTemplateExpression) return null - val entry = argument.entries.toList().singleOrNull() as? KtLiteralStringTemplateEntry ?: return null - return entry.text.replace("\"", "") - } - return "|" -} - -private fun String.isLineBreakOrBlank() = this == "\n" || this.isBlank() \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/.intention b/idea/testData/intentions/convertTrimMarginToTrimIndent/.intention deleted file mode 100644 index 03d14d9bfd7..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/.intention +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.kotlin.idea.intentions.ConvertTrimMarginToTrimIndentIntention diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt deleted file mode 100644 index 4ddb290831a..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt +++ /dev/null @@ -1,9 +0,0 @@ -// WITH_RUNTIME -fun test() { - val x = - """ - |a - | b - |c - """.trimMargin() -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt.after b/idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt.after deleted file mode 100644 index 7af335d4be8..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt.after +++ /dev/null @@ -1,9 +0,0 @@ -// WITH_RUNTIME -fun test() { - val x = - """ - a - b - c - """.trimIndent() -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/escapedMarginPrefixArgument.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/escapedMarginPrefixArgument.kt deleted file mode 100644 index 4ba9c1b417c..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/escapedMarginPrefixArgument.kt +++ /dev/null @@ -1,9 +0,0 @@ -// IS_APPLICABLE: false -// WITH_RUNTIME -fun test() { - val x = - """ - \a - \b - """.trimMargin("\\") -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/noMarginPrefix.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/noMarginPrefix.kt deleted file mode 100644 index d39ab1c5a11..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/noMarginPrefix.kt +++ /dev/null @@ -1,9 +0,0 @@ -// IS_APPLICABLE: false -// WITH_RUNTIME -fun test() { - val x = - """ - |a - b - """.trimMargin() -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankFirst.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankFirst.kt deleted file mode 100644 index 2c363f0f39c..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankFirst.kt +++ /dev/null @@ -1,9 +0,0 @@ -// IS_APPLICABLE: false -// WITH_RUNTIME -fun test() { - val x = - """1 - |a - |b - """.trimMargin() -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankLast.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankLast.kt deleted file mode 100644 index 58d73518670..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankLast.kt +++ /dev/null @@ -1,9 +0,0 @@ -// IS_APPLICABLE: false -// WITH_RUNTIME -fun test() { - val x = - """ - |a - |b - 1""".trimMargin() -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/notRawString.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/notRawString.kt deleted file mode 100644 index d39d61e40f4..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/notRawString.kt +++ /dev/null @@ -1,5 +0,0 @@ -// IS_APPLICABLE: false -// WITH_RUNTIME -fun test() { - val x = " |a".trimMargin() -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/referenceMarginPrefixArgument.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/referenceMarginPrefixArgument.kt deleted file mode 100644 index 3b9c22a2dcf..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/referenceMarginPrefixArgument.kt +++ /dev/null @@ -1,9 +0,0 @@ -// IS_APPLICABLE: false -// WITH_RUNTIME -fun test(marginPrefix: String) { - val x = - """ - |a - |b - """.trimMargin(marginPrefix) -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt deleted file mode 100644 index 895d2f213c7..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt +++ /dev/null @@ -1,9 +0,0 @@ -// INTENTION_TEXT: "Convert to 'trimIndent'" -// WITH_RUNTIME -fun test() { - val x = - """ - |a - |b - """.trimMargin() -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt.after b/idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt.after deleted file mode 100644 index 507f3ff1f74..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt.after +++ /dev/null @@ -1,9 +0,0 @@ -// INTENTION_TEXT: "Convert to 'trimIndent'" -// WITH_RUNTIME -fun test() { - val x = - """ - a - b - """.trimIndent() -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt b/idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt deleted file mode 100644 index f5c492b2b38..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt +++ /dev/null @@ -1,9 +0,0 @@ -// WITH_RUNTIME -fun test() { - val x = - """ - #a - - #b - """.trimMargin("#") -} \ No newline at end of file diff --git a/idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt.after b/idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt.after deleted file mode 100644 index 134c6617c08..00000000000 --- a/idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt.after +++ /dev/null @@ -1,9 +0,0 @@ -// WITH_RUNTIME -fun test() { - val x = - """ - a - - b - """.trimIndent() -} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 5f1a7f38c1a..e33faa6f97b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -8132,64 +8132,6 @@ public class IntentionTestGenerated extends AbstractIntentionTest { } } - @TestMetadata("idea/testData/intentions/convertTrimMarginToTrimIndent") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ConvertTrimMarginToTrimIndent extends AbstractIntentionTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); - } - - public void testAllFilesPresentInConvertTrimMarginToTrimIndent() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/intentions/convertTrimMarginToTrimIndent"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true); - } - - @TestMetadata("differentIndent.kt") - public void testDifferentIndent() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/differentIndent.kt"); - } - - @TestMetadata("escapedMarginPrefixArgument.kt") - public void testEscapedMarginPrefixArgument() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/escapedMarginPrefixArgument.kt"); - } - - @TestMetadata("noMarginPrefix.kt") - public void testNoMarginPrefix() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/noMarginPrefix.kt"); - } - - @TestMetadata("notBlankFirst.kt") - public void testNotBlankFirst() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankFirst.kt"); - } - - @TestMetadata("notBlankLast.kt") - public void testNotBlankLast() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/notBlankLast.kt"); - } - - @TestMetadata("notRawString.kt") - public void testNotRawString() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/notRawString.kt"); - } - - @TestMetadata("referenceMarginPrefixArgument.kt") - public void testReferenceMarginPrefixArgument() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/referenceMarginPrefixArgument.kt"); - } - - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/simple.kt"); - } - - @TestMetadata("simple2.kt") - public void testSimple2() throws Exception { - runTest("idea/testData/intentions/convertTrimMarginToTrimIndent/simple2.kt"); - } - } - @TestMetadata("idea/testData/intentions/convertTryFinallyToUseCall") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)