From 49aaeb5a38bd71c76895dd1cb605bdc79b80a4a4 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 21 Jun 2016 12:34:29 +0300 Subject: [PATCH] Refactoring: wrap Spacing.createSpacing to Kotlin function with default parameters --- .../idea/formatter/KotlinSpacingBuilder.kt | 12 +++++++++-- .../idea/formatter/kotlinSpacingRules.kt | 20 +++++++++---------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinSpacingBuilder.kt b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinSpacingBuilder.kt index 5b07c6587b6..e000ccbd7ae 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinSpacingBuilder.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinSpacingBuilder.kt @@ -27,7 +27,7 @@ import com.intellij.psi.tree.TokenSet import org.jetbrains.kotlin.KtNodeTypes import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.lexer.KtTokens -import java.util.ArrayList +import java.util.* class KotlinSpacingBuilder(val codeStyleSettings: CodeStyleSettings, val spacingBuilderUtil: KotlinSpacingBuilderUtil) { private val builders = ArrayList() @@ -120,7 +120,7 @@ class KotlinSpacingBuilder(val codeStyleSettings: CodeStyleSettings, val spacing if (child1.node.elementType == KtTokens.EOL_COMMENT && spacing.toString().contains("minLineFeeds=0")) { val isBeforeBlock = child2.node.elementType == KtNodeTypes.BLOCK || child2.node.firstChildNode?.elementType == KtNodeTypes.BLOCK val keepBlankLines = if (isBeforeBlock) 0 else codeStyleSettings.KEEP_BLANK_LINES_IN_CODE - return Spacing.createSpacing(0, 0, 1, true, keepBlankLines) + return createSpacing(0, minLineFeeds = 1, keepLineBreaks = true, keepBlankLines = keepBlankLines) } return spacing } @@ -139,6 +139,14 @@ class KotlinSpacingBuilder(val codeStyleSettings: CodeStyleSettings, val spacing builder.init() builders.add(builder) } + + fun createSpacing(minSpaces: Int, + maxSpaces: Int = minSpaces, + minLineFeeds: Int = 0, + keepLineBreaks: Boolean = codeStyleSettings.KEEP_LINE_BREAKS, + keepBlankLines: Int = codeStyleSettings.KEEP_BLANK_LINES_IN_CODE): Spacing { + return Spacing.createSpacing(minSpaces, maxSpaces, minLineFeeds, keepLineBreaks, keepBlankLines) + } } interface KotlinSpacingBuilderUtil { diff --git a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt index 54e91f397cd..bae9f249b9c 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt @@ -70,14 +70,14 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing inPosition(parent = CLASS_BODY, left = SEMICOLON).customRule { parent, left, right -> val klass = parent.node.treeParent.psi as? KtClass ?: return@customRule null if (klass.isEnum() && right.node.elementType in DECLARATIONS) { - Spacing.createSpacing(0, 0, 2, settings.KEEP_LINE_BREAKS, settings.KEEP_BLANK_LINES_IN_DECLARATIONS) + createSpacing(0, minLineFeeds = 2, keepBlankLines = settings.KEEP_BLANK_LINES_IN_DECLARATIONS) } else null } val parameterWithDocCommentRule = { parent: ASTBlock, left: ASTBlock, right: ASTBlock -> if (right.node.firstChildNode.elementType == KtTokens.DOC_COMMENT) { - Spacing.createSpacing(0, 0, 1, true, settings.KEEP_BLANK_LINES_IN_DECLARATIONS) + createSpacing(0, minLineFeeds = 1, keepLineBreaks = true, keepBlankLines = settings.KEEP_BLANK_LINES_IN_DECLARATIONS) } else { null @@ -178,7 +178,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing custom { inPosition(right = PRIMARY_CONSTRUCTOR).customRule { p, l, r -> val spacesCount = if (r.node.findLeafElementAt(0)?.elementType != LPAR) 1 else 0 - Spacing.createSpacing(spacesCount, spacesCount, 0, true, 0) + createSpacing(spacesCount, minLineFeeds = 0, keepLineBreaks = true, keepBlankLines = 0) } } @@ -267,7 +267,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing } else null val removeLineBreaks = leftBlock != null && afterBlockFilter(right.node?.treeParent!!, leftBlock) - Spacing.createSpacing(1, 1, 0, !removeLineBreaks, 0) + createSpacing(1, minLineFeeds = 0, keepLineBreaks = !removeLineBreaks, keepBlankLines = 0) } } } @@ -290,10 +290,10 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing val isAfterEolComment = previousLeaf != null && (previousLeaf.elementType == EOL_COMMENT) val keepLineBreaks = kotlinSettings.LBRACE_ON_NEXT_LINE || isAfterEolComment val minimumLF = if (kotlinSettings.LBRACE_ON_NEXT_LINE) 1 else 0 - return Spacing.createSpacing(1, 1, minimumLF, keepLineBreaks, 0) + return createSpacing(1, minLineFeeds = minimumLF, keepLineBreaks = keepLineBreaks, keepBlankLines = 0) } } - return Spacing.createSpacing(1, 1, 0, settings.KEEP_LINE_BREAKS, settings.KEEP_BLANK_LINES_IN_CODE) + return createSpacing(1) } fun leftBraceRule(blockType: IElementType = BLOCK) = { @@ -311,7 +311,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing val nodeBeforeRight = right.node.treePrev if (nodeBeforeRight is PsiWhiteSpace && !nodeBeforeRight.textContains('\n')) { // Several line comments happened to be generated in one line - Spacing.createSpacing(1, 0, 1, settings.KEEP_LINE_BREAKS, settings.KEEP_BLANK_LINES_IN_CODE) + createSpacing(0, minLineFeeds = 1) } else { null @@ -326,7 +326,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing inPosition(left = SEMICOLON).customRule { parent, left, right -> val nodeAfterLeft = left.node.treeNext if (nodeAfterLeft is PsiWhiteSpace && !nodeAfterLeft.textContains('\n')) { - Spacing.createSpacing(1, 1, 0, settings.KEEP_LINE_BREAKS, settings.KEEP_BLANK_LINES_IN_CODE) + createSpacing(1) } else { null @@ -371,7 +371,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing inPosition(parent = FUNCTION_LITERAL, left = LBRACE, right = RBRACE) - .spacing(Spacing.createSpacing(0, 1, 0, settings.KEEP_LINE_BREAKS, settings.KEEP_BLANK_LINES_IN_CODE)) + .spacing(createSpacing(minSpaces = 0, maxSpaces = 1)) inPosition(parent = FUNCTION_LITERAL, right = RBRACE) @@ -392,7 +392,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing } } - Spacing.createSpacing(numSpaces, numSpaces, 0, settings.KEEP_LINE_BREAKS, settings.KEEP_BLANK_LINES_IN_CODE) + createSpacing(numSpaces) } inPosition(parent = CLASS_BODY, right = RBRACE).lineBreakIfLineBreakInParent(numSpacesOtherwise = 1)