Add temporary property accessor "isWhiteSpaceWithoutNewline20" to replace function "isWhiteSpaceWithoutNewline" in Ktlint 2.0
diff --git a/ktlint-rule-engine-core/api/ktlint-rule-engine-core.api b/ktlint-rule-engine-core/api/ktlint-rule-engine-core.api index 25398bb..f347117 100644 --- a/ktlint-rule-engine-core/api/ktlint-rule-engine-core.api +++ b/ktlint-rule-engine-core/api/ktlint-rule-engine-core.api
@@ -33,6 +33,7 @@ public static final fun isWhiteSpaceWithNewline (Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;)Z public static final fun isWhiteSpaceWithNewline20 (Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;)Z public static final fun isWhiteSpaceWithoutNewline (Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;)Z + public static final fun isWhiteSpaceWithoutNewline20 (Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;)Z public static final fun lastChildLeafOrSelf (Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;)Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode; public static final fun leavesInClosedRange (Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;)Lkotlin/sequences/Sequence; public static final fun leavesInOpenRange (Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;Lorg/jetbrains/kotlin/com/intellij/lang/ASTNode;)Lkotlin/sequences/Sequence;
diff --git a/ktlint-rule-engine-core/src/main/kotlin/com/pinterest/ktlint/rule/engine/core/api/ASTNodeExtension.kt b/ktlint-rule-engine-core/src/main/kotlin/com/pinterest/ktlint/rule/engine/core/api/ASTNodeExtension.kt index 2b6255c..e51ed3b 100644 --- a/ktlint-rule-engine-core/src/main/kotlin/com/pinterest/ktlint/rule/engine/core/api/ASTNodeExtension.kt +++ b/ktlint-rule-engine-core/src/main/kotlin/com/pinterest/ktlint/rule/engine/core/api/ASTNodeExtension.kt
@@ -274,7 +274,17 @@ public val ASTNode?.isWhiteSpaceWithNewline20 get(): Boolean = this != null && elementType == WHITE_SPACE && textContains('\n') -public fun ASTNode?.isWhiteSpaceWithoutNewline(): Boolean = this != null && elementType == WHITE_SPACE && !textContains('\n') +@Deprecated( + "In Ktlint 2.0, it will be replaced with a property accessor. For easy migration replace current function call with " + + "the temporary property accessor. In 2.0 it can be replaced the final property accessor which will be the same as the " + + "current function name.", + replaceWith = ReplaceWith("isWhiteSpaceWithoutNewline20"), +) +public fun ASTNode?.isWhiteSpaceWithoutNewline(): Boolean = isWhiteSpaceWithoutNewline20 + +// TODO: In Ktlint 2.0 replace with accessor without temporary suffix "20" +public val ASTNode?.isWhiteSpaceWithoutNewline20 + get(): Boolean = this != null && elementType == WHITE_SPACE && !textContains('\n') public fun ASTNode.isRoot(): Boolean = elementType == ElementType.FILE @@ -551,7 +561,7 @@ */ private fun Sequence<ASTNode>.dropTrailingEolComment(): Sequence<ASTNode> = takeWhile { - !(it.isWhiteSpaceWithoutNewline() && it.nextLeaf()?.elementType == EOL_COMMENT) && + !(it.isWhiteSpaceWithoutNewline20 && it.nextLeaf()?.elementType == EOL_COMMENT) && // But if EOL-comment not preceded by whitespace than take all nodes before the EOL comment it.elementType != EOL_COMMENT }
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/AnnotationRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/AnnotationRule.kt index 80dc1aa..55e4c32 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/AnnotationRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/AnnotationRule.kt
@@ -42,7 +42,7 @@ import com.pinterest.ktlint.rule.engine.core.api.indent import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.lastChildLeafOrSelf import com.pinterest.ktlint.rule.engine.core.api.nextCodeLeaf import com.pinterest.ktlint.rule.engine.core.api.nextCodeSibling @@ -312,7 +312,7 @@ .filter { it.elementType == TYPE_PROJECTION } .forEach { typeProjection -> val prevLeaf = typeProjection.prevLeaf().takeIf { it.isWhiteSpace20 } - if (prevLeaf == null || prevLeaf.isWhiteSpaceWithoutNewline()) { + if (prevLeaf == null || prevLeaf.isWhiteSpaceWithoutNewline20) { emit(typeProjection.startOffset - 1, "Expected newline", true) .ifAutocorrectAllowed { typeProjection.upsertWhitespaceBeforeMe(indentConfig.childIndentOf(node)) @@ -324,7 +324,7 @@ .findChildByType(GT) ?.let { gt -> val prevLeaf = gt.prevLeaf().takeIf { it.isWhiteSpace20 } - if (prevLeaf == null || prevLeaf.isWhiteSpaceWithoutNewline()) { + if (prevLeaf == null || prevLeaf.isWhiteSpaceWithoutNewline20) { emit(gt.startOffset, "Expected newline", true) .ifAutocorrectAllowed { gt.upsertWhitespaceBeforeMe(indentConfig.childIndentOf(node))
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ChainMethodContinuationRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ChainMethodContinuationRule.kt index 175a9dd..77f0376 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ChainMethodContinuationRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ChainMethodContinuationRule.kt
@@ -43,7 +43,7 @@ import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.lastChildLeafOrSelf import com.pinterest.ktlint.rule.engine.core.api.leavesOnLine import com.pinterest.ktlint.rule.engine.core.api.lineLengthWithoutNewlinePrefix @@ -282,7 +282,7 @@ Unit } - whiteSpaceOrComment == null || whiteSpaceOrComment.isWhiteSpaceWithoutNewline() -> { + whiteSpaceOrComment == null || whiteSpaceOrComment.isWhiteSpaceWithoutNewline20 -> { // In a multiline chained method each method in the chain starts on a newline // Disallow: // fooBar
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ChainWrappingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ChainWrappingRule.kt index f092a14..d85f223 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ChainWrappingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ChainWrappingRule.kt
@@ -28,7 +28,7 @@ import com.pinterest.ktlint.rule.engine.core.api.ifAutocorrectAllowed import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextCodeLeaf import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.nextSibling @@ -135,7 +135,7 @@ prevLeaf } - nextLeaf.isWhiteSpaceWithoutNewline() -> { + nextLeaf.isWhiteSpaceWithoutNewline20 -> { nextLeaf } @@ -183,7 +183,7 @@ private fun ASTNode.isElvisOperatorAndComment(): Boolean = elementType == ELVIS && - leaves().takeWhile { it.isWhiteSpaceWithoutNewline() || it.isPartOfComment() }.any() + leaves().takeWhile { it.isWhiteSpaceWithoutNewline20 || it.isPartOfComment() }.any() } public val CHAIN_WRAPPING_RULE_ID: RuleId = ChainWrappingRule().ruleId
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ContextReceiverWrappingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ContextReceiverWrappingRule.kt index b3abda7..f7bf607 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ContextReceiverWrappingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/ContextReceiverWrappingRule.kt
@@ -29,7 +29,7 @@ import com.pinterest.ktlint.rule.engine.core.api.isPartOf import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.lastChildLeafOrSelf import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.prevLeaf @@ -89,7 +89,7 @@ node .takeUnless { it.isTypeReferenceParameterInFunction() } ?.lastChildLeafOrSelf() - ?.nextLeaf { !it.isWhiteSpaceWithoutNewline() && !it.isPartOfComment() } + ?.nextLeaf { !it.isWhiteSpaceWithoutNewline20 && !it.isPartOfComment() } ?.takeIf { !it.isWhiteSpaceWithNewline20 } ?.let { nodeAfterContextReceiver -> emit(nodeAfterContextReceiver.startOffset, "Expected a newline after the context receiver", true)
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/EnumWrappingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/EnumWrappingRule.kt index ba114aa..5222b8c 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/EnumWrappingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/EnumWrappingRule.kt
@@ -22,7 +22,7 @@ import com.pinterest.ktlint.rule.engine.core.api.ifAutocorrectAllowed import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.leavesIncludingSelf import com.pinterest.ktlint.rule.engine.core.api.nextCodeSibling import com.pinterest.ktlint.rule.engine.core.api.nextSibling @@ -142,7 +142,7 @@ emit: (offset: Int, errorMessage: String, canBeAutoCorrected: Boolean) -> AutocorrectDecision, ) { node - .prevLeaf { !it.isPartOfComment() && !it.isWhiteSpaceWithoutNewline() } + .prevLeaf { !it.isPartOfComment() && !it.isWhiteSpaceWithoutNewline20 } ?.takeUnless { it.isWhiteSpaceWithNewline20 } ?.let { prevLeaf -> emit(node.startOffset, "Enum entry should start on a separate line", true)
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/FunctionLiteralRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/FunctionLiteralRule.kt index c65b787..eb8c30f 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/FunctionLiteralRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/FunctionLiteralRule.kt
@@ -30,7 +30,7 @@ import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.lastChildLeafOrSelf import com.pinterest.ktlint.rule.engine.core.api.leavesIncludingSelf import com.pinterest.ktlint.rule.engine.core.api.leavesOnLine @@ -212,7 +212,7 @@ children() .first { it.elementType == VALUE_PARAMETER } .lastChildLeafOrSelf() - .nextLeaf { !it.isWhiteSpaceWithoutNewline() && !it.isPartOfComment() } + .nextLeaf { !it.isWhiteSpaceWithoutNewline20 && !it.isPartOfComment() } leavesOnLine(excludeEolComment = true) .takeWhile { it.prevLeaf() != stopAtLeaf } .lineLengthWithoutNewlinePrefix()
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IfElseBracingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IfElseBracingRule.kt index 30a4999..623dcab 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IfElseBracingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IfElseBracingRule.kt
@@ -22,7 +22,7 @@ import com.pinterest.ktlint.rule.engine.core.api.indent import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextSibling import com.pinterest.ktlint.rule.engine.core.api.upsertWhitespaceBeforeMe import com.pinterest.ktlint.ruleset.standard.StandardRule @@ -142,9 +142,9 @@ val nextLeaves = node .leaves(forward = true) - .takeWhile { it.isWhiteSpaceWithoutNewline() || it.isPartOfComment() } + .takeWhile { it.isWhiteSpaceWithoutNewline20 || it.isPartOfComment() } .toList() - .dropLastWhile { it.isWhiteSpaceWithoutNewline() } + .dropLastWhile { it.isWhiteSpaceWithoutNewline20 } prevLeaves .firstOrNull()
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IfElseWrappingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IfElseWrappingRule.kt index 685c699..debdce1 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IfElseWrappingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IfElseWrappingRule.kt
@@ -25,7 +25,7 @@ import com.pinterest.ktlint.rule.engine.core.api.indent import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextCodeLeaf import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.nextSibling @@ -179,7 +179,7 @@ !it.isPartOfComment() } - private fun ASTNode.isWhitespaceBeforeComment() = isWhiteSpaceWithoutNewline() && nextLeaf()?.isPartOfComment() == true + private fun ASTNode.isWhitespaceBeforeComment() = isWhiteSpaceWithoutNewline20 && nextLeaf()?.isPartOfComment() == true private fun ASTNode.outerIf(): ASTNode { require(this.elementType == IF)
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IndentationRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IndentationRule.kt index 39bd389..c2a8748 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IndentationRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/IndentationRule.kt
@@ -108,7 +108,7 @@ import com.pinterest.ktlint.rule.engine.core.api.isRoot import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.lastChildLeafOrSelf import com.pinterest.ktlint.rule.engine.core.api.nextCodeLeaf import com.pinterest.ktlint.rule.engine.core.api.nextCodeSibling @@ -197,7 +197,7 @@ // File should not start with a whitespace node .nextLeaf() - ?.takeIf { it.isWhiteSpaceWithoutNewline() } + ?.takeIf { it.isWhiteSpaceWithoutNewline20 } ?.let { whitespaceWithoutNewline -> emit(node.startOffset, "Unexpected indentation", true) .ifAutocorrectAllowed { whitespaceWithoutNewline.remove() }
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultiLineIfElseRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultiLineIfElseRule.kt index 965c3d2..cbbef7c 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultiLineIfElseRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultiLineIfElseRule.kt
@@ -22,7 +22,7 @@ import com.pinterest.ktlint.rule.engine.core.api.indent import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextSibling import com.pinterest.ktlint.rule.engine.core.api.upsertWhitespaceBeforeMe import com.pinterest.ktlint.ruleset.standard.StandardRule @@ -133,9 +133,9 @@ val nextLeaves = node .leaves(forward = true) - .takeWhile { it.isWhiteSpaceWithoutNewline() || it.isPartOfComment() } + .takeWhile { it.isWhiteSpaceWithoutNewline20 || it.isPartOfComment() } .toList() - .dropLastWhile { it.isWhiteSpaceWithoutNewline() } + .dropLastWhile { it.isWhiteSpaceWithoutNewline20 } prevLeaves .firstOrNull()
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultilineExpressionWrappingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultilineExpressionWrappingRule.kt index 69d2cff..50c2539 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultilineExpressionWrappingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultilineExpressionWrappingRule.kt
@@ -41,7 +41,7 @@ import com.pinterest.ktlint.rule.engine.core.api.ifAutocorrectAllowed import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.lastChildLeafOrSelf import com.pinterest.ktlint.rule.engine.core.api.leavesIncludingSelf import com.pinterest.ktlint.rule.engine.core.api.nextLeaf @@ -118,7 +118,7 @@ val leafOnSameLineAfterMultilineExpression = node .lastChildLeafOrSelf() - .nextLeaf { !it.isWhiteSpaceWithoutNewline() && !it.isPartOfComment() } + .nextLeaf { !it.isWhiteSpaceWithoutNewline20 && !it.isPartOfComment() } ?.takeIf { !it.isWhiteSpaceWithNewline20 } when { leafOnSameLineAfterMultilineExpression == null -> {
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultilineLoopRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultilineLoopRule.kt index 26a5209..00d043a 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultilineLoopRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/MultilineLoopRule.kt
@@ -18,7 +18,7 @@ import com.pinterest.ktlint.rule.engine.core.api.indent import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextSibling import com.pinterest.ktlint.rule.engine.core.api.upsertWhitespaceBeforeMe import com.pinterest.ktlint.ruleset.standard.StandardRule @@ -84,9 +84,9 @@ val nextLeaves = node .leaves(forward = true) - .takeWhile { it.isWhiteSpaceWithoutNewline() || it.isPartOfComment() } + .takeWhile { it.isWhiteSpaceWithoutNewline20 || it.isPartOfComment() } .toList() - .dropLastWhile { it.isWhiteSpaceWithoutNewline() } + .dropLastWhile { it.isWhiteSpaceWithoutNewline20 } prevLeaves .firstOrNull()
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundAngleBracketsRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundAngleBracketsRule.kt index 8821f79..05c1368 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundAngleBracketsRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundAngleBracketsRule.kt
@@ -11,7 +11,7 @@ import com.pinterest.ktlint.rule.engine.core.api.SinceKtlint import com.pinterest.ktlint.rule.engine.core.api.SinceKtlint.Status.STABLE import com.pinterest.ktlint.rule.engine.core.api.ifAutocorrectAllowed -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.prevLeaf import com.pinterest.ktlint.rule.engine.core.api.remove @@ -44,7 +44,7 @@ // Check for rogue spacing after an opening bracket val afterLeftAngle = openingBracket.nextLeaf() if (afterLeftAngle?.elementType == WHITE_SPACE) { - if (afterLeftAngle.isWhiteSpaceWithoutNewline()) { + if (afterLeftAngle.isWhiteSpaceWithoutNewline20) { emit(afterLeftAngle.startOffset, "Unexpected spacing after \"<\"", true) .ifAutocorrectAllowed { // when spacing does not include any new lines, e.g. Map< String, Int> @@ -74,7 +74,7 @@ val beforeRightAngle = closingBracket.prevLeaf() // Check for rogue spacing before a closing bracket if (beforeRightAngle?.elementType == WHITE_SPACE) { - if (beforeRightAngle.isWhiteSpaceWithoutNewline()) { + if (beforeRightAngle.isWhiteSpaceWithoutNewline20) { emit(beforeRightAngle.startOffset, "Unexpected spacing before \">\"", true) .ifAutocorrectAllowed { // when spacing does not include any new lines, e.g. Map<String, Int >
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundColonRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundColonRule.kt index 7050627..64b8920 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundColonRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundColonRule.kt
@@ -12,7 +12,7 @@ import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.nextSibling import com.pinterest.ktlint.rule.engine.core.api.prevLeaf @@ -127,7 +127,7 @@ node: ASTNode, emit: (offset: Int, errorMessage: String, canBeAutoCorrected: Boolean) -> AutocorrectDecision, ) { - if (node.prevSibling().isWhiteSpaceWithoutNewline() && node.noSpacingBefore) { + if (node.prevSibling().isWhiteSpaceWithoutNewline20 && node.noSpacingBefore) { emit(node.startOffset, "Unexpected spacing before \":\"", true) .ifAutocorrectAllowed { node @@ -135,7 +135,7 @@ ?.remove() } } - if (node.nextSibling().isWhiteSpaceWithoutNewline() && node.spacingAfter) { + if (node.nextSibling().isWhiteSpaceWithoutNewline20 && node.spacingAfter) { emit(node.startOffset, "Unexpected spacing after \":\"", true) .ifAutocorrectAllowed { node
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundCurlyRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundCurlyRule.kt index e52ab60..b26655d 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundCurlyRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundCurlyRule.kt
@@ -33,7 +33,7 @@ import com.pinterest.ktlint.rule.engine.core.api.isPartOfString20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.leavesIncludingSelf import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.prevLeaf @@ -94,7 +94,7 @@ ) ) spacingAfter = nextLeaf is PsiWhiteSpace || nextLeaf?.elementType == RBRACE - if (prevLeaf.isWhiteSpaceWithoutNewline() && + if (prevLeaf.isWhiteSpaceWithoutNewline20 && prevLeaf!!.isPrecededBy { it.elementType == LPAR || it.elementType == AT } ) { emit(node.startOffset, "Unexpected space before \"${node.text}\"", true) @@ -139,7 +139,7 @@ spacingBefore = prevLeaf is PsiWhiteSpace || prevLeaf?.elementType == LBRACE spacingAfter = nextLeaf == null || nextLeaf is PsiWhiteSpace || shouldNotToBeSeparatedBySpace(nextLeaf) nextLeaf - .takeIf { it.isWhiteSpaceWithoutNewline() } + .takeIf { it.isWhiteSpaceWithoutNewline20 } ?.takeIf { shouldNotToBeSeparatedBySpace(it.nextLeaf()) } ?.let { leaf -> emit(node.startOffset, "Unexpected space after \"${node.text}\"", true)
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundParensRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundParensRule.kt index a09accd..8c2066b 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundParensRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundParensRule.kt
@@ -20,7 +20,7 @@ import com.pinterest.ktlint.rule.engine.core.api.ifAutocorrectAllowed import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.nextSibling import com.pinterest.ktlint.rule.engine.core.api.prevLeaf @@ -59,7 +59,7 @@ true } - !prevLeaf().isWhiteSpaceWithoutNewline() -> { + !prevLeaf().isWhiteSpaceWithoutNewline20 -> { false } @@ -159,7 +159,7 @@ // val foo = fn( ) // val foo = fn( "bar") // val foo = ( (1 + 2) / 3) - isWhiteSpaceWithoutNewline() + isWhiteSpaceWithoutNewline20 private fun ASTNode.isUnexpectedNewlineAfterLpar() = // Disallow:
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundSquareBracketsRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundSquareBracketsRule.kt index 9cd51a3..da971e4 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundSquareBracketsRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/SpacingAroundSquareBracketsRule.kt
@@ -10,7 +10,7 @@ import com.pinterest.ktlint.rule.engine.core.api.SinceKtlint import com.pinterest.ktlint.rule.engine.core.api.SinceKtlint.Status.EXPERIMENTAL import com.pinterest.ktlint.rule.engine.core.api.ifAutocorrectAllowed -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.prevLeaf import com.pinterest.ktlint.rule.engine.core.api.remove @@ -53,11 +53,11 @@ // ] // Disallow: // @Foo(fooBar = ["foo", "bar" ]) - node.elementType == RBRACKET && prevLeaf.isWhiteSpaceWithoutNewline() + node.elementType == RBRACKET && prevLeaf.isWhiteSpaceWithoutNewline20 } else -> { - prevLeaf.isWhiteSpaceWithoutNewline() + prevLeaf.isWhiteSpaceWithoutNewline20 } } val spacingAfter = @@ -74,7 +74,7 @@ // ] // Disallow: // @Foo(fooBar = [ "foo", "bar"]) - node.elementType == LBRACKET && nextLeaf.isWhiteSpaceWithoutNewline() + node.elementType == LBRACKET && nextLeaf.isWhiteSpaceWithoutNewline20 when { spacingBefore && spacingAfter -> { emit(node.startOffset, "Unexpected spacing around '${node.text}'", true)
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/TypeArgumentListSpacingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/TypeArgumentListSpacingRule.kt index a344e42..6cabfbf 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/TypeArgumentListSpacingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/TypeArgumentListSpacingRule.kt
@@ -14,7 +14,7 @@ import com.pinterest.ktlint.rule.engine.core.api.ifAutocorrectAllowed import com.pinterest.ktlint.rule.engine.core.api.isPartOfCompositeElementOfType import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.nextSibling import com.pinterest.ktlint.rule.engine.core.api.prevLeaf @@ -112,7 +112,7 @@ ?.let { nextSibling -> if (multiline) { if (nextSibling.text != expectedIndent) { - if (nextSibling.isWhiteSpaceWithoutNewline()) { + if (nextSibling.isWhiteSpaceWithoutNewline20) { emit(nextSibling.startOffset, "Expected newline", true) .ifAutocorrectAllowed { nextSibling.upsertWhitespaceAfterMe(expectedIndent) @@ -136,7 +136,7 @@ ?.let { prevSibling -> if (multiline) { if (prevSibling.text != expectedIndent) { - if (prevSibling.isWhiteSpaceWithoutNewline()) { + if (prevSibling.isWhiteSpaceWithoutNewline20) { emit(prevSibling.startOffset, "Expected newline", true) .ifAutocorrectAllowed { prevSibling.upsertWhitespaceBeforeMe(expectedIndent)
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/TypeParameterListSpacingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/TypeParameterListSpacingRule.kt index 639cfe7..d808621 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/TypeParameterListSpacingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/TypeParameterListSpacingRule.kt
@@ -22,7 +22,7 @@ import com.pinterest.ktlint.rule.engine.core.api.editorconfig.INDENT_STYLE_PROPERTY import com.pinterest.ktlint.rule.engine.core.api.ifAutocorrectAllowed import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.nextCodeSibling import com.pinterest.ktlint.rule.engine.core.api.nextLeaf import com.pinterest.ktlint.rule.engine.core.api.nextSibling @@ -230,7 +230,7 @@ .ifAutocorrectAllowed { node.remove() } } - node.isWhiteSpaceWithoutNewline() && expectedWhitespace.startsWith("\n") -> { + node.isWhiteSpaceWithoutNewline20 && expectedWhitespace.startsWith("\n") -> { emit(node.startOffset, "Expected a newline", true) .ifAutocorrectAllowed { (node as LeafPsiElement).rawReplaceWithText(expectedWhitespace)
diff --git a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/WrappingRule.kt b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/WrappingRule.kt index 3156f9e..98e120e 100644 --- a/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/WrappingRule.kt +++ b/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/rules/WrappingRule.kt
@@ -64,7 +64,7 @@ import com.pinterest.ktlint.rule.engine.core.api.isPartOfComment import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpace20 import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithNewline20 -import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline +import com.pinterest.ktlint.rule.engine.core.api.isWhiteSpaceWithoutNewline20 import com.pinterest.ktlint.rule.engine.core.api.lastChildLeafOrSelf import com.pinterest.ktlint.rule.engine.core.api.leavesIncludingSelf import com.pinterest.ktlint.rule.engine.core.api.nextCodeLeaf @@ -196,7 +196,7 @@ private fun ASTNode.followedByEolComment() = null != leaves() - .takeWhile { it.isWhiteSpaceWithoutNewline() || it.elementType == EOL_COMMENT } + .takeWhile { it.isWhiteSpaceWithoutNewline20 || it.elementType == EOL_COMMENT } .firstOrNull { it.elementType == EOL_COMMENT } private fun ASTNode.followedByFunctionLiteralParameterList() = @@ -265,7 +265,7 @@ ?.prevLeaf { // Skip comments, whitespace, and empty nodes !it.isPartOfComment() && - !it.isWhiteSpaceWithoutNewline() && + !it.isWhiteSpaceWithoutNewline20 && it.textLength > 0 }.isWhiteSpaceWithNewline20 && // IDEA quirk: @@ -340,7 +340,7 @@ } private fun ASTNode.isFollowedByCommentOnSameLine() = - nextLeaf { !it.isWhiteSpaceWithoutNewline() } + nextLeaf { !it.isWhiteSpaceWithoutNewline20 } ?.isPartOfComment() == true private fun rearrangeValueList( @@ -411,7 +411,7 @@ typeProjection .prevSibling { !it.isPartOfComment() } .let { prevSibling -> - if (prevSibling?.elementType == LT || prevSibling.isWhiteSpaceWithoutNewline()) { + if (prevSibling?.elementType == LT || prevSibling.isWhiteSpaceWithoutNewline20) { emit(typeProjection.startOffset, "A newline was expected before '${typeProjection.text}'", true) .ifAutocorrectAllowed { typeProjection.upsertWhitespaceBeforeMe(indentConfig.siblingIndentOf(node)) @@ -425,7 +425,7 @@ .findChildByType(GT) ?.let { closingAngle -> val prevSibling = closingAngle.prevSibling { !it.isPartOfComment() } - if (prevSibling?.elementType != WHITE_SPACE || prevSibling.isWhiteSpaceWithoutNewline()) { + if (prevSibling?.elementType != WHITE_SPACE || prevSibling.isWhiteSpaceWithoutNewline20) { emit(closingAngle.startOffset, "A newline was expected before '${closingAngle.text}'", true) .ifAutocorrectAllowed { closingAngle.upsertWhitespaceBeforeMe(indentConfig.siblingIndentOf(node))