Allow empty blocks for classes and function literals
This commit is contained in:
@@ -77,7 +77,11 @@ class KotlinSpacingBuilder(val codeStyleSettings: CodeStyleSettings) {
|
||||
}
|
||||
}
|
||||
|
||||
fun customRule(block: (ASTBlock, ASTBlock, ASTBlock) -> Spacing?) {
|
||||
fun spacing(spacing: Spacing) {
|
||||
newRule { (parent, left, right) -> spacing }
|
||||
}
|
||||
|
||||
fun customRule(block: (parent: ASTBlock, left: ASTBlock, right: ASTBlock) -> Spacing?) {
|
||||
newRule(block)
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,8 @@ fun createSpacingBuilder(settings: CodeStyleSettings): KotlinSpacingBuilder {
|
||||
between(FUN, PROPERTY).blankLines(1)
|
||||
|
||||
// =============== Spacing ================
|
||||
betweenInside(LBRACE, RBRACE, CLASS_BODY).spaces(0)
|
||||
|
||||
before(COMMA).spaceIf(jetCommonSettings.SPACE_BEFORE_COMMA)
|
||||
after(COMMA).spaceIf(jetCommonSettings.SPACE_AFTER_COMMA)
|
||||
|
||||
@@ -225,6 +227,11 @@ fun createSpacingBuilder(settings: CodeStyleSettings): KotlinSpacingBuilder {
|
||||
right = BLOCK)
|
||||
.lineBreakIfLineBreakInParent(numSpacesOtherwise = 1)
|
||||
|
||||
inPosition(parent = FUNCTION_LITERAL,
|
||||
left = LBRACE,
|
||||
right = RBRACE)
|
||||
.spacing(Spacing.createSpacing(0, 1, 0, settings.KEEP_LINE_BREAKS, settings.KEEP_BLANK_LINES_IN_CODE))
|
||||
|
||||
inPosition(parent = FUNCTION_LITERAL,
|
||||
right = RBRACE)
|
||||
.lineBreakIfLineBreakInParent(numSpacesOtherwise = spacesInSimpleFunction)
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
class Test {}
|
||||
|
||||
class Other {
|
||||
class object {}
|
||||
}
|
||||
|
||||
object TestObject {}
|
||||
|
||||
val testVal = {}
|
||||
|
||||
val testObject = object {}
|
||||
|
||||
fun foo(f: (String) -> Unit = {}) = {}
|
||||
|
||||
fun call() {
|
||||
foo({})
|
||||
foo {}
|
||||
}
|
||||
|
||||
class Test1 {
|
||||
}
|
||||
|
||||
class Other1 {
|
||||
class object {
|
||||
}
|
||||
}
|
||||
|
||||
object TestObject1 {
|
||||
}
|
||||
|
||||
val testVal1 = { }
|
||||
|
||||
val testObject1 = object {
|
||||
}
|
||||
|
||||
fun foo1(f: (String) -> Unit = { }) = { }
|
||||
|
||||
fun call1() {
|
||||
foo1({ })
|
||||
foo1 { }
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
class Test {}
|
||||
|
||||
class Other {
|
||||
class object {}
|
||||
}
|
||||
|
||||
object TestObject {}
|
||||
|
||||
val testVal = {}
|
||||
|
||||
val testObject = object {}
|
||||
|
||||
fun foo(f: (String) -> Unit = {}) = {}
|
||||
|
||||
fun call() {
|
||||
foo({})
|
||||
foo {}
|
||||
}
|
||||
|
||||
class Test1 {
|
||||
}
|
||||
|
||||
class Other1 {
|
||||
class object {
|
||||
}
|
||||
}
|
||||
|
||||
object TestObject1 {
|
||||
}
|
||||
|
||||
val testVal1 = { }
|
||||
|
||||
val testObject1 = object {
|
||||
}
|
||||
|
||||
fun foo1(f: (String) -> Unit = { }) = { }
|
||||
|
||||
fun call1() {
|
||||
foo1({ })
|
||||
foo1 { }
|
||||
}
|
||||
@@ -4,6 +4,10 @@ fun test(some: (Int) -> Int) {
|
||||
fun foo() = test() {it}
|
||||
val function = test {(a: Int) -> a}
|
||||
val function1 = test {a : Int -> a}
|
||||
val function2 = test {}
|
||||
val function2 = test { }
|
||||
val function3 = test {}
|
||||
val function4 = test { }
|
||||
val function5 = test {
|
||||
}
|
||||
|
||||
// SET_TRUE: INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD
|
||||
@@ -5,5 +5,9 @@ fun foo() = test() { it }
|
||||
val function = test {(a: Int) -> a }
|
||||
val function1 = test { a : Int -> a }
|
||||
val function2 = test { }
|
||||
val function3 = test {}
|
||||
val function4 = test { }
|
||||
val function5 = test {
|
||||
}
|
||||
|
||||
// SET_TRUE: INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD
|
||||
@@ -5,5 +5,9 @@ fun foo() = test() { it }
|
||||
val function = test { (a: Int) -> a }
|
||||
val function1 = test {a : Int -> a}
|
||||
val function2 = test { }
|
||||
val function3 = test {}
|
||||
val function4 = test { }
|
||||
val function5 = test {
|
||||
}
|
||||
|
||||
// SET_TRUE: INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD
|
||||
@@ -13,11 +13,9 @@ object Some3
|
||||
|
||||
A
|
||||
|
||||
val a = object: A {
|
||||
}
|
||||
val a = object: A {}
|
||||
|
||||
val b = object: A {
|
||||
}
|
||||
val b = object: A {}
|
||||
|
||||
class B {
|
||||
class object: A {
|
||||
|
||||
@@ -13,11 +13,9 @@ object Some3
|
||||
|
||||
A
|
||||
|
||||
val a = object :A {
|
||||
}
|
||||
val a = object :A {}
|
||||
|
||||
val b = object :A {
|
||||
}
|
||||
val b = object :A {}
|
||||
|
||||
class B {
|
||||
class object :A {
|
||||
|
||||
@@ -504,6 +504,11 @@ public class JetFormatterTestGenerated extends AbstractJetFormatterTest {
|
||||
doTestInverted("idea/testData/formatter/ElseOnNewLine.after.inv.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("EmptyBlocks.after.inv.kt")
|
||||
public void testEmptyBlocks() throws Exception {
|
||||
doTestInverted("idea/testData/formatter/EmptyBlocks.after.inv.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ForLineBreak.after.inv.kt")
|
||||
public void testForLineBreak() throws Exception {
|
||||
doTestInverted("idea/testData/formatter/ForLineBreak.after.inv.kt");
|
||||
|
||||
Reference in New Issue
Block a user