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
@@ -1,4 +1,10 @@
<root> <root>
<item name='com.intellij.formatting.Spacing com.intellij.formatting.Spacing createKeepingFirstColumnSpacing(int, int, boolean, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='com.intellij.formatting.Spacing com.intellij.formatting.Spacing createSpacing(int, int, int, boolean, int)'>
<annotation name='org.jetbrains.annotations.NotNull'/>
</item>
<item name='com.intellij.formatting.SpacingBuilder com.intellij.formatting.SpacingBuilder append(com.intellij.formatting.SpacingBuilder)'> <item name='com.intellij.formatting.SpacingBuilder com.intellij.formatting.SpacingBuilder append(com.intellij.formatting.SpacingBuilder)'>
<annotation name='org.jetbrains.annotations.NotNull'/> <annotation name='org.jetbrains.annotations.NotNull'/>
</item> </item>
@@ -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) newRule(block)
} }
@@ -57,6 +57,8 @@ fun createSpacingBuilder(settings: CodeStyleSettings): KotlinSpacingBuilder {
between(FUN, PROPERTY).blankLines(1) between(FUN, PROPERTY).blankLines(1)
// =============== Spacing ================ // =============== Spacing ================
betweenInside(LBRACE, RBRACE, CLASS_BODY).spaces(0)
before(COMMA).spaceIf(jetCommonSettings.SPACE_BEFORE_COMMA) before(COMMA).spaceIf(jetCommonSettings.SPACE_BEFORE_COMMA)
after(COMMA).spaceIf(jetCommonSettings.SPACE_AFTER_COMMA) after(COMMA).spaceIf(jetCommonSettings.SPACE_AFTER_COMMA)
@@ -225,6 +227,11 @@ fun createSpacingBuilder(settings: CodeStyleSettings): KotlinSpacingBuilder {
right = BLOCK) right = BLOCK)
.lineBreakIfLineBreakInParent(numSpacesOtherwise = 1) .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, inPosition(parent = FUNCTION_LITERAL,
right = RBRACE) right = RBRACE)
.lineBreakIfLineBreakInParent(numSpacesOtherwise = spacesInSimpleFunction) .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} fun foo() = test() {it}
val function = test {(a: Int) -> a} val function = test {(a: Int) -> a}
val function1 = 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 // SET_TRUE: INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD
@@ -5,5 +5,9 @@ fun foo() = test() { it }
val function = test {(a: Int) -> a } val function = test {(a: Int) -> a }
val function1 = 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 // SET_TRUE: INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD
@@ -5,5 +5,9 @@ fun foo() = test() { it }
val function = test { (a: Int) -> a } val function = test { (a: Int) -> a }
val function1 = 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 // SET_TRUE: INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD
@@ -13,11 +13,9 @@ object Some3
A A
val a = object: A { val a = object: A {}
}
val b = object: A { val b = object: A {}
}
class B { class B {
class object: A { class object: A {
@@ -13,11 +13,9 @@ object Some3
A A
val a = object :A { val a = object :A {}
}
val b = object :A { val b = object :A {}
}
class B { class B {
class object :A { class object :A {
@@ -504,6 +504,11 @@ public class JetFormatterTestGenerated extends AbstractJetFormatterTest {
doTestInverted("idea/testData/formatter/ElseOnNewLine.after.inv.kt"); 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") @TestMetadata("ForLineBreak.after.inv.kt")
public void testForLineBreak() throws Exception { public void testForLineBreak() throws Exception {
doTestInverted("idea/testData/formatter/ForLineBreak.after.inv.kt"); doTestInverted("idea/testData/formatter/ForLineBreak.after.inv.kt");
+1 -2
View File
@@ -1,2 +1 @@
class Test() { class Test() {}
}
+1 -2
View File
@@ -1,2 +1 @@
open class Test() { open class Test() {}
}
@@ -1,2 +1 @@
class A() { class A() {}
}
+1 -2
View File
@@ -1,2 +1 @@
class A() { class A() {}
}
@@ -1,2 +1 @@
class A() : Base(), I { class A() : Base(), I {}
}
@@ -1,2 +1 @@
class A() : Base(), I { class A() : Base(), I {}
}
@@ -1,2 +1 @@
class A() : Base(), I0, I1, I2 { class A() : Base(), I0, I1, I2 {}
}
@@ -1,2 +1 @@
class A() : Base(), I0, I1, I2 { class A() : Base(), I0, I1, I2 {}
}
@@ -1,2 +1 @@
class Test() { class Test() {}
}
+1 -2
View File
@@ -1,2 +1 @@
class Test() { class Test() {}
}
@@ -1,2 +1 @@
class Entry<K, V>() { class Entry<K, V>() {}
}
+1 -2
View File
@@ -1,2 +1 @@
class Entry<K, V>() { class Entry<K, V>() {}
}
@@ -1,4 +1,3 @@
class A() { class A() {
class B() { class B() {}
}
} }
@@ -1,4 +1,3 @@
class A() { class A() {
class B() { class B() {}
}
} }
@@ -1,6 +1,5 @@
class S() { class S() {
class object { class object {
class Inner() { class Inner() {}
}
} }
} }
@@ -1,6 +1,5 @@
class S() { class S() {
class object { class object {
open class Inner() { open class Inner() {}
}
} }
} }
@@ -1,2 +1 @@
class Test() { class Test() {}
}
@@ -1,2 +1 @@
open class Test() { open class Test() {}
}
@@ -1,2 +1 @@
private class Test() { private class Test() {}
}
+1 -2
View File
@@ -1,2 +1 @@
private open class Test() { private open class Test() {}
}
@@ -1,2 +1 @@
protected class Test() { protected class Test() {}
}
@@ -1,2 +1 @@
protected open class Test() { protected open class Test() {}
}
@@ -1,2 +1 @@
public class Test() { public class Test() {}
}
+1 -2
View File
@@ -1,2 +1 @@
public open class Test() { public open class Test() {}
}
@@ -1,2 +1 @@
class A() : Base() { class A() : Base() {}
}
@@ -1,2 +1 @@
class A() : Base() { class A() : Base() {}
}
+1 -2
View File
@@ -1,2 +1 @@
enum class A { enum class A {}
}
+1 -2
View File
@@ -1,2 +1 @@
enum class A { enum class A {}
}
@@ -1,2 +1 @@
enum class A : I { enum class A : I {}
}
@@ -1,2 +1 @@
enum class A : I { enum class A : I {}
}
@@ -1,2 +1 @@
enum class A : I0, I1, I2 { enum class A : I0, I1, I2 {}
}
@@ -1,2 +1 @@
enum class A : I0, I1, I2 { enum class A : I0, I1, I2 {}
}
@@ -1,2 +1 @@
enum class Test { enum class Test {}
}
+1 -2
View File
@@ -1,2 +1 @@
enum class Test { enum class Test {}
}
@@ -1,2 +1 @@
private enum class Test { private enum class Test {}
}
+1 -2
View File
@@ -1,2 +1 @@
private enum class Test { private enum class Test {}
}
@@ -1,2 +1 @@
protected enum class Test { protected enum class Test {}
}
+1 -2
View File
@@ -1,2 +1 @@
protected enum class Test { protected enum class Test {}
}
@@ -1,2 +1 @@
public enum class Test { public enum class Test {}
}
+1 -2
View File
@@ -1,2 +1 @@
public enum class Test { public enum class Test {}
}
@@ -1,7 +1,7 @@
{ {
val i = 0 val i = 0
while (i < 0) { while (i < 0) {
{ } {}
{ {
j++ j++
i++ i++
@@ -1,7 +1,7 @@
{ {
var i: Int = 0 var i: Int = 0
while (i < 0) { while (i < 0) {
{ } {}
{ {
j++ j++
i++ i++
@@ -1,8 +1,6 @@
class `$$$$$`() { class `$$$$$`() {}
}
class `$`() { class `$`() {}
}
class `$$`(`$$$$`: `$$$$$`) : `$`() { class `$$`(`$$$$`: `$$$$$`) : `$`() {
val `$$$`: `$$$$$` val `$$$`: `$$$$$`
@@ -1,8 +1,6 @@
open class `$$$$$`() { open class `$$$$$`() {}
}
open class `$`() { open class `$`() {}
}
open class `$$`(`$$$$`: `$$$$$`?) : `$`() { open class `$$`(`$$$$`: `$$$$$`?) : `$`() {
val `$$$`: `$$$$$`? val `$$$`: `$$$$$`?
@@ -2,5 +2,4 @@ package test
import `as`.`type`.`val`.`var`.`fun`.`is`.`in`.`object`.`when`.`trait`.`This` import `as`.`type`.`val`.`var`.`fun`.`is`.`in`.`object`.`when`.`trait`.`This`
class Test() { class Test() {}
}
@@ -2,5 +2,4 @@ package test
import `as`.`type`.`val`.`var`.`fun`.`is`.`in`.`object`.`when`.`trait`.`This` import `as`.`type`.`val`.`var`.`fun`.`is`.`in`.`object`.`when`.`trait`.`This`
open class Test() { open class Test() {}
}
@@ -2,5 +2,4 @@ package org.jetbrains.jet.j2k
import org.jetbrains.annotations.* import org.jetbrains.annotations.*
public class Converter() { public class Converter() {}
}
@@ -2,5 +2,4 @@ package org.jetbrains.jet.j2k
import org.jetbrains.annotations.* import org.jetbrains.annotations.*
public open class Converter() { public open class Converter() {}
}
@@ -1,4 +1,3 @@
package org.jetbrains.jet.j2k package org.jetbrains.jet.j2k
public class Converter() { public class Converter() {}
}
@@ -1,4 +1,3 @@
package org.jetbrains.jet.j2k package org.jetbrains.jet.j2k
public open class Converter() { public open class Converter() {}
}
@@ -1,5 +1,4 @@
class Base<T>(name: T) { class Base<T>(name: T) {}
}
class One<T, K>(name: T, second: K) : Base<T>(name) { class One<T, K>(name: T, second: K) : Base<T>(name) {
private var mySecond: K = 0 private var mySecond: K = 0
@@ -1,5 +1,4 @@
open class Base<T>(name: T?) { open class Base<T>(name: T?) {}
}
open class One<T, K>(name: T?, second: K?) : Base<T?>(name) { open class One<T, K>(name: T?, second: K?) : Base<T?>(name) {
private var mySecond: K? = null private var mySecond: K? = null
@@ -1,5 +1,3 @@
class Base(name: String) { class Base(name: String) {}
}
class One(name: String, second: String) : Base(name) { class One(name: String, second: String) : Base(name) {}
}
@@ -1,5 +1,3 @@
open class Base(name: String?) { open class Base(name: String?) {}
}
open class One(name: String?, second: String?) : Base(name) { open class One(name: String?, second: String?) : Base(name) {}
}
@@ -1,5 +1,3 @@
class Base() { class Base() {}
}
class One() : Base() { class One() : Base() {}
}
@@ -1,5 +1,3 @@
open class Base() { open class Base() {}
}
open class One() : Base() { open class One() : Base() {}
}
@@ -1,5 +1,4 @@
class Base(name: String) { class Base(name: String) {}
}
class One(name: String, second: String) : Base(name) { class One(name: String, second: String) : Base(name) {
private var mySecond: String = 0 private var mySecond: String = 0
@@ -1,5 +1,4 @@
open class Base(name: String?) { open class Base(name: String?) {}
}
open class One(name: String?, second: String?) : Base(name) { open class One(name: String?, second: String?) : Base(name) {
private var mySecond: String? = null private var mySecond: String? = null
+1 -2
View File
@@ -1,7 +1,6 @@
import java.util.HashMap import java.util.HashMap
class G<T : String>(t: T) { class G<T : String>(t: T) {}
}
public class Java() { public class Java() {
fun test() { fun test() {
+1 -2
View File
@@ -1,7 +1,6 @@
import java.util.HashMap import java.util.HashMap
open class G<T : String?>(t: T?) { open class G<T : String?>(t: T?) {}
}
public open class Java() { public open class Java() {
open fun test() { open fun test() {
@@ -10,8 +10,7 @@ class One() {
} }
} }
class StringContainer(s: String) { class StringContainer(s: String) {}
}
class Test() { class Test() {
fun putString(s: String) { fun putString(s: String) {
@@ -10,8 +10,7 @@ open class One() {
} }
} }
open class StringContainer(s: String?) { open class StringContainer(s: String?) {}
}
open class Test() { open class Test() {
open fun putString(s: String?) { open fun putString(s: String?) {
+1 -2
View File
@@ -10,8 +10,7 @@ class One() {
} }
} }
class IntContainer(i: Int) { class IntContainer(i: Int) {}
}
class Test() { class Test() {
fun putInt(i: Int) { fun putInt(i: Int) {
+1 -2
View File
@@ -10,8 +10,7 @@ open class One() {
} }
} }
open class IntContainer(i: Int) { open class IntContainer(i: Int) {}
}
open class Test() { open class Test() {
open fun putInt(i: Int) { open fun putInt(i: Int) {
@@ -1,4 +1,3 @@
package test package test
class C() { class C() {}
}
@@ -1,4 +1,3 @@
package test package test
class C() { class C() {}
}
@@ -1,4 +1,2 @@
class A() { class A() {}
} class B() {}
class B() {
}
@@ -1,4 +1,2 @@
class A() { class A() {}
} class B() {}
class B() {
}
@@ -1,4 +1,3 @@
package test package test
class C() { class C() {}
}
@@ -1,4 +1,3 @@
package test package test
open class C() { open class C() {}
}
@@ -1,7 +1,6 @@
package org.test package org.test
class Library() { class Library() {}
}
class User() { class User() {
fun main() { fun main() {
@@ -1,7 +1,6 @@
package org.test package org.test
open class Library() { open class Library() {}
}
open class User() { open class User() {
open fun main() { open fun main() {
@@ -1,8 +1,7 @@
package org.test package org.test
class OuterClass() { class OuterClass() {
class InnerClass() { class InnerClass() {}
}
} }
class User() { class User() {
@@ -1,8 +1,7 @@
package org.test package org.test
open class OuterClass() { open class OuterClass() {
open class InnerClass() { open class InnerClass() {}
}
} }
open class User() { open class User() {
@@ -2,8 +2,7 @@ package org.test
import java.util.LinkedList import java.util.LinkedList
class Member() { class Member() {}
}
class User() { class User() {
fun main() { fun main() {
@@ -2,8 +2,7 @@ package org.test
import java.util.LinkedList import java.util.LinkedList
open class Member() { open class Member() {}
}
open class User() { open class User() {
open fun main() { open fun main() {
@@ -2,8 +2,7 @@ package demo
class Foo() { class Foo() {
class object { class object {
class Bar() { class Bar() {}
}
} }
} }
@@ -2,8 +2,7 @@ package demo
open class Foo() { open class Foo() {
class object { class object {
open class Bar() { open class Bar() {}
}
} }
} }
@@ -2,5 +2,4 @@ package org.jetbrains.jet.j2k.`in`
import org.jetbrains.annotations.Nullable import org.jetbrains.annotations.Nullable
public class Converter() { public class Converter() {}
}
@@ -2,5 +2,4 @@ package org.jetbrains.jet.j2k.`in`
import org.jetbrains.annotations.Nullable import org.jetbrains.annotations.Nullable
public open class Converter() { public open class Converter() {}
}
@@ -1,2 +1 @@
abstract trait I { abstract trait I {}
}
@@ -1,2 +1 @@
abstract trait I { abstract trait I {}
}
@@ -1,2 +1 @@
trait A { trait A {}
}
@@ -1,2 +1 @@
trait A { trait A {}
}
@@ -1,2 +1 @@
trait A : I0, I1, I2 { trait A : I0, I1, I2 {}
}
@@ -1,2 +1 @@
trait A : I0, I1, I2 { trait A : I0, I1, I2 {}
}
@@ -1,2 +1 @@
trait A : I { trait A : I {}
}
@@ -1,2 +1 @@
trait A : I { trait A : I {}
}
@@ -1,2 +1 @@
trait Test { trait Test {}
}

Some files were not shown because too many files have changed in this diff Show More