diff --git a/idea/line-indent-provider/src/org/jetbrains/kotlin/idea/formatter/lineIndent/KotlinLangLineIndentProvider.kt b/idea/line-indent-provider/src/org/jetbrains/kotlin/idea/formatter/lineIndent/KotlinLangLineIndentProvider.kt index ed5e6b3ab1e..46287836977 100644 --- a/idea/line-indent-provider/src/org/jetbrains/kotlin/idea/formatter/lineIndent/KotlinLangLineIndentProvider.kt +++ b/idea/line-indent-provider/src/org/jetbrains/kotlin/idea/formatter/lineIndent/KotlinLangLineIndentProvider.kt @@ -46,13 +46,20 @@ abstract class KotlinLangLineIndentProvider : JavaLikeLangLineIndentProvider() { when { after.isAt(BlockClosingBrace) && !currentPosition.hasLineBreaksAfter(offset) -> - return factory.createIndentCalculatorForBrace(before, after, BlockOpeningBrace, BlockClosingBrace) + return factory.createIndentCalculatorForBrace(before, after, BlockOpeningBrace, BlockClosingBrace, Indent.getNoneIndent()) - before.isAt(BlockOpeningBrace) && after.isAt(BlockClosingBrace) -> - return factory.createIndentCalculator(Indent.getNormalIndent(), before.startOffset) + before.isAt(BlockOpeningBrace) && after.isAt(BlockClosingBrace) -> { + return factory.createIndentCalculatorForBrace(before, after, BlockOpeningBrace, BlockClosingBrace, Indent.getNormalIndent()) + } after.isAt(ArrayClosingBracket) && !currentPosition.hasLineBreaksAfter(offset) -> - return factory.createIndentCalculatorForBrace(before, after, ArrayOpeningBracket, ArrayClosingBracket) + return factory.createIndentCalculatorForBrace( + before, + after, + ArrayOpeningBracket, + ArrayClosingBracket, + Indent.getNoneIndent() + ) before.isAt(ArrayOpeningBracket) && after.isAt(ArrayClosingBracket) -> { val indent = if (isSimilarToFunctionInvocation(before)) @@ -63,18 +70,15 @@ abstract class KotlinLangLineIndentProvider : JavaLikeLangLineIndentProvider() { return factory.createIndentCalculator(indent, before.startOffset) } - before.isAt(BlockOpeningBrace) && before.beforeIgnoringWhiteSpaceOrComment().isFunctionDeclaration() -> - return factory.createIndentCalculator(Indent.getNormalIndent(), before.startOffset) - -// KT-39716 -// after.isAt(Quest) && after.after().isAt(Colon) -> { -// val indent = if (settings.continuationIndentInElvis) -// Indent.getContinuationIndent() -// else -// Indent.getNormalIndent() -// -// return factory.createIndentCalculator(indent, before.startOffset) -// } + // KT-39716 + // after.isAt(Quest) && after.after().isAt(Colon) -> { + // val indent = if (settings.continuationIndentInElvis) + // Indent.getContinuationIndent() + // else + // Indent.getNormalIndent() + // + // return factory.createIndentCalculator(indent, before.startOffset) + // } before.isAt(Colon) && before.before().isAt(Quest) -> return factory.createIndentCalculator(Indent.getNoneIndent(), before.startOffset) @@ -214,18 +218,27 @@ abstract class KotlinLangLineIndentProvider : JavaLikeLangLineIndentProvider() { before: SemanticEditorPosition, after: SemanticEditorPosition, leftBraceType: SemanticEditorPosition.SyntaxElement, - rightBraceType: SemanticEditorPosition.SyntaxElement - ): IndentCalculator? { + rightBraceType: SemanticEditorPosition.SyntaxElement, + defaultIndent: Indent + ): IndentCalculator { val leftBrace = before.copyAnd { it.moveToLeftParenthesisBackwardsSkippingNested(leftBraceType, rightBraceType) } - val indent = if (after.after().afterOptionalMix(*WHITE_SPACE_OR_COMMENT_BIT_SET).isAt(Comma)) - createAlignMultilineIndent(leftBrace) - else - Indent.getNoneIndent() + if (after.after().afterOptionalMix(*WHITE_SPACE_OR_COMMENT_BIT_SET).isAt(Comma)) { + return createIndentCalculator(createAlignMultilineIndent(leftBrace), leftBrace.startOffset) + } - return createIndentCalculator(indent, leftBrace.startOffset) + val beforeLeftBrace = leftBrace.copyAnd { it.moveBeforeIgnoringWhiteSpaceOrComment() } + val leftAnchor = if (beforeLeftBrace.isAt(RightParenthesis)) { + beforeLeftBrace.moveBeforeParentheses(LeftParenthesis, RightParenthesis) + beforeLeftBrace + } else { + findFunctionDeclarationBeforeBody(beforeLeftBrace) + } + + val resultPosition = leftAnchor?.takeIf { !it.isAtEnd } ?: leftBrace + return createIndentCalculator(defaultIndent, resultPosition.startOffset) } private fun IndentCalculatorFactory.createIndentCalculatorForParenthesis( @@ -274,11 +287,6 @@ abstract class KotlinLangLineIndentProvider : JavaLikeLangLineIndentProvider() { return null } - /** - * @receiver is position before '=' for expression body or '{' for block body - */ - private fun SemanticEditorPosition.isFunctionDeclaration(): Boolean = findFunctionDeclarationBeforeBody(this) != null - /** * @param endOfDeclaration is position before '=' for expression body or '{' for block body */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceTypingIndentationTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceTypingIndentationTestGenerated.java index b6030d6c485..f87fe017b12 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceTypingIndentationTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceTypingIndentationTestGenerated.java @@ -93,16 +93,6 @@ public class PerformanceTypingIndentationTestGenerated extends AbstractPerforman runTest("idea/testData/indentationOnNewline/ConsecutiveCallsInSafeCallsEnd.kt"); } - @TestMetadata("FunctionBlock.kt") - public void testFunctionBlock() throws Exception { - runTest("idea/testData/indentationOnNewline/FunctionBlock.kt"); - } - - @TestMetadata("FunctionBlock2.kt") - public void testFunctionBlock2() throws Exception { - runTest("idea/testData/indentationOnNewline/FunctionBlock2.kt"); - } - @TestMetadata("HigherOrderFunction.kt") public void testHigherOrderFunction() throws Exception { runTest("idea/testData/indentationOnNewline/HigherOrderFunction.kt"); @@ -567,6 +557,64 @@ public class PerformanceTypingIndentationTestGenerated extends AbstractPerforman } } + @TestMetadata("idea/testData/indentationOnNewline/emptyBraces") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class EmptyBraces extends AbstractPerformanceTypingIndentationTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doPerfTest, this, testDataFilePath); + } + + public void testAllFilesPresentInEmptyBraces() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/indentationOnNewline/emptyBraces"), Pattern.compile("^([^.]+)\\.(kt|kts)$"), null, true); + } + + @TestMetadata("ClassWithConstructor.kt") + public void testClassWithConstructor() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor.kt"); + } + + @TestMetadata("ClassWithConstructor2.kt") + public void testClassWithConstructor2() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor2.kt"); + } + + @TestMetadata("ClassWithoutConstructor.kt") + public void testClassWithoutConstructor() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/ClassWithoutConstructor.kt"); + } + + @TestMetadata("FunctionBlock.kt") + public void testFunctionBlock() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBlock.kt"); + } + + @TestMetadata("FunctionBlock2.kt") + public void testFunctionBlock2() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBlock2.kt"); + } + + @TestMetadata("FunctionBody3.kt") + public void testFunctionBody3() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBody3.kt"); + } + + @TestMetadata("FunctionBody4.kt") + public void testFunctionBody4() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBody4.kt"); + } + + @TestMetadata("FunctionBodyInsideClass.kt") + public void testFunctionBodyInsideClass() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass.kt"); + } + + @TestMetadata("FunctionBodyInsideClass2.kt") + public void testFunctionBodyInsideClass2() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass2.kt"); + } + } + @TestMetadata("idea/testData/indentationOnNewline/emptyParameters") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor.after.kt b/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor.after.kt new file mode 100644 index 00000000000..2538d0a7368 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor.after.kt @@ -0,0 +1,3 @@ +class A() { + +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor.kt b/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor.kt new file mode 100644 index 00000000000..57cc67f44df --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor.kt @@ -0,0 +1 @@ +class A() {} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor2.after.kt b/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor2.after.kt new file mode 100644 index 00000000000..47b91e7bcdc --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor2.after.kt @@ -0,0 +1,5 @@ +// IGNORE_FORMATTER +class A(a: Int, + b: Int) { + +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor2.kt b/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor2.kt new file mode 100644 index 00000000000..c673f307af1 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor2.kt @@ -0,0 +1,3 @@ +// IGNORE_FORMATTER +class A(a: Int, + b: Int) {} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/emptyBraces/ClassWithoutConstructor.after.kt b/idea/testData/indentationOnNewline/emptyBraces/ClassWithoutConstructor.after.kt new file mode 100644 index 00000000000..7e965aa3c86 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/ClassWithoutConstructor.after.kt @@ -0,0 +1,3 @@ +class A { + +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/emptyBraces/ClassWithoutConstructor.kt b/idea/testData/indentationOnNewline/emptyBraces/ClassWithoutConstructor.kt new file mode 100644 index 00000000000..38f7909feb6 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/ClassWithoutConstructor.kt @@ -0,0 +1 @@ +class A {} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/FunctionBlock.after.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBlock.after.kt similarity index 98% rename from idea/testData/indentationOnNewline/FunctionBlock.after.kt rename to idea/testData/indentationOnNewline/emptyBraces/FunctionBlock.after.kt index ba24eb49187..0791f23c532 100644 --- a/idea/testData/indentationOnNewline/FunctionBlock.after.kt +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBlock.after.kt @@ -6,4 +6,4 @@ fun main(args: Array) { times(3) { } -} +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/FunctionBlock.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBlock.kt similarity index 98% rename from idea/testData/indentationOnNewline/FunctionBlock.kt rename to idea/testData/indentationOnNewline/emptyBraces/FunctionBlock.kt index 928b1e28843..d76f1935dae 100644 --- a/idea/testData/indentationOnNewline/FunctionBlock.kt +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBlock.kt @@ -4,4 +4,4 @@ private fun times(times : Int, body : () -> T) {} fun main(args: Array) { times(3) {} -} +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/FunctionBlock2.after.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBlock2.after.kt similarity index 100% rename from idea/testData/indentationOnNewline/FunctionBlock2.after.kt rename to idea/testData/indentationOnNewline/emptyBraces/FunctionBlock2.after.kt diff --git a/idea/testData/indentationOnNewline/FunctionBlock2.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBlock2.kt similarity index 100% rename from idea/testData/indentationOnNewline/FunctionBlock2.kt rename to idea/testData/indentationOnNewline/emptyBraces/FunctionBlock2.kt diff --git a/idea/testData/indentationOnNewline/emptyBraces/FunctionBody3.after.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBody3.after.kt new file mode 100644 index 00000000000..8d103371916 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBody3.after.kt @@ -0,0 +1,7 @@ +// IGNORE_FORMATTER +fun getLibraryModule(symbol: ModuleMapSymbol, + headersSearchRoot: HeadersSearchRoot, + configuration: OCResolveConfiguration, + isRootUpToDate: Boolean): SwiftModule { + +} diff --git a/idea/testData/indentationOnNewline/emptyBraces/FunctionBody3.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBody3.kt new file mode 100644 index 00000000000..e41cbbf9450 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBody3.kt @@ -0,0 +1,5 @@ +// IGNORE_FORMATTER +fun getLibraryModule(symbol: ModuleMapSymbol, + headersSearchRoot: HeadersSearchRoot, + configuration: OCResolveConfiguration, + isRootUpToDate: Boolean): SwiftModule {} diff --git a/idea/testData/indentationOnNewline/emptyBraces/FunctionBody4.after.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBody4.after.kt new file mode 100644 index 00000000000..df47f019e8e --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBody4.after.kt @@ -0,0 +1,9 @@ +// IGNORE_FORMATTER +fun getLibraryModule( + symbol: ModuleMapSymbol, + headersSearchRoot: HeadersSearchRoot, + configuration: OCResolveConfiguration, + isRootUpToDate: Boolean +): SwiftModule { + +} diff --git a/idea/testData/indentationOnNewline/emptyBraces/FunctionBody4.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBody4.kt new file mode 100644 index 00000000000..650809fbe6f --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBody4.kt @@ -0,0 +1,7 @@ +// IGNORE_FORMATTER +fun getLibraryModule( + symbol: ModuleMapSymbol, + headersSearchRoot: HeadersSearchRoot, + configuration: OCResolveConfiguration, + isRootUpToDate: Boolean +): SwiftModule { } diff --git a/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass.after.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass.after.kt new file mode 100644 index 00000000000..aac0d375e55 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass.after.kt @@ -0,0 +1,9 @@ +// IGNORE_FORMATTER +class A { + fun getLibraryModule(symbol: ModuleMapSymbol, + headersSearchRoot: HeadersSearchRoot, + configuration: OCResolveConfiguration, + isRootUpToDate: Boolean): SwiftModule { + + } +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass.kt new file mode 100644 index 00000000000..c32777dbb7e --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass.kt @@ -0,0 +1,7 @@ +// IGNORE_FORMATTER +class A { + fun getLibraryModule(symbol: ModuleMapSymbol, + headersSearchRoot: HeadersSearchRoot, + configuration: OCResolveConfiguration, + isRootUpToDate: Boolean): SwiftModule { } +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass2.after.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass2.after.kt new file mode 100644 index 00000000000..8ce26603a19 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass2.after.kt @@ -0,0 +1,11 @@ +// IGNORE_FORMATTER +class A { + fun getLibraryModule( + symbol: ModuleMapSymbol, + headersSearchRoot: HeadersSearchRoot, + configuration: OCResolveConfiguration, + isRootUpToDate: Boolean + ): SwiftModule { + + } +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass2.kt b/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass2.kt new file mode 100644 index 00000000000..6052252b778 --- /dev/null +++ b/idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass2.kt @@ -0,0 +1,9 @@ +// IGNORE_FORMATTER +class A { + fun getLibraryModule( + symbol: ModuleMapSymbol, + headersSearchRoot: HeadersSearchRoot, + configuration: OCResolveConfiguration, + isRootUpToDate: Boolean + ): SwiftModule { } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/formatter/TypingIndentationTestBaseGenerated.java b/idea/tests/org/jetbrains/kotlin/formatter/TypingIndentationTestBaseGenerated.java index 982143f44b7..432df1955f3 100644 --- a/idea/tests/org/jetbrains/kotlin/formatter/TypingIndentationTestBaseGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/formatter/TypingIndentationTestBaseGenerated.java @@ -95,16 +95,6 @@ public class TypingIndentationTestBaseGenerated extends AbstractTypingIndentatio runTest("idea/testData/indentationOnNewline/ConsecutiveCallsInSafeCallsEnd.after.kt"); } - @TestMetadata("FunctionBlock.after.kt") - public void testFunctionBlock() throws Exception { - runTest("idea/testData/indentationOnNewline/FunctionBlock.after.kt"); - } - - @TestMetadata("FunctionBlock2.after.kt") - public void testFunctionBlock2() throws Exception { - runTest("idea/testData/indentationOnNewline/FunctionBlock2.after.kt"); - } - @TestMetadata("HigherOrderFunction.after.kt") public void testHigherOrderFunction() throws Exception { runTest("idea/testData/indentationOnNewline/HigherOrderFunction.after.kt"); @@ -569,6 +559,64 @@ public class TypingIndentationTestBaseGenerated extends AbstractTypingIndentatio } } + @TestMetadata("idea/testData/indentationOnNewline/emptyBraces") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class EmptyBraces extends AbstractTypingIndentationTestBase { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doNewlineTest, this, testDataFilePath); + } + + public void testAllFilesPresentInEmptyBraces() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/indentationOnNewline/emptyBraces"), Pattern.compile("^([^\\.]+)\\.after\\.kt.*$"), null, true); + } + + @TestMetadata("ClassWithConstructor.after.kt") + public void testClassWithConstructor() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor.after.kt"); + } + + @TestMetadata("ClassWithConstructor2.after.kt") + public void testClassWithConstructor2() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/ClassWithConstructor2.after.kt"); + } + + @TestMetadata("ClassWithoutConstructor.after.kt") + public void testClassWithoutConstructor() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/ClassWithoutConstructor.after.kt"); + } + + @TestMetadata("FunctionBlock.after.kt") + public void testFunctionBlock() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBlock.after.kt"); + } + + @TestMetadata("FunctionBlock2.after.kt") + public void testFunctionBlock2() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBlock2.after.kt"); + } + + @TestMetadata("FunctionBody3.after.kt") + public void testFunctionBody3() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBody3.after.kt"); + } + + @TestMetadata("FunctionBody4.after.kt") + public void testFunctionBody4() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBody4.after.kt"); + } + + @TestMetadata("FunctionBodyInsideClass.after.kt") + public void testFunctionBodyInsideClass() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass.after.kt"); + } + + @TestMetadata("FunctionBodyInsideClass2.after.kt") + public void testFunctionBodyInsideClass2() throws Exception { + runTest("idea/testData/indentationOnNewline/emptyBraces/FunctionBodyInsideClass2.after.kt"); + } + } + @TestMetadata("idea/testData/indentationOnNewline/emptyParameters") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -1346,6 +1394,19 @@ public class TypingIndentationTestBaseGenerated extends AbstractTypingIndentatio } } + @TestMetadata("idea/testData/indentationOnNewline/emptyBraces") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class EmptyBraces extends AbstractTypingIndentationTestBase { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doNewlineTestWithInvert, this, testDataFilePath); + } + + public void testAllFilesPresentInEmptyBraces() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/indentationOnNewline/emptyBraces"), Pattern.compile("^([^\\.]+)\\.after\\.inv\\.kt.*$"), null, true); + } + } + @TestMetadata("idea/testData/indentationOnNewline/emptyParameters") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)