diff --git a/idea/src/org/jetbrains/jet/plugin/formatter/ASTAlignmentStrategy.java b/idea/src/org/jetbrains/jet/plugin/formatter/ASTAlignmentStrategy.java index 96072c99e9b..4cc94bc448d 100644 --- a/idea/src/org/jetbrains/jet/plugin/formatter/ASTAlignmentStrategy.java +++ b/idea/src/org/jetbrains/jet/plugin/formatter/ASTAlignmentStrategy.java @@ -36,7 +36,7 @@ public abstract class ASTAlignmentStrategy { } @Nullable - public abstract Alignment getAlignment(ASTNode node); + public abstract Alignment getAlignment(@NotNull ASTNode node); public static class AlignmentStrategyWrapper extends ASTAlignmentStrategy { private final AlignmentStrategy internalStrategy; diff --git a/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java b/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java index cad36209958..61915ef54eb 100644 --- a/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java +++ b/idea/src/org/jetbrains/jet/plugin/formatter/JetBlock.java @@ -264,7 +264,7 @@ public class JetBlock extends AbstractBlock { return new ASTAlignmentStrategy() { @Override - public Alignment getAlignment(ASTNode node) { + public Alignment getAlignment(@NotNull ASTNode node) { IElementType childNodeType = node.getElementType(); ASTNode prev = getPrevWithoutWhitespace(node); @@ -327,7 +327,7 @@ public class JetBlock extends AbstractBlock { ASTIndentStrategy.forNode("Indent for parts") .in(PROPERTY, FUN) - .notForType(BLOCK) + .notForType(BLOCK, FUN_KEYWORD, VAL_KEYWORD, VAR_KEYWORD) .set(Indent.getContinuationWithoutFirstIndent()), ASTIndentStrategy.forNode("KDoc comment indent") diff --git a/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotation.after.kt b/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotation.after.kt new file mode 100644 index 00000000000..0a60e51833a --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotation.after.kt @@ -0,0 +1,4 @@ +[annot] +[foo] fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotation.kt b/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotation.kt new file mode 100644 index 00000000000..0a60e51833a --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotation.kt @@ -0,0 +1,4 @@ +[annot] +[foo] fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotationEntry.after.kt b/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotationEntry.after.kt new file mode 100644 index 00000000000..add13f9ffd9 --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotationEntry.after.kt @@ -0,0 +1,4 @@ +[annot] +foo() fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotationEntry.kt b/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotationEntry.kt new file mode 100644 index 00000000000..add13f9ffd9 --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationBeforeAnnotationEntry.kt @@ -0,0 +1,4 @@ +[annot] +foo() fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationBeforeModifiers.after.kt b/idea/testData/formatter/modifierList/funAnnotationBeforeModifiers.after.kt new file mode 100644 index 00000000000..200ed1f4b43 --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationBeforeModifiers.after.kt @@ -0,0 +1,4 @@ +[annot] +final fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationBeforeModifiers.kt b/idea/testData/formatter/modifierList/funAnnotationBeforeModifiers.kt new file mode 100644 index 00000000000..200ed1f4b43 --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationBeforeModifiers.kt @@ -0,0 +1,4 @@ +[annot] +final fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotation.after.kt b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotation.after.kt new file mode 100644 index 00000000000..f4e508a93ca --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotation.after.kt @@ -0,0 +1,4 @@ +annot() +[foo] fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotation.kt b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotation.kt new file mode 100644 index 00000000000..f4e508a93ca --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotation.kt @@ -0,0 +1,4 @@ +annot() +[foo] fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotationEntry.after.kt b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotationEntry.after.kt new file mode 100644 index 00000000000..ac328033bf7 --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotationEntry.after.kt @@ -0,0 +1,4 @@ +annot() +foo() fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotationEntry.kt b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotationEntry.kt new file mode 100644 index 00000000000..ac328033bf7 --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotationEntry.kt @@ -0,0 +1,4 @@ +annot() +foo() fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationEntryBeforeModifiers.after.kt b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeModifiers.after.kt new file mode 100644 index 00000000000..8680b0e746c --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeModifiers.after.kt @@ -0,0 +1,4 @@ +annot() +final fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funAnnotationEntryBeforeModifiers.kt b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeModifiers.kt new file mode 100644 index 00000000000..8680b0e746c --- /dev/null +++ b/idea/testData/formatter/modifierList/funAnnotationEntryBeforeModifiers.kt @@ -0,0 +1,4 @@ +annot() +final fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funModifierBeforeAnnotation.after.kt b/idea/testData/formatter/modifierList/funModifierBeforeAnnotation.after.kt new file mode 100644 index 00000000000..456df3e9007 --- /dev/null +++ b/idea/testData/formatter/modifierList/funModifierBeforeAnnotation.after.kt @@ -0,0 +1,4 @@ +public +[foo] fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funModifierBeforeAnnotation.kt b/idea/testData/formatter/modifierList/funModifierBeforeAnnotation.kt new file mode 100644 index 00000000000..456df3e9007 --- /dev/null +++ b/idea/testData/formatter/modifierList/funModifierBeforeAnnotation.kt @@ -0,0 +1,4 @@ +public +[foo] fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funModifierBeforeAnnotationEntry.after.kt b/idea/testData/formatter/modifierList/funModifierBeforeAnnotationEntry.after.kt new file mode 100644 index 00000000000..4af16b19e8b --- /dev/null +++ b/idea/testData/formatter/modifierList/funModifierBeforeAnnotationEntry.after.kt @@ -0,0 +1,4 @@ +public +foo() fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funModifierBeforeAnnotationEntry.kt b/idea/testData/formatter/modifierList/funModifierBeforeAnnotationEntry.kt new file mode 100644 index 00000000000..4af16b19e8b --- /dev/null +++ b/idea/testData/formatter/modifierList/funModifierBeforeAnnotationEntry.kt @@ -0,0 +1,4 @@ +public +foo() fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funModifierBeforeModifiers.after.kt b/idea/testData/formatter/modifierList/funModifierBeforeModifiers.after.kt new file mode 100644 index 00000000000..fd54f2e3fff --- /dev/null +++ b/idea/testData/formatter/modifierList/funModifierBeforeModifiers.after.kt @@ -0,0 +1,4 @@ +public +final fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funModifierBeforeModifiers.kt b/idea/testData/formatter/modifierList/funModifierBeforeModifiers.kt new file mode 100644 index 00000000000..fd54f2e3fff --- /dev/null +++ b/idea/testData/formatter/modifierList/funModifierBeforeModifiers.kt @@ -0,0 +1,4 @@ +public +final fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funTheOnlyModifier.after.kt b/idea/testData/formatter/modifierList/funTheOnlyModifier.after.kt new file mode 100644 index 00000000000..87189c6114f --- /dev/null +++ b/idea/testData/formatter/modifierList/funTheOnlyModifier.after.kt @@ -0,0 +1,4 @@ +private +fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/funTheOnlyModifier.kt b/idea/testData/formatter/modifierList/funTheOnlyModifier.kt new file mode 100644 index 00000000000..87189c6114f --- /dev/null +++ b/idea/testData/formatter/modifierList/funTheOnlyModifier.kt @@ -0,0 +1,4 @@ +private +fun foo() { +} + diff --git a/idea/testData/formatter/modifierList/memberFunTheOnlyModifier.after.kt b/idea/testData/formatter/modifierList/memberFunTheOnlyModifier.after.kt new file mode 100644 index 00000000000..c009ac3be6e --- /dev/null +++ b/idea/testData/formatter/modifierList/memberFunTheOnlyModifier.after.kt @@ -0,0 +1,5 @@ +class C { + private + fun foo() { + } +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/memberFunTheOnlyModifier.kt b/idea/testData/formatter/modifierList/memberFunTheOnlyModifier.kt new file mode 100644 index 00000000000..c3833b6a860 --- /dev/null +++ b/idea/testData/formatter/modifierList/memberFunTheOnlyModifier.kt @@ -0,0 +1,5 @@ +class C { +private +fun foo() { +} +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/memberValTheOnlyModifier.after.kt b/idea/testData/formatter/modifierList/memberValTheOnlyModifier.after.kt new file mode 100644 index 00000000000..dc93b6f1a13 --- /dev/null +++ b/idea/testData/formatter/modifierList/memberValTheOnlyModifier.after.kt @@ -0,0 +1,4 @@ +class C { + private + val foo = 1 +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/memberValTheOnlyModifier.kt b/idea/testData/formatter/modifierList/memberValTheOnlyModifier.kt new file mode 100644 index 00000000000..09d3f01fa7b --- /dev/null +++ b/idea/testData/formatter/modifierList/memberValTheOnlyModifier.kt @@ -0,0 +1,4 @@ +class C { +private +val foo = 1 +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/memberVarTheOnlyModifier.after.kt b/idea/testData/formatter/modifierList/memberVarTheOnlyModifier.after.kt new file mode 100644 index 00000000000..faf32c13a89 --- /dev/null +++ b/idea/testData/formatter/modifierList/memberVarTheOnlyModifier.after.kt @@ -0,0 +1,4 @@ +class C { + private + var foo = 1 +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/memberVarTheOnlyModifier.kt b/idea/testData/formatter/modifierList/memberVarTheOnlyModifier.kt new file mode 100644 index 00000000000..aa852bc2b2e --- /dev/null +++ b/idea/testData/formatter/modifierList/memberVarTheOnlyModifier.kt @@ -0,0 +1,4 @@ +class C { +private +var foo = 1 +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/secondMemberFunTheOnlyModifier.after.kt b/idea/testData/formatter/modifierList/secondMemberFunTheOnlyModifier.after.kt new file mode 100644 index 00000000000..b5174364fcb --- /dev/null +++ b/idea/testData/formatter/modifierList/secondMemberFunTheOnlyModifier.after.kt @@ -0,0 +1,8 @@ +class C { + fun foo0() { + } + + private + fun foo() { + } +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/secondMemberFunTheOnlyModifier.kt b/idea/testData/formatter/modifierList/secondMemberFunTheOnlyModifier.kt new file mode 100644 index 00000000000..1e494e877c1 --- /dev/null +++ b/idea/testData/formatter/modifierList/secondMemberFunTheOnlyModifier.kt @@ -0,0 +1,7 @@ +class C { +fun foo0() {} + +private +fun foo() { +} +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/secondMemberValTheOnlyModifier.after.kt b/idea/testData/formatter/modifierList/secondMemberValTheOnlyModifier.after.kt new file mode 100644 index 00000000000..d7f2fcd6285 --- /dev/null +++ b/idea/testData/formatter/modifierList/secondMemberValTheOnlyModifier.after.kt @@ -0,0 +1,7 @@ +class C { + fun foo0() { + } + + private + val foo = 1 +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/secondMemberValTheOnlyModifier.kt b/idea/testData/formatter/modifierList/secondMemberValTheOnlyModifier.kt new file mode 100644 index 00000000000..7d7f08fb169 --- /dev/null +++ b/idea/testData/formatter/modifierList/secondMemberValTheOnlyModifier.kt @@ -0,0 +1,6 @@ +class C { +fun foo0() {} + +private +val foo = 1 +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/secondMemberVarTheOnlyModifier.after.kt b/idea/testData/formatter/modifierList/secondMemberVarTheOnlyModifier.after.kt new file mode 100644 index 00000000000..3aa5b3374fe --- /dev/null +++ b/idea/testData/formatter/modifierList/secondMemberVarTheOnlyModifier.after.kt @@ -0,0 +1,7 @@ +class C { + fun foo0() { + } + + private + var foo = 1 +} \ No newline at end of file diff --git a/idea/testData/formatter/modifierList/secondMemberVarTheOnlyModifier.kt b/idea/testData/formatter/modifierList/secondMemberVarTheOnlyModifier.kt new file mode 100644 index 00000000000..5360d9b05dd --- /dev/null +++ b/idea/testData/formatter/modifierList/secondMemberVarTheOnlyModifier.kt @@ -0,0 +1,6 @@ +class C { +fun foo0() {} + +private +var foo = 1 +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/formatter/JetFormatterTestGenerated.java b/idea/tests/org/jetbrains/jet/formatter/JetFormatterTestGenerated.java index 891b89c2f53..8302ba5131f 100644 --- a/idea/tests/org/jetbrains/jet/formatter/JetFormatterTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/formatter/JetFormatterTestGenerated.java @@ -31,6 +31,7 @@ import org.jetbrains.jet.formatter.AbstractJetFormatterTest; /** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") @TestMetadata("idea/testData/formatter") +@InnerTestClasses({JetFormatterTestGenerated.ModifierList.class}) public class JetFormatterTestGenerated extends AbstractJetFormatterTest { public void testAllFilesPresentInFormatter() throws Exception { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/formatter"), Pattern.compile("^([^\\.]+)\\.kt$"), true); @@ -201,4 +202,98 @@ public class JetFormatterTestGenerated extends AbstractJetFormatterTest { doTest("idea/testData/formatter/WhenLinesBeforeLbrace.kt"); } + @TestMetadata("idea/testData/formatter/modifierList") + public static class ModifierList extends AbstractJetFormatterTest { + public void testAllFilesPresentInModifierList() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/formatter/modifierList"), Pattern.compile("^([^\\.]+)\\.kt$"), true); + } + + @TestMetadata("funAnnotationBeforeAnnotation.kt") + public void testFunAnnotationBeforeAnnotation() throws Exception { + doTest("idea/testData/formatter/modifierList/funAnnotationBeforeAnnotation.kt"); + } + + @TestMetadata("funAnnotationBeforeAnnotationEntry.kt") + public void testFunAnnotationBeforeAnnotationEntry() throws Exception { + doTest("idea/testData/formatter/modifierList/funAnnotationBeforeAnnotationEntry.kt"); + } + + @TestMetadata("funAnnotationBeforeModifiers.kt") + public void testFunAnnotationBeforeModifiers() throws Exception { + doTest("idea/testData/formatter/modifierList/funAnnotationBeforeModifiers.kt"); + } + + @TestMetadata("funAnnotationEntryBeforeAnnotation.kt") + public void testFunAnnotationEntryBeforeAnnotation() throws Exception { + doTest("idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotation.kt"); + } + + @TestMetadata("funAnnotationEntryBeforeAnnotationEntry.kt") + public void testFunAnnotationEntryBeforeAnnotationEntry() throws Exception { + doTest("idea/testData/formatter/modifierList/funAnnotationEntryBeforeAnnotationEntry.kt"); + } + + @TestMetadata("funAnnotationEntryBeforeModifiers.kt") + public void testFunAnnotationEntryBeforeModifiers() throws Exception { + doTest("idea/testData/formatter/modifierList/funAnnotationEntryBeforeModifiers.kt"); + } + + @TestMetadata("funModifierBeforeAnnotation.kt") + public void testFunModifierBeforeAnnotation() throws Exception { + doTest("idea/testData/formatter/modifierList/funModifierBeforeAnnotation.kt"); + } + + @TestMetadata("funModifierBeforeAnnotationEntry.kt") + public void testFunModifierBeforeAnnotationEntry() throws Exception { + doTest("idea/testData/formatter/modifierList/funModifierBeforeAnnotationEntry.kt"); + } + + @TestMetadata("funModifierBeforeModifiers.kt") + public void testFunModifierBeforeModifiers() throws Exception { + doTest("idea/testData/formatter/modifierList/funModifierBeforeModifiers.kt"); + } + + @TestMetadata("funTheOnlyModifier.kt") + public void testFunTheOnlyModifier() throws Exception { + doTest("idea/testData/formatter/modifierList/funTheOnlyModifier.kt"); + } + + @TestMetadata("memberFunTheOnlyModifier.kt") + public void testMemberFunTheOnlyModifier() throws Exception { + doTest("idea/testData/formatter/modifierList/memberFunTheOnlyModifier.kt"); + } + + @TestMetadata("memberValTheOnlyModifier.kt") + public void testMemberValTheOnlyModifier() throws Exception { + doTest("idea/testData/formatter/modifierList/memberValTheOnlyModifier.kt"); + } + + @TestMetadata("memberVarTheOnlyModifier.kt") + public void testMemberVarTheOnlyModifier() throws Exception { + doTest("idea/testData/formatter/modifierList/memberVarTheOnlyModifier.kt"); + } + + @TestMetadata("secondMemberFunTheOnlyModifier.kt") + public void testSecondMemberFunTheOnlyModifier() throws Exception { + doTest("idea/testData/formatter/modifierList/secondMemberFunTheOnlyModifier.kt"); + } + + @TestMetadata("secondMemberValTheOnlyModifier.kt") + public void testSecondMemberValTheOnlyModifier() throws Exception { + doTest("idea/testData/formatter/modifierList/secondMemberValTheOnlyModifier.kt"); + } + + @TestMetadata("secondMemberVarTheOnlyModifier.kt") + public void testSecondMemberVarTheOnlyModifier() throws Exception { + doTest("idea/testData/formatter/modifierList/secondMemberVarTheOnlyModifier.kt"); + } + + } + + public static Test suite() { + TestSuite suite = new TestSuite("JetFormatterTestGenerated"); + suite.addTestSuite(JetFormatterTestGenerated.class); + suite.addTestSuite(ModifierList.class); + return suite; + } }