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 bbbdf0f6ee7..413f7589ca8 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/formatter/kotlinSpacingRules.kt @@ -123,12 +123,18 @@ fun createSpacingBuilder(settings: CodeStyleSettings, builderUtil: KotlinSpacing null } else { - Spacing.createDependentLFSpacing( - 0, 0, - TextRange(parentPsi.textRange.startOffset, left.node.psi.textRange.startOffset), + val minLineFeeds = if (right.node.elementType == FUN || right.node.elementType == PROPERTY) + 1 + else + 0 + + builderUtil.createLineFeedDependentSpacing( + 1, 1, minLineFeeds, settings.KEEP_LINE_BREAKS, settings.KEEP_BLANK_LINES_IN_DECLARATIONS, + TextRange(parentPsi.textRange.startOffset, left.node.psi.textRange.startOffset), DependentSpacingRule(DependentSpacingRule.Trigger.HAS_LINE_FEEDS) - .registerData(DependentSpacingRule.Anchor.MIN_LINE_FEEDS, commonCodeStyleSettings.BLANK_LINES_AFTER_CLASS_HEADER + 1)) + .registerData(DependentSpacingRule.Anchor.MIN_LINE_FEEDS, commonCodeStyleSettings.BLANK_LINES_AFTER_CLASS_HEADER + 1) + ) } } diff --git a/idea/testData/formatter/BlankLinesAfterClassHeader.after.kt b/idea/testData/formatter/BlankLinesAfterClassHeader.after.kt index d581c319182..d0575c00b7d 100644 --- a/idea/testData/formatter/BlankLinesAfterClassHeader.after.kt +++ b/idea/testData/formatter/BlankLinesAfterClassHeader.after.kt @@ -25,4 +25,10 @@ class FooC( fun bar() } +enum class Foo { Bar, Baz } + +class Foo { + fun bar() {} +} + // SET_INT: BLANK_LINES_AFTER_CLASS_HEADER = 1 diff --git a/idea/testData/formatter/BlankLinesAfterClassHeader.kt b/idea/testData/formatter/BlankLinesAfterClassHeader.kt index 4d0d3d9b5f9..c1335358be0 100644 --- a/idea/testData/formatter/BlankLinesAfterClassHeader.kt +++ b/idea/testData/formatter/BlankLinesAfterClassHeader.kt @@ -23,4 +23,8 @@ class FooC( fun bar() } +enum class Foo{Bar,Baz} + +class Foo{fun bar() {}} + // SET_INT: BLANK_LINES_AFTER_CLASS_HEADER = 1