From 1db1c5af4a8650f6ccc013f8a5251e80b0ebb581 Mon Sep 17 00:00:00 2001 From: Brais Date: Sat, 9 Jul 2022 15:03:00 +0200 Subject: [PATCH] Refactor TrimMultilineRawString --- .../rules/style/TrimMultilineRawString.kt | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/TrimMultilineRawString.kt b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/TrimMultilineRawString.kt index d2d215ee919e..fbd0f0278b04 100644 --- a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/TrimMultilineRawString.kt +++ b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/TrimMultilineRawString.kt @@ -50,14 +50,7 @@ class TrimMultilineRawString(val config: Config) : Rule(config) { if (expression.text.lines().count() <= 1) return - val nextCall = expression.getQualifiedExpressionForSelectorOrThis() - .getQualifiedExpressionForReceiver() - ?.selectorExpression - ?.asKtCallExpression() - ?.calleeExpression - ?.text - - if (nextCall !in trimFunctions) { + if (!expression.isTrimmed()) { report( CodeSmell( issue, @@ -69,6 +62,17 @@ class TrimMultilineRawString(val config: Config) : Rule(config) { } } -private fun KtExpression.asKtCallExpression(): KtCallExpression? = this as? KtCallExpression +fun KtStringTemplateExpression.isTrimmed(): Boolean { + fun KtExpression.asKtCallExpression(): KtCallExpression? = this as? KtCallExpression + + val nextCall = getQualifiedExpressionForSelectorOrThis() + .getQualifiedExpressionForReceiver() + ?.selectorExpression + ?.asKtCallExpression() + ?.calleeExpression + ?.text + + return nextCall in trimFunctions +} private val trimFunctions = listOf("trimIndent", "trimMargin")