Allow empty blocks for classes and function literals

This commit is contained in:
Nikolay Krasko
2014-05-13 19:25:43 +04:00
parent 3d588acd2d
commit b958e0d6b8
121 changed files with 240 additions and 244 deletions
@@ -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 { }
}
+41
View File
@@ -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");