Implement option for wrapping method annotations

This commit is contained in:
Dmitry Jemerov
2017-06-22 19:59:18 +02:00
parent a379a814ba
commit 5f9a33564a
47 changed files with 111 additions and 44 deletions
@@ -359,6 +359,9 @@ abstract class KotlinCommonBlock(
return getWrappingStrategyForItemList(commonSettings.CLASS_ANNOTATION_WRAP,
KtNodeTypes.ANNOTATION_ENTRY)
is KtNamedFunction ->
return getWrappingStrategyForItemList(commonSettings.METHOD_ANNOTATION_WRAP,
KtNodeTypes.ANNOTATION_ENTRY)
}
elementType === KtNodeTypes.VALUE_PARAMETER ->
@@ -366,6 +369,9 @@ abstract class KotlinCommonBlock(
node.psi is KtClassOrObject ->
return wrapAfterAnnotation(commonSettings.CLASS_ANNOTATION_WRAP)
node.psi is KtNamedFunction ->
return wrapAfterAnnotation(commonSettings.METHOD_ANNOTATION_WRAP)
}
return WrappingStrategy.NoWrapping
@@ -34,7 +34,7 @@ class KotlinLanguageCodeStyleSettingsProvider : LanguageCodeStyleSettingsProvide
val test =
12
fun foo1(i1: Int, i2: Int, i3: Int) : Int {
@Deprecated("Foo") fun foo1(i1: Int, i2: Int, i3: Int) : Int {
when (i1) {
is Number -> 0
else -> 1
@@ -236,6 +236,7 @@ class KotlinLanguageCodeStyleSettingsProvider : LanguageCodeStyleSettingsProvide
"CALL_PARAMETERS_WRAP",
"METHOD_PARAMETERS_WRAP",
"EXTENDS_LIST_WRAP",
"METHOD_ANNOTATION_WRAP",
"CLASS_ANNOTATION_WRAP",
"PARAMETER_ANNOTATION_WRAP",
"METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE",
@@ -4,6 +4,8 @@ internal class C {
private fun memberFun(file: File) {}
companion object {
@JvmStatic fun main(args: Array<String>) {}
@JvmStatic
fun main(args: Array<String>) {
}
}
}
@@ -1,7 +1,8 @@
package to
object JavaClass {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
println("Hello, world!")
}
}
@@ -0,0 +1,4 @@
@Deprecated("Foo")
@Deprecated("Bar")
fun foo() {
}
+2
View File
@@ -0,0 +1,2 @@
@Deprecated("Foo") @Deprecated("Bar") fun foo() {
}
@@ -1,4 +1,5 @@
@annot
@foo fun foo() {
@foo
fun foo() {
}
@@ -1,4 +1,5 @@
annot()
@foo fun foo() {
@foo
fun foo() {
}
@@ -1,4 +1,5 @@
annot()
@foo fun foo() {
@foo
fun foo() {
}
@@ -1,4 +1,5 @@
public
@foo fun foo() {
@foo
fun foo() {
}
@@ -1,4 +1,5 @@
public
@foo fun foo() {
@foo
fun foo() {
}
@@ -3,7 +3,8 @@
annotation class X(val s: String)
class A(val n: Int) {
internal @X("1") fun <T : Number> T.getFoo(): Boolean = toInt() - n > 1
internal @X("1")
fun <T : Number> T.getFoo(): Boolean = toInt() - n > 1
}
fun test() {
@@ -1,3 +1,4 @@
// "Suppress 'REDUNDANT_NULLABLE' for fun foo" "true"
@Suppress("REDUNDANT_NULLABLE") fun foo(): String?<caret>? = null
@Suppress("REDUNDANT_NULLABLE")
fun foo(): String?? = null
@@ -1,3 +1,4 @@
// "Suppress 'REDUNDANT_NULLABLE' for fun foo" "true"
@Suppress("REDUNDANT_NULLABLE") fun foo(): String?<caret>? = null
@Suppress("REDUNDANT_NULLABLE")
fun foo(): String?? = null
@@ -42,7 +42,8 @@ class Variety<C> {
private fun privateFun() = 0
fun <T> genFunB(p: T): T = p
fun <T> genFunC(p: T): C where T : C = p
@MemAnn fun annotatedFun() = 0
@MemAnn
fun annotatedFun() = 0
final fun finalFun() = 0
// property
var publicProp = 0
@@ -21,7 +21,8 @@ abstract class A {
var X = "1" + "2"
// INFO: {"checked": "true"}
@JvmStatic fun foo2(n: Int): String {
@JvmStatic
fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -19,7 +19,8 @@ abstract class A {
var X = "1" + "2"
// INFO: {"checked": "true", "toAbstract": "true"}
@JvmStatic fun foo2(n: Int): String {
@JvmStatic
fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -15,7 +15,8 @@ interface A {
var X = "1" + "2"
// INFO: {"checked": "true"}
@JvmStatic fun foo2(n: Int): String {
@JvmStatic
fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -23,7 +23,8 @@ class T {
var X = "1" + "2"
// INFO: {"checked": "true"}
@JvmStatic fun foo2(n: Int): String {
@JvmStatic
fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -494,6 +494,12 @@ public class FormatterTestGenerated extends AbstractFormatterTest {
doTest(fileName);
}
@TestMetadata("MethodAnnotationWrapping.after.kt")
public void testMethodAnnotationWrapping() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/MethodAnnotationWrapping.after.kt");
doTest(fileName);
}
@TestMetadata("MethodCall.after.kt")
public void testMethodCall() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/MethodCall.after.kt");
+3 -1
View File
@@ -27,5 +27,7 @@ internal class C {
@Deprecated("") @Anon5(3) val c = 'a'
}
@Anon5(1) fun bar() {}
@Anon5(1)
fun bar() {
}
}
@@ -16,7 +16,8 @@ class Test {
companion object {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val p = Test().toString() + "123"
}
}
@@ -1,5 +1,6 @@
object A {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val ANDAND = true
&& true
&& true
@@ -1,5 +1,6 @@
object A {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
println(Void.TYPE)
println(Boolean::class.javaPrimitiveType)
println(Int::class.javaPrimitiveType)
+2 -1
View File
@@ -1,7 +1,8 @@
package test
object Test {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
println()// Comment
Test
+2 -1
View File
@@ -1,7 +1,8 @@
import java.util.HashMap
internal object Test {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val resultMap = HashMap<String, String>()
for ((key, type) in resultMap) {
+2 -1
View File
@@ -1,5 +1,6 @@
object TestClass {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
var i = 0
while (i < 10) {
if (i == 4 || i == 8) {
+2 -1
View File
@@ -1,5 +1,6 @@
object TestClass {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
var i = 0
var j = 1
while (i < 10) {
+2 -1
View File
@@ -1,5 +1,6 @@
object TestClass {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
var i = 1
while (i < 1000) {
if (i == 4 || i == 8) {
+2 -1
View File
@@ -1,5 +1,6 @@
object TestClass {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
var i = 1
OuterLoop1@ OuterLoop2@ while (i < 1000) {
var j = 1
+3 -1
View File
@@ -1 +1,3 @@
@JvmStatic fun main(args: Array<String>) {}
@JvmStatic
fun main(args: Array<String>) {
}
+3 -1
View File
@@ -1,3 +1,5 @@
object A {
@JvmStatic fun main(args: Array<String>) {}
@JvmStatic
fun main(args: Array<String>) {
}
}
@@ -1,4 +1,6 @@
// !forceNotNullTypes: false
object A {
@JvmStatic fun main(args: Array<String>) {}
@JvmStatic
fun main(args: Array<String>) {
}
}
+2 -1
View File
@@ -1,5 +1,6 @@
internal class A {
@Synchronized fun foo() {
@Synchronized
fun foo() {
bar()
}
+2 -1
View File
@@ -21,7 +21,8 @@ class Identifier<T> {
}
object User {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val i1 = Identifier("name", false, true)
val i2 = Identifier("name", false)
val i3 = Identifier("name")
+2 -1
View File
@@ -5,7 +5,8 @@
import java.io.*
internal object FileRead {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
try {
val fstream = FileInputStream()
val `in` = DataInputStream(fstream)
+2 -1
View File
@@ -1,7 +1,8 @@
package demo
internal object Program {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
println("Halo!")
}
}
+2 -1
View File
@@ -1,7 +1,8 @@
// ERROR: Type mismatch: inferred type is Any? but Any was expected
// ERROR: Type mismatch: inferred type is Any? but Any was expected
internal class A {
@JvmOverloads fun foo(s: String? = null): Any {
@JvmOverloads
fun foo(s: String? = null): Any {
println("s = " + s!!)
return ""
}
+4 -2
View File
@@ -1,9 +1,11 @@
internal class A {
@JvmOverloads fun foo(i: Int, c: Char = 'a', s: String = "") {
@JvmOverloads
fun foo(i: Int, c: Char = 'a', s: String = "") {
println("foo" + i + c + s)
}
@JvmOverloads fun bar(s: String? = null): Int {
@JvmOverloads
fun bar(s: String? = null): Int {
println("s = " + s!!)
return 0
}
+2 -1
View File
@@ -3,7 +3,8 @@ internal class A {
println("p = [$p]")
}
@Synchronized fun foo() {
@Synchronized
fun foo() {
foo(calcSomething())
}
+2 -1
View File
@@ -76,7 +76,8 @@ object SwitchDemo {
println(monthString)
}
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
for (i in 1..12)
test(i)
}
+2 -1
View File
@@ -1,5 +1,6 @@
object NonDefault {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val value = 3
val valueString = ""
+2 -1
View File
@@ -1,7 +1,8 @@
package switch_demo
object SwitchDemo {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val month = 8
val monthString: String
when (month) {
+2 -1
View File
@@ -1,5 +1,6 @@
object C {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
when (args.size) {
1 -> {
run {
+2 -1
View File
@@ -1,7 +1,8 @@
package switch_demo
object SwitchDemo {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val month = 8
val monthString: String
+2 -1
View File
@@ -1,5 +1,6 @@
object NonDefault {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val value = 3
var valueString = ""
@@ -9,7 +9,8 @@ class TestJava {
}
companion object {
@JvmStatic fun main(args: Array<String>) {
@JvmStatic
fun main(args: Array<String>) {
val x = ArrayList<String>()
x.filter { o -> o == "a" }
val lazy = lazy(LazyThreadSafetyMode.NONE) { "aaa" }