From 211cae2ad28b82083cc56a64334b38c862f280e3 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 6 Dec 2016 19:52:54 +0300 Subject: [PATCH] Refactoring: use when instead of if --- .../idea/formatter/KotlinCommonBlock.kt | 80 ++++++++++--------- 1 file changed, 41 insertions(+), 39 deletions(-) diff --git a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt index a3f370b885f..7426904880b 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt @@ -197,50 +197,52 @@ abstract class KotlinCommonBlock( val jetCommonSettings = settings.getCommonSettings(KotlinLanguage.INSTANCE) val jetSettings = settings.getCustomSettings(KotlinCodeStyleSettings::class.java) val parentType = node.elementType - if (parentType === KtNodeTypes.VALUE_PARAMETER_LIST) { - return getAlignmentForChildInParenthesis( - jetCommonSettings.ALIGN_MULTILINE_PARAMETERS, KtNodeTypes.VALUE_PARAMETER, COMMA, - jetCommonSettings.ALIGN_MULTILINE_METHOD_BRACKETS, LPAR, RPAR) - } - else if (parentType === KtNodeTypes.VALUE_ARGUMENT_LIST) { - return getAlignmentForChildInParenthesis( - jetCommonSettings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS, KtNodeTypes.VALUE_ARGUMENT, COMMA, - jetCommonSettings.ALIGN_MULTILINE_METHOD_BRACKETS, LPAR, RPAR) - } - else if (parentType === KtNodeTypes.WHEN) { - return getAlignmentForCaseBranch(jetSettings.ALIGN_IN_COLUMNS_CASE_BRANCH) - } - else if (parentType === KtNodeTypes.WHEN_ENTRY) { - return alignmentStrategy - } - else if (parentType in BINARY_EXPRESSIONS && getOperationType(node) in ALIGN_FOR_BINARY_OPERATIONS) { - return createAlignmentStrategy(jetCommonSettings.ALIGN_MULTILINE_BINARY_OPERATION, getAlignment()) - } - else if (parentType === KtNodeTypes.SUPER_TYPE_LIST || parentType === KtNodeTypes.INITIALIZER_LIST) { - return createAlignmentStrategy(jetCommonSettings.ALIGN_MULTILINE_EXTENDS_LIST, getAlignment()) - } - else if (parentType === KtNodeTypes.PARENTHESIZED) { - return object : CommonAlignmentStrategy() { - private var bracketsAlignment: Alignment? = if (jetCommonSettings.ALIGN_MULTILINE_BINARY_OPERATION) Alignment.createAlignment() else null + return when { + parentType === KtNodeTypes.VALUE_PARAMETER_LIST -> + getAlignmentForChildInParenthesis( + jetCommonSettings.ALIGN_MULTILINE_PARAMETERS, KtNodeTypes.VALUE_PARAMETER, COMMA, + jetCommonSettings.ALIGN_MULTILINE_METHOD_BRACKETS, LPAR, RPAR) - override fun getAlignment(node: ASTNode): Alignment? { - val childNodeType = node.elementType - val prev = getPrevWithoutWhitespace(node) + parentType === KtNodeTypes.VALUE_ARGUMENT_LIST -> + getAlignmentForChildInParenthesis( + jetCommonSettings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS, KtNodeTypes.VALUE_ARGUMENT, COMMA, + jetCommonSettings.ALIGN_MULTILINE_METHOD_BRACKETS, LPAR, RPAR) - if (prev != null && prev.elementType === TokenType.ERROR_ELEMENT || childNodeType === TokenType.ERROR_ELEMENT) { - return bracketsAlignment + parentType === KtNodeTypes.WHEN -> + getAlignmentForCaseBranch(jetSettings.ALIGN_IN_COLUMNS_CASE_BRANCH) + + parentType === KtNodeTypes.WHEN_ENTRY -> + alignmentStrategy + + parentType in BINARY_EXPRESSIONS && getOperationType(node) in ALIGN_FOR_BINARY_OPERATIONS -> + createAlignmentStrategy(jetCommonSettings.ALIGN_MULTILINE_BINARY_OPERATION, getAlignment()) + + parentType === KtNodeTypes.SUPER_TYPE_LIST || parentType === KtNodeTypes.INITIALIZER_LIST -> + createAlignmentStrategy(jetCommonSettings.ALIGN_MULTILINE_EXTENDS_LIST, getAlignment()) + + parentType === KtNodeTypes.PARENTHESIZED -> + object : CommonAlignmentStrategy() { + private var bracketsAlignment: Alignment? = if (jetCommonSettings.ALIGN_MULTILINE_BINARY_OPERATION) Alignment.createAlignment() else null + + override fun getAlignment(node: ASTNode): Alignment? { + val childNodeType = node.elementType + val prev = getPrevWithoutWhitespace(node) + + if (prev != null && prev.elementType === TokenType.ERROR_ELEMENT || childNodeType === TokenType.ERROR_ELEMENT) { + return bracketsAlignment + } + + if (childNodeType === LPAR || childNodeType === RPAR) { + return bracketsAlignment + } + + return null } - - if (childNodeType === LPAR || childNodeType === RPAR) { - return bracketsAlignment - } - - return null } - } - } - return getNullAlignmentStrategy() + else -> + getNullAlignmentStrategy() + } }