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 ecdcc2c1c30..817b36aca57 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/KotlinCommonBlock.kt @@ -123,31 +123,15 @@ abstract class KotlinCommonBlock( return nodeSubBlocks } - private fun ASTNode.isQualifiedNode(strict: Boolean = false): Boolean { - if (strict) return elementType in QUALIFIED_EXPRESSIONS - - var currentNode: ASTNode? = this - while (currentNode != null) { - if (currentNode.elementType in QUALIFIED_EXPRESSIONS) return true - if (currentNode.elementType != PARENTHESIZED && currentNode.psi?.safeAs() - ?.operationToken != EXCLEXCL - ) return false - currentNode = currentNode.treeParent - } - - return false - } - private fun splitSubBlocksOnDot(nodeSubBlocks: List): List { - if (node.treeParent?.isQualifiedNode() == true) return nodeSubBlocks - if (!canWrapCallChain(node)) return nodeSubBlocks + if (node.treeParent?.isQualifier == true || node.isCallChainWithoutWrap) return nodeSubBlocks val operationBlockIndex = nodeSubBlocks.indexOfBlockWithType(QUALIFIED_OPERATION) if (operationBlockIndex == -1) return nodeSubBlocks val block = nodeSubBlocks.first() - val wrap = createWrapForQualifiedExpression(node) - val indent = createIndentForQualifiedExpression(block) + val wrap = createWrapForQualifierExpression(node) + val indent = createIndentForQualifierExpression(node) val newBlock = block.processBlock(indent, wrap) return nodeSubBlocks.replaceBlock(newBlock, 0).splitAtIndex(operationBlockIndex, indent, wrap) } @@ -158,21 +142,16 @@ abstract class KotlinCommonBlock( @Suppress("UNCHECKED_CAST") val subBlocks = subBlocks as List val elementType = currentNode.elementType - val index = when (elementType) { - PARENTHESIZED -> subBlocks.indexOfFirst { block -> - val type = block.requireNode().elementType - type != LPAR && type !in WHITE_SPACE_OR_COMMENT_BIT_SET - } - POSTFIX_EXPRESSION, in QUALIFIED_EXPRESSIONS -> 0 - else -> return this - } + if (elementType != POSTFIX_EXPRESSION && elementType !in QUALIFIED_EXPRESSIONS) return this + val index = 0 val resultWrap = if (currentNode.wrapForFirstCallInChainIsAllowed) - wrap.takeIf { elementType != PARENTHESIZED } ?: createWrapForQualifiedExpression(currentNode) + wrap ?: createWrapForQualifierExpression(currentNode) else null val newBlock = subBlocks.elementAt(index).processBlock(indent, resultWrap) + return subBlocks.replaceBlock(newBlock, index).let { val operationIndex = subBlocks.indexOfBlockWithType(QUALIFIED_OPERATION) if (operationIndex != -1) @@ -184,23 +163,25 @@ abstract class KotlinCommonBlock( private fun List.replaceBlock(block: ASTBlock, index: Int = 0): List = toMutableList().apply { this[index] = block } - private val ASTNode.wrapForFirstCallInChainIsAllowed - get() = settings.kotlinCommonSettings.WRAP_FIRST_METHOD_IN_CALL_CHAIN || - settings.kotlinCommonSettings.METHOD_CALL_CHAIN_WRAP != CommonCodeStyleSettings.WRAP_AS_NEEDED || - firstChildNode?.isQualifiedNode(true) == true + private val ASTNode.wrapForFirstCallInChainIsAllowed: Boolean + get() { + if (unwrapQualifier()?.isCall != true) return false + return settings.kotlinCommonSettings.WRAP_FIRST_METHOD_IN_CALL_CHAIN || receiverIsCall() + } - private fun createWrapForQualifiedExpression(node: ASTNode): Wrap? = if (node.wrapForFirstCallInChainIsAllowed) - Wrap.createWrap( - settings.kotlinCommonSettings.METHOD_CALL_CHAIN_WRAP, - settings.kotlinCommonSettings.WRAP_FIRST_METHOD_IN_CALL_CHAIN, - ) - else - null + private fun createWrapForQualifierExpression(node: ASTNode): Wrap? = + if (node.wrapForFirstCallInChainIsAllowed && node.receiverIsCall()) + Wrap.createWrap( + settings.kotlinCommonSettings.METHOD_CALL_CHAIN_WRAP, + true /* wrapFirstElement */, + ) + else + null - private fun createIndentForQualifiedExpression(block: ASTBlock): Indent { + private fun createIndentForQualifierExpression(node: ASTNode): Indent { // enforce indent to children when there's a line break before the dot in any call in the chain (meaning that // the call chain following that call is indented) - val enforceIndentToChildren = anyCallInCallChainIsWrapped(block) + val enforceIndentToChildren = anyCallInCallChainIsWrapped(node) val indentType = if (settings.kotlinCustomSettings.CONTINUATION_INDENT_FOR_CHAINED_CALLS) { if (enforceIndentToChildren) Indent.Type.CONTINUATION else Indent.Type.CONTINUATION_WITHOUT_FIRST @@ -249,29 +230,6 @@ abstract class KotlinCommonBlock( return subList(0, index) + operationSyntheticBlock } - private fun anyCallInCallChainIsWrapped(astBlock: ASTBlock): Boolean { - var result: ASTBlock? = astBlock - while (true) { - if (result == null || !isCallBlock(result)) return false - val dot = result.node?.findChildByType(QUALIFIED_OPERATION) - if (dot != null && hasLineBreakBefore(dot)) { - return true - } - result = result.subBlocks.firstOrNull() as? ASTBlock? - } - } - - private fun isCallBlock(astBlock: ASTBlock): Boolean { - val node = astBlock.requireNode() - val lastChildElementType = node.lastChildNode?.elementType - return node.isQualifiedNode() && (lastChildElementType == CALL_EXPRESSION || lastChildElementType == REFERENCE_EXPRESSION) - } - - private fun canWrapCallChain(node: ASTNode): Boolean { - val callChainParent = node.parents().firstOrNull { !it.isQualifiedNode() } ?: return true - return callChainParent.elementType !in QUALIFIED_EXPRESSIONS_WITHOUT_WRAP - } - private fun splitSubBlocksOnElvis(nodeSubBlocks: List): List { val elvisIndex = nodeSubBlocks.indexOfBlockWithType(ELVIS_SET) if (elvisIndex >= 0) { @@ -827,6 +785,54 @@ abstract class KotlinCommonBlock( } } +private fun ASTNode.qualifierReceiver(): ASTNode? = unwrapQualifier()?.psi + ?.safeAs() + ?.receiverExpression + ?.node + ?.unwrapQualifier() + +private tailrec fun ASTNode.unwrapQualifier(): ASTNode? { + if (elementType in QUALIFIED_EXPRESSIONS) return this + + val psi = psi as? KtPostfixExpression ?: return null + if (psi.operationToken != EXCLEXCL) return null + + return psi.baseExpression?.node?.unwrapQualifier() +} + +private fun ASTNode.receiverIsCall(): Boolean = qualifierReceiver()?.isCall == true + +private val ASTNode.isCallChainWithoutWrap: Boolean + get() { + val callChainParent = parents().firstOrNull { !it.isQualifier } ?: return true + return callChainParent.elementType in QUALIFIED_EXPRESSIONS_WITHOUT_WRAP + } + +private val ASTNode.isQualifier: Boolean + get() { + var currentNode: ASTNode? = this + while (currentNode != null) { + if (currentNode.elementType in QUALIFIED_EXPRESSIONS) return true + if (currentNode.psi?.safeAs()?.operationToken != EXCLEXCL) return false + + currentNode = currentNode.treeParent + } + + return false + } + +private val ASTNode.isCall: Boolean + get() = unwrapQualifier()?.lastChildNode?.elementType == CALL_EXPRESSION + +private fun anyCallInCallChainIsWrapped(node: ASTNode): Boolean { + val sequentialCalls = generateSequence(node) { it.firstChildNode }.takeWhile { it.isCall } + + return sequentialCalls.any { call -> + val qualifier = call.findChildByType(QUALIFIED_OPERATION) + qualifier != null && hasLineBreakBefore(qualifier) + } +} + private fun ASTNode.isFirstParameter(): Boolean = treePrev?.elementType == LPAR private fun wrapAfterAnnotation(wrapType: Int): WrappingStrategy { @@ -983,8 +989,7 @@ private val INDENT_RULES = arrayOf( strategy("Chained calls") .within(QUALIFIED_EXPRESSIONS) - .notForType(DOT, SAFE_ACCESS) - .forElement { it.treeParent.firstChildNode != it } + .forType(EOL_COMMENT, BLOCK_COMMENT, DOC_COMMENT, SHEBANG_COMMENT) .continuationIf(KotlinCodeStyleSettings::CONTINUATION_INDENT_FOR_CHAINED_CALLS), strategy("Colon of delegation list") diff --git a/idea/testData/formatter/callChain/CallChainWrapping.after.inv.kt b/idea/testData/formatter/callChain/CallChainWrapping.after.inv.kt index 349fcdb896a..94301dd4df9 100644 --- a/idea/testData/formatter/callChain/CallChainWrapping.after.inv.kt +++ b/idea/testData/formatter/callChain/CallChainWrapping.after.inv.kt @@ -8,15 +8,13 @@ val x2 = foo() .baz() .quux() -val x3 = ((foo() - .bar())) +val x3 = ((foo().bar())) .baz() .quux() val x4 = (foo() .bar() - .baz()) - .quux() + .baz()).quux() val x5 = (foo()) .bar() @@ -38,8 +36,49 @@ val x8 = foo!!!!!!!! .baz()!! .quux()!! -val x9 = ((b!!)!!!!)!! - .f +val x9 = ((b!!)!!!!)!!.f + +val x10 = a()!!.a() + +val x11 = a()!!!!.a() + +val x12 = a()!! + .a()!! + .a() + +val x13 = a()!!!! + .a() + .a() + +val x14 = a().a() + +val x15 = (a()).a() + +val x16 = (a()) + .a() + .a() + +val x17 = (a().a()).a() + +val x18 = (a().a()) + .a() + .a() + +val x18 = (a() + .a() + .a()) + .a() + .a() + +val x19 = (a() + .a() + .a()).a() + +val x20 = foo!!.foo + .baz()!! + .quux()!!.foo.foo.foo.baz().foo + .baz() + .baz() val y = xyzzy(foo .bar() @@ -90,4 +129,4 @@ fun foo() { // SET_INT: METHOD_CALL_CHAIN_WRAP = 2 // SET_FALSE: WRAP_FIRST_METHOD_IN_CALL_CHAIN -// SET_TRUE: ALLOW_TRAILING_COMMA \ No newline at end of file +// SET_TRUE: ALLOW_TRAILING_COMMA diff --git a/idea/testData/formatter/callChain/CallChainWrapping.after.kt b/idea/testData/formatter/callChain/CallChainWrapping.after.kt index 98f99ffe12c..89f53d5d134 100644 --- a/idea/testData/formatter/callChain/CallChainWrapping.after.kt +++ b/idea/testData/formatter/callChain/CallChainWrapping.after.kt @@ -30,6 +30,39 @@ val x8 = foo!!!!!!!!.bar() val x9 = ((b!!)!!!!)!!.f +val x10 = a()!!.a() + +val x11 = a()!!!!.a() + +val x12 = a()!!.a()!! + .a() + +val x13 = a()!!!!.a() + .a() + +val x14 = a().a() + +val x15 = (a()).a() + +val x16 = (a()).a() + .a() + +val x17 = (a().a()).a() + +val x18 = (a().a()).a() + .a() + +val x18 = (a().a() + .a()).a() + .a() + +val x19 = (a().a() + .a()).a() + +val x20 = foo!!.foo.baz()!! + .quux()!!.foo.foo.foo.baz().foo.baz() + .baz() + val y = xyzzy(foo.bar() .baz() .quux()) diff --git a/idea/testData/formatter/callChain/CallChainWrapping.kt b/idea/testData/formatter/callChain/CallChainWrapping.kt index a1be4d1ef14..8f2f05465de 100644 --- a/idea/testData/formatter/callChain/CallChainWrapping.kt +++ b/idea/testData/formatter/callChain/CallChainWrapping.kt @@ -16,6 +16,30 @@ val x8 = foo!!!!!!!!.bar().baz()!!.quux()!! val x9 = ((b!!)!!!!)!!.f +val x10 = a()!!.a() + +val x11 = a()!!!!.a() + +val x12 = a()!!.a()!!.a() + +val x13 = a()!!!!.a().a() + +val x14 = a().a() + +val x15 = (a()).a() + +val x16 = (a()).a().a() + +val x17 = (a().a()).a() + +val x18 = (a().a()).a().a() + +val x18 = (a().a().a()).a().a() + +val x19 = (a().a().a()).a() + +val x20 = foo!!.foo.baz()!!.quux()!!.foo.foo.foo.baz().foo.baz().baz() + val y = xyzzy(foo.bar().baz().quux()) fun foo() { diff --git a/idea/testData/formatter/callChain/CallChainWrapping2.after.inv.kt b/idea/testData/formatter/callChain/CallChainWrapping2.after.inv.kt index 1b6a10cd545..87ef3d35cc9 100644 --- a/idea/testData/formatter/callChain/CallChainWrapping2.after.inv.kt +++ b/idea/testData/formatter/callChain/CallChainWrapping2.after.inv.kt @@ -1,116 +1,124 @@ fun test() { - INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .adad.adad + INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.adad.adad INSTANCE.adad.adad INSTANCE.adad - INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - (INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + (INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - (INSTANCE) - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + (INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - (INSTANCE) - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + (INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = (INSTANCE) - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = (INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = (INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = (INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = (((INSTANCE) - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww)) - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = (((INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww)).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww val b = INSTANCE.adad.adad val b = INSTANCE.adad - val b = INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = INSTANCE!!!! - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE!!!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = INSTANCE!! - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE!!!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = if (INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww == INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) + val b = INSTANCE!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + + val b = if (INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww == INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) true else false - if (INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww == INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) + if (INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww == INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) true else false - if ((INSTANCE) - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww == INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) + if ((INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww == INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) true else false - val bawdawdwad = INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val bawdawdwad = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val c = INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val c = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val c = INSTANCE() - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() - .adad.adawd + val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().adad.adawd - val c = INSTANCE() - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww } -val b = INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww +val b = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww -val bawdawdwad = INSTANCE - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww +val bawdawdwad = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww -val c = INSTANCE +val c = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + +val c2 = INSTANCE .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww -val c = INSTANCE() - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww +val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().adad.adawd + +val x = foo.bar().baz().quux() + +val x2 = foo().bar().baz().quux() + +val x3 = ((foo().bar())).baz().quux() + +val x4 = (foo().bar().baz()).quux() + +val x5 = (foo()).bar().baz().quux() + +val x6 = foo!!.bar().baz()!!.quux()!! + +val x7 = foo!!.bar().baz()!!.quux()!! + +val x8 = foo!!!!!!!!.bar().baz()!!.quux()!! + +val x9 = ((b!!)!!!!)!!.f + +val x10 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a() + +val x11 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + +val x12 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!! + .a()!!.a() + +val x13 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!! + .a().a() + +val x14 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().a() + +val x15 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x16 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()) + .a() .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() - .adad.adawd +val x17 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x18 = (a().a()).a().a() + +val x18 = (a() + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a().a() + +val x19 = (a() + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a() // SET_INT: METHOD_CALL_CHAIN_WRAP = 1 // SET_FALSE: WRAP_FIRST_METHOD_IN_CALL_CHAIN \ No newline at end of file diff --git a/idea/testData/formatter/callChain/CallChainWrapping2.after.kt b/idea/testData/formatter/callChain/CallChainWrapping2.after.kt index 76081b23b6f..228cde98031 100644 --- a/idea/testData/formatter/callChain/CallChainWrapping2.after.kt +++ b/idea/testData/formatter/callChain/CallChainWrapping2.after.kt @@ -1,29 +1,23 @@ fun test() { - INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .adad.adad + INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.adad.adad INSTANCE.adad.adad INSTANCE.adad - INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww (INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - (INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + (INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww (INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val b = (INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = (INSTANCE).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww val b = (INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww).awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww @@ -37,6 +31,8 @@ fun test() { val b = INSTANCE!!!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE!!!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww val b = if (INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww == INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) @@ -54,33 +50,71 @@ fun test() { else false - val bawdawdwad = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val bawdawdwad = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val c = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val c = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() - .adad.adawd + val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().adad.adawd val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww } -val b = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww +val b = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww -val bawdawdwad = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww +val bawdawdwad = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww -val c = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() - .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww +val c = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww -val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww +val c2 = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + +val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().adad.adawd + +val x = foo.bar().baz().quux() + +val x2 = foo().bar().baz().quux() + +val x3 = ((foo().bar())).baz().quux() + +val x4 = (foo().bar().baz()).quux() + +val x5 = (foo()).bar().baz().quux() + +val x6 = foo!!.bar().baz()!!.quux()!! + +val x7 = foo!!.bar().baz()!!.quux()!! + +val x8 = foo!!!!!!!!.bar().baz()!!.quux()!! + +val x9 = ((b!!)!!!!)!!.f + +val x10 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a() + +val x11 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + +val x12 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a()!! + .a() + +val x13 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + .a() + +val x14 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().a() + +val x15 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x16 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() - .adad.adawd +val x17 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x18 = (a().a()).a().a() + +val x18 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a().a() + +val x19 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a() // SET_INT: METHOD_CALL_CHAIN_WRAP = 1 // SET_FALSE: WRAP_FIRST_METHOD_IN_CALL_CHAIN \ No newline at end of file diff --git a/idea/testData/formatter/callChain/CallChainWrapping2.kt b/idea/testData/formatter/callChain/CallChainWrapping2.kt index d14af1a24d3..a7b9ad88c32 100644 --- a/idea/testData/formatter/callChain/CallChainWrapping2.kt +++ b/idea/testData/formatter/callChain/CallChainWrapping2.kt @@ -31,6 +31,8 @@ fun test() { val b = INSTANCE!!!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE!!!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val b = INSTANCE!!.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww val b = if (INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww == INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww) @@ -64,8 +66,49 @@ val bawdawdwad = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwaws val c = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww +val c2 = INSTANCE.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww + val c = INSTANCE().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww.awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().adad.adawd +val x = foo.bar().baz().quux() + +val x2 = foo().bar().baz().quux() + +val x3 = ((foo().bar())).baz().quux() + +val x4 = (foo().bar().baz()).quux() + +val x5 = (foo()).bar().baz().quux() + +val x6 = foo!!.bar().baz()!!.quux()!! + +val x7 = foo!!.bar().baz()!!.quux()!! + +val x8 = foo!!!!!!!!.bar().baz()!!.quux()!! + +val x9 = ((b!!)!!!!)!!.f + +val x10 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a() + +val x11 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + +val x12 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a()!!.a() + +val x13 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a().a() + +val x14 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().a() + +val x15 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x16 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + +val x17 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x18 = (a().a()).a().a() + +val x18 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().a()).a().a() + +val x19 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().a()).a() // SET_INT: METHOD_CALL_CHAIN_WRAP = 1 // SET_FALSE: WRAP_FIRST_METHOD_IN_CALL_CHAIN \ No newline at end of file diff --git a/idea/testData/formatter/callChain/CallChainWrappingChopDown.after.inv.kt b/idea/testData/formatter/callChain/CallChainWrappingChopDown.after.inv.kt index a5ffca3df97..91628a5ba5d 100644 --- a/idea/testData/formatter/callChain/CallChainWrappingChopDown.after.inv.kt +++ b/idea/testData/formatter/callChain/CallChainWrappingChopDown.after.inv.kt @@ -1,244 +1,337 @@ val x = foo + .bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo .bar() .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() val y = xyzzy(foo.bar().baz().quux()) fun foo() { - foo + foo.bar().baz().quux() + .foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo + .bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() + + z = (((foo()))!!).bar() + + z += (foo.bar().baz().quux().foo.bar().baz().quux().foo.bar()!!).baz().quux().foo.bar().baz().quux().foo + .bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() + + return ((foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo + .bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux()).foo.bar().baz().quux().foo.bar().baz().quux().foo + .bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo + .bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo + .bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar()).baz().quux().foo.bar().baz().quux().foo + .bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo + .bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() +} + +val T = foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + +val X = xyzzy(foo().bar().baz().quux()) + +fun DOO() { + foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() z = (((foo()))!!).bar() - z += (foo.bar().baz().quux().foo.bar().baz().quux().foo.bar()!!) + z += (foo().bar().baz().quux().foo().bar().baz().quux().foo().bar()!!) .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - return ((foo + return ((foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux()) - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar()) .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() } +val x = foo.bar().baz().quux() + +val x2 = foo().bar().baz().quux() + +val x3 = ((foo().bar())).baz().quux() + +val x4 = (foo().bar().baz()).quux() + +val x5 = (foo()).bar().baz().quux() + +val x6 = foo!!.bar().baz()!!.quux()!! + +val x7 = foo!!.bar().baz()!!.quux()!! + +val x8 = foo!!!!!!!!.bar().baz()!!.quux()!! + +val x9 = ((b!!)!!!!)!!.f + +val x10 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a() + +val x11 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + +val x12 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!! + .a()!! + .a() + +val x13 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!! + .a() + .a() + +val x14 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().a() + +val x15 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x16 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()) + .a() + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + +val x17 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x18 = (a().a()).a().a() + +val x18 = (a() + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a().a() + +val x19 = (a() + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a() + // SET_INT: METHOD_CALL_CHAIN_WRAP = 5 // SET_FALSE: WRAP_FIRST_METHOD_IN_CALL_CHAIN // SET_FALSE: CONTINUATION_INDENT_FOR_CHAINED_CALLS diff --git a/idea/testData/formatter/callChain/CallChainWrappingChopDown.after.kt b/idea/testData/formatter/callChain/CallChainWrappingChopDown.after.kt index 50b3a5810f4..50529f0d737 100644 --- a/idea/testData/formatter/callChain/CallChainWrappingChopDown.after.kt +++ b/idea/testData/formatter/callChain/CallChainWrappingChopDown.after.kt @@ -1,239 +1,318 @@ val x = foo - .bar() + .bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar() .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() - .foo - .bar() - .baz() - .quux() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() val y = xyzzy(foo.bar().baz().quux()) fun foo() { - foo.bar() + foo.bar().baz().quux() + .foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() + + z = (((foo()))!!).bar() + + z += (foo.bar().baz().quux().foo.bar().baz().quux().foo.bar()!!).baz().quux().foo.bar().baz().quux().foo.bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() + + return ((foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux()).foo.bar().baz().quux().foo.bar().baz().quux().foo.bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar()).baz().quux().foo.bar().baz().quux().foo.bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar() + .baz() + .quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() +} + +val T = foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + .foo() + .bar() + .baz() + .quux() + +val X = xyzzy(foo().bar().baz().quux()) + +fun DOO() { + foo().bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() z = (((foo()))!!).bar() - z += (foo.bar().baz().quux().foo.bar().baz().quux().foo.bar()!!).baz() + z += (foo().bar().baz().quux().foo().bar().baz().quux().foo().bar()!!).baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - return ((foo.bar() + return ((foo().bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() - .quux()).foo + .quux()).foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar()).baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() - .foo + .foo() .bar() .baz() .quux() } +val x = foo.bar().baz().quux() + +val x2 = foo().bar().baz().quux() + +val x3 = ((foo().bar())).baz().quux() + +val x4 = (foo().bar().baz()).quux() + +val x5 = (foo()).bar().baz().quux() + +val x6 = foo!!.bar().baz()!!.quux()!! + +val x7 = foo!!.bar().baz()!!.quux()!! + +val x8 = foo!!!!!!!!.bar().baz()!!.quux()!! + +val x9 = ((b!!)!!!!)!!.f + +val x10 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a() + +val x11 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + +val x12 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a()!! + .a() + +val x13 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + .a() + +val x14 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().a() + +val x15 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x16 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + +val x17 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x18 = (a().a()).a().a() + +val x18 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a().a() + +val x19 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a() + // SET_INT: METHOD_CALL_CHAIN_WRAP = 5 // SET_FALSE: WRAP_FIRST_METHOD_IN_CALL_CHAIN // SET_FALSE: CONTINUATION_INDENT_FOR_CHAINED_CALLS diff --git a/idea/testData/formatter/callChain/CallChainWrappingChopDown.kt b/idea/testData/formatter/callChain/CallChainWrappingChopDown.kt index d722eddc8ed..68263dd1843 100644 --- a/idea/testData/formatter/callChain/CallChainWrappingChopDown.kt +++ b/idea/testData/formatter/callChain/CallChainWrappingChopDown.kt @@ -14,6 +14,67 @@ fun foo() { return ((foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux()).foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar()).baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux().foo.bar().baz().quux() } +val T = foo() + .bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux() + +val X = xyzzy(foo().bar().baz().quux()) + +fun DOO() { + foo().bar().baz().quux() + .foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux() + + z = (( ( foo()) )!! ).bar() + + z += (foo().bar().baz().quux().foo().bar().baz().quux().foo().bar() !!) .baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux() + + return ((foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux()).foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar()).baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux().foo().bar().baz().quux() +} + +val x = foo.bar().baz().quux() + +val x2 = foo().bar().baz().quux() + +val x3 = ((foo().bar())).baz().quux() + +val x4 = (foo().bar().baz()).quux() + +val x5 = (foo()).bar().baz().quux() + +val x6 = foo!!.bar().baz()!!.quux()!! + +val x7 = foo!!.bar().baz()!!.quux()!! + +val x8 = foo!!!!!!!!.bar().baz()!!.quux()!! + +val x9 = ((b!!)!!!!)!!.f + +val x10 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a() + +val x11 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + +val x12 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!.a()!! + .a() + +val x13 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()!!!!.a() + .a() + +val x14 = awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww().a() + +val x15 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x16 = (awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + .awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + +val x17 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww()).a() + +val x18 = (a().a()).a().a() + +val x18 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a().a() + +val x19 = (a().awswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswswwawswswswswswswsww() + .a()).a() + // SET_INT: METHOD_CALL_CHAIN_WRAP = 5 // SET_FALSE: WRAP_FIRST_METHOD_IN_CALL_CHAIN // SET_FALSE: CONTINUATION_INDENT_FOR_CHAINED_CALLS diff --git a/idea/testData/formatter/callChain/KT36466.after.kt b/idea/testData/formatter/callChain/KT36466.after.kt new file mode 100644 index 00000000000..1ea60d8d3e0 --- /dev/null +++ b/idea/testData/formatter/callChain/KT36466.after.kt @@ -0,0 +1,19 @@ +fun foo() { + listOf(42).map { it } + bar(A().b) + "hello".length +} + +fun bar(x: Int) { +} + +class A { + val b: B = B() +} + +class B { + val c: Int = 42 +} + +// SET_INT: METHOD_CALL_CHAIN_WRAP = 2 +// SET_TRUE: WRAP_FIRST_METHOD_IN_CALL_CHAIN \ No newline at end of file diff --git a/idea/testData/formatter/callChain/KT36466.kt b/idea/testData/formatter/callChain/KT36466.kt new file mode 100644 index 00000000000..1ea60d8d3e0 --- /dev/null +++ b/idea/testData/formatter/callChain/KT36466.kt @@ -0,0 +1,19 @@ +fun foo() { + listOf(42).map { it } + bar(A().b) + "hello".length +} + +fun bar(x: Int) { +} + +class A { + val b: B = B() +} + +class B { + val c: Int = 42 +} + +// SET_INT: METHOD_CALL_CHAIN_WRAP = 2 +// SET_TRUE: WRAP_FIRST_METHOD_IN_CALL_CHAIN \ No newline at end of file diff --git a/idea/testData/formatter/callChain/NotCallChain.after.inv.kt b/idea/testData/formatter/callChain/NotCallChain.after.inv.kt new file mode 100644 index 00000000000..3ab9ed5fb41 --- /dev/null +++ b/idea/testData/formatter/callChain/NotCallChain.after.inv.kt @@ -0,0 +1,28 @@ +fun foo() { + listOf(42).map { it } + bar(A().b.toString()) + "hello".length +} + +fun bar(x: Int) { +} + +class A { + val b: B = B() +} + +class B { + val c: Int = 42 +} + +fun usage() { + data class A(val i: Int) { + fun doSmth(): A = this + } + + val a = A(10) + a.doSmth().i +} + +// SET_INT: METHOD_CALL_CHAIN_WRAP = 2 +// SET_TRUE: WRAP_FIRST_METHOD_IN_CALL_CHAIN diff --git a/idea/testData/formatter/callChain/NotCallChain.after.kt b/idea/testData/formatter/callChain/NotCallChain.after.kt new file mode 100644 index 00000000000..3ab9ed5fb41 --- /dev/null +++ b/idea/testData/formatter/callChain/NotCallChain.after.kt @@ -0,0 +1,28 @@ +fun foo() { + listOf(42).map { it } + bar(A().b.toString()) + "hello".length +} + +fun bar(x: Int) { +} + +class A { + val b: B = B() +} + +class B { + val c: Int = 42 +} + +fun usage() { + data class A(val i: Int) { + fun doSmth(): A = this + } + + val a = A(10) + a.doSmth().i +} + +// SET_INT: METHOD_CALL_CHAIN_WRAP = 2 +// SET_TRUE: WRAP_FIRST_METHOD_IN_CALL_CHAIN diff --git a/idea/testData/formatter/callChain/NotCallChain.kt b/idea/testData/formatter/callChain/NotCallChain.kt new file mode 100644 index 00000000000..3ab9ed5fb41 --- /dev/null +++ b/idea/testData/formatter/callChain/NotCallChain.kt @@ -0,0 +1,28 @@ +fun foo() { + listOf(42).map { it } + bar(A().b.toString()) + "hello".length +} + +fun bar(x: Int) { +} + +class A { + val b: B = B() +} + +class B { + val c: Int = 42 +} + +fun usage() { + data class A(val i: Int) { + fun doSmth(): A = this + } + + val a = A(10) + a.doSmth().i +} + +// SET_INT: METHOD_CALL_CHAIN_WRAP = 2 +// SET_TRUE: WRAP_FIRST_METHOD_IN_CALL_CHAIN diff --git a/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java b/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java index f4ad9b3e750..6f06ce741a2 100644 --- a/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java @@ -931,6 +931,16 @@ public class FormatterTestGenerated extends AbstractFormatterTest { public void testKT22346() throws Exception { runTest("idea/testData/formatter/callChain/KT22346.after.kt"); } + + @TestMetadata("KT36466.after.kt") + public void testKT36466() throws Exception { + runTest("idea/testData/formatter/callChain/KT36466.after.kt"); + } + + @TestMetadata("NotCallChain.after.kt") + public void testNotCallChain() throws Exception { + runTest("idea/testData/formatter/callChain/NotCallChain.after.kt"); + } } @TestMetadata("idea/testData/formatter/fileAnnotations") @@ -1882,6 +1892,11 @@ public class FormatterTestGenerated extends AbstractFormatterTest { public void testFunctionLiteralsInChainCalls() throws Exception { runTest("idea/testData/formatter/callChain/FunctionLiteralsInChainCalls.after.inv.kt"); } + + @TestMetadata("NotCallChain.after.inv.kt") + public void testNotCallChain() throws Exception { + runTest("idea/testData/formatter/callChain/NotCallChain.after.inv.kt"); + } } @TestMetadata("idea/testData/formatter/fileAnnotations")