From 4a0b13d11e978df59e08cf2814bf80711f898563 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 27 Jun 2012 21:01:55 +0400 Subject: [PATCH] KT-2254 Incorrect indentation after = in val: #KT-2254 fixed --- .../jetbrains/jet/plugin/formatter/JetBlock.java | 14 +++++++++++--- .../functionWithTypeParameters.kt.after | 2 +- idea/testData/formatter/FunctionWithInference.kt | 3 +++ .../formatter/FunctionWithInference_after.kt | 3 +++ .../IndentationOnNewline/FunctionWithInference.kt | 1 + .../FunctionWithInference_after.kt | 2 ++ .../IndentationOnNewline/PropertyWithInference.kt | 1 + .../PropertyWithInference_after.kt | 2 ++ .../formatter/PropertyWIthInference_after.kt | 3 +++ idea/testData/formatter/PropertyWithInference.kt | 3 +++ .../jetbrains/jet/formatter/JetFormatterTest.java | 8 ++++++++ .../jet/formatter/JetTypingIndentationTest.java | 8 ++++++++ 12 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 idea/testData/formatter/FunctionWithInference.kt create mode 100644 idea/testData/formatter/FunctionWithInference_after.kt create mode 100644 idea/testData/formatter/IndentationOnNewline/FunctionWithInference.kt create mode 100644 idea/testData/formatter/IndentationOnNewline/FunctionWithInference_after.kt create mode 100644 idea/testData/formatter/IndentationOnNewline/PropertyWithInference.kt create mode 100644 idea/testData/formatter/IndentationOnNewline/PropertyWithInference_after.kt create mode 100644 idea/testData/formatter/PropertyWIthInference_after.kt create mode 100644 idea/testData/formatter/PropertyWithInference.kt diff --git a/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java b/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java index 0dcfca95f28..a24cef48284 100644 --- a/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java +++ b/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java @@ -37,8 +37,8 @@ import java.util.*; * @see Block for good JavaDoc documentation */ public class JetBlock extends AbstractBlock { - private Indent myIndent; - private CodeStyleSettings mySettings; + private final Indent myIndent; + private final CodeStyleSettings mySettings; private final SpacingBuilder mySpacingBuilder; private List mySubBlocks; @@ -158,6 +158,10 @@ public class JetBlock extends AbstractBlock { return new ChildAttributes(Indent.getContinuationIndent(), null); } + if (isIncomplete()) { + return super.getChildAttributes(newChildIndex); + } + return new ChildAttributes(Indent.getNoneIndent(), null); } @@ -266,7 +270,11 @@ public class JetBlock extends AbstractBlock { ASTIndentStrategy.forNode("For single statement in THEN and ELSE") .in(JetNodeTypes.THEN, JetNodeTypes.ELSE) .notForType(JetNodeTypes.BLOCK) - .set(Indent.getNormalIndent()) + .set(Indent.getNormalIndent()), + + ASTIndentStrategy.forNode("Indent for parts") + .in(JetNodeTypes.PROPERTY, JetNodeTypes.FUN) + .set(Indent.getContinuationWithoutFirstIndent()), }; @Nullable diff --git a/idea/testData/codeInsight/overrideImplement/functionWithTypeParameters.kt.after b/idea/testData/codeInsight/overrideImplement/functionWithTypeParameters.kt.after index b3056ffb517..3a0b2bdb45e 100644 --- a/idea/testData/codeInsight/overrideImplement/functionWithTypeParameters.kt.after +++ b/idea/testData/codeInsight/overrideImplement/functionWithTypeParameters.kt.after @@ -7,7 +7,7 @@ trait Trait { class TraitImpl : Trait { override fun > foo() - where B: Cloneable, B: Comparable { + where B: Cloneable, B: Comparable { throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/idea/testData/formatter/FunctionWithInference.kt b/idea/testData/formatter/FunctionWithInference.kt new file mode 100644 index 00000000000..3de1c11594a --- /dev/null +++ b/idea/testData/formatter/FunctionWithInference.kt @@ -0,0 +1,3 @@ +fun +test() = +12 diff --git a/idea/testData/formatter/FunctionWithInference_after.kt b/idea/testData/formatter/FunctionWithInference_after.kt new file mode 100644 index 00000000000..bcd8f70bd01 --- /dev/null +++ b/idea/testData/formatter/FunctionWithInference_after.kt @@ -0,0 +1,3 @@ +fun + test() = + 12 diff --git a/idea/testData/formatter/IndentationOnNewline/FunctionWithInference.kt b/idea/testData/formatter/IndentationOnNewline/FunctionWithInference.kt new file mode 100644 index 00000000000..14b2fe431e4 --- /dev/null +++ b/idea/testData/formatter/IndentationOnNewline/FunctionWithInference.kt @@ -0,0 +1 @@ +fun test() = \ No newline at end of file diff --git a/idea/testData/formatter/IndentationOnNewline/FunctionWithInference_after.kt b/idea/testData/formatter/IndentationOnNewline/FunctionWithInference_after.kt new file mode 100644 index 00000000000..cdd35d0107e --- /dev/null +++ b/idea/testData/formatter/IndentationOnNewline/FunctionWithInference_after.kt @@ -0,0 +1,2 @@ +fun test() = + \ No newline at end of file diff --git a/idea/testData/formatter/IndentationOnNewline/PropertyWithInference.kt b/idea/testData/formatter/IndentationOnNewline/PropertyWithInference.kt new file mode 100644 index 00000000000..771f562e866 --- /dev/null +++ b/idea/testData/formatter/IndentationOnNewline/PropertyWithInference.kt @@ -0,0 +1 @@ +val a = \ No newline at end of file diff --git a/idea/testData/formatter/IndentationOnNewline/PropertyWithInference_after.kt b/idea/testData/formatter/IndentationOnNewline/PropertyWithInference_after.kt new file mode 100644 index 00000000000..c5d2284b0f1 --- /dev/null +++ b/idea/testData/formatter/IndentationOnNewline/PropertyWithInference_after.kt @@ -0,0 +1,2 @@ +val a = + \ No newline at end of file diff --git a/idea/testData/formatter/PropertyWIthInference_after.kt b/idea/testData/formatter/PropertyWIthInference_after.kt new file mode 100644 index 00000000000..9fcbe03018f --- /dev/null +++ b/idea/testData/formatter/PropertyWIthInference_after.kt @@ -0,0 +1,3 @@ +val + a = + 12 diff --git a/idea/testData/formatter/PropertyWithInference.kt b/idea/testData/formatter/PropertyWithInference.kt new file mode 100644 index 00000000000..eb877ed15c2 --- /dev/null +++ b/idea/testData/formatter/PropertyWithInference.kt @@ -0,0 +1,3 @@ +val +a = +12 diff --git a/idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java b/idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java index 5674b8d1337..10874a50d1d 100644 --- a/idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java +++ b/idea/tests/org/jetbrains/jet/formatter/JetFormatterTest.java @@ -53,6 +53,10 @@ public class JetFormatterTest extends AbstractJetFormatterTest { doTest(); } + public void testFunctionWithInference() throws Exception { + doTest(); + } + public void testGetterAndSetter() throws Exception { doTest(); } @@ -65,6 +69,10 @@ public class JetFormatterTest extends AbstractJetFormatterTest { doTestWithInvert(); } + public void testPropertyWithInference() throws Exception { + doTest(); + } + public void testRightBracketOnNewLine() throws Exception { doTestWithInvert(); } diff --git a/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTest.java b/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTest.java index 5aec6c4bdf6..77e785dfce3 100644 --- a/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTest.java +++ b/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTest.java @@ -53,6 +53,10 @@ public class JetTypingIndentationTest extends LightCodeInsightTestCase { doFileNewlineTest(); } + public void testFunctionWithInference() { + doFileNewlineTest(); + } + public void testIf() { doFileNewlineTest(); } @@ -61,6 +65,10 @@ public class JetTypingIndentationTest extends LightCodeInsightTestCase { doFileNewlineTest(); } + public void testPropertyWithInference() { + doFileNewlineTest(); + } + public void testSettingAlignMultilineParametersInCalls() throws Exception { doFileSettingNewLineTest(); }