From c24960f8d97f21f41d1310cdbe25e4031e37afcf Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Wed, 1 Jun 2016 20:20:56 +0200 Subject: [PATCH] Formatter: handle spaces between class name and type parameters (#875) Fixes #KT-12446 --- .../jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt | 1 + idea/testData/formatter/ClassTypeParam.after.kt | 2 ++ idea/testData/formatter/ClassTypeParam.kt | 2 ++ .../jetbrains/kotlin/formatter/FormatterTestGenerated.java | 6 ++++++ 4 files changed, 11 insertions(+) create mode 100644 idea/testData/formatter/ClassTypeParam.after.kt create mode 100644 idea/testData/formatter/ClassTypeParam.kt diff --git a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt index 7b1ddcd70d9..c0811a82608 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt @@ -182,6 +182,7 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing } afterInside(CONSTRUCTOR_KEYWORD, PRIMARY_CONSTRUCTOR).spaces(0) + betweenInside(IDENTIFIER, TYPE_PARAMETER_LIST, CLASS).spaces(0) aroundInside(DOT, DOT_QUALIFIED_EXPRESSION).spaces(0) aroundInside(SAFE_ACCESS, SAFE_ACCESS_EXPRESSION).spaces(0) diff --git a/idea/testData/formatter/ClassTypeParam.after.kt b/idea/testData/formatter/ClassTypeParam.after.kt new file mode 100644 index 00000000000..4eae97d2939 --- /dev/null +++ b/idea/testData/formatter/ClassTypeParam.after.kt @@ -0,0 +1,2 @@ +class TypeParameter {} +class TypeParameter() \ No newline at end of file diff --git a/idea/testData/formatter/ClassTypeParam.kt b/idea/testData/formatter/ClassTypeParam.kt new file mode 100644 index 00000000000..b922087bcee --- /dev/null +++ b/idea/testData/formatter/ClassTypeParam.kt @@ -0,0 +1,2 @@ +class TypeParameter < T > {} +class TypeParameter < T > () \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java b/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java index 0d9432ecd2f..45904f56a00 100644 --- a/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java @@ -121,6 +121,12 @@ public class FormatterTestGenerated extends AbstractFormatterTest { doTest(fileName); } + @TestMetadata("ClassTypeParam.after.kt") + public void testClassTypeParam() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/ClassTypeParam.after.kt"); + doTest(fileName); + } + @TestMetadata("ColonSpaces.after.kt") public void testColonSpaces() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/ColonSpaces.after.kt");