Implement option for wrapping class annotations
This commit is contained in:
@@ -30,10 +30,7 @@ import org.jetbrains.kotlin.kdoc.lexer.KDocTokens
|
|||||||
import org.jetbrains.kotlin.kdoc.parser.KDocElementTypes
|
import org.jetbrains.kotlin.kdoc.parser.KDocElementTypes
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens.*
|
import org.jetbrains.kotlin.lexer.KtTokens.*
|
||||||
import org.jetbrains.kotlin.psi.KtBlockExpression
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
|
||||||
import org.jetbrains.kotlin.psi.KtExpression
|
|
||||||
import org.jetbrains.kotlin.psi.KtSuperTypeListEntry
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
private val QUALIFIED_OPERATION = TokenSet.create(DOT, SAFE_ACCESS)
|
private val QUALIFIED_OPERATION = TokenSet.create(DOT, SAFE_ACCESS)
|
||||||
@@ -353,15 +350,22 @@ abstract class KotlinCommonBlock(
|
|||||||
}
|
}
|
||||||
|
|
||||||
elementType === KtNodeTypes.MODIFIER_LIST ->
|
elementType === KtNodeTypes.MODIFIER_LIST ->
|
||||||
when (node.treeParent.elementType) {
|
when (node.treeParent.psi) {
|
||||||
KtNodeTypes.VALUE_PARAMETER ->
|
is KtParameter ->
|
||||||
return getWrappingStrategyForItemList(commonSettings.PARAMETER_ANNOTATION_WRAP,
|
return getWrappingStrategyForItemList(commonSettings.PARAMETER_ANNOTATION_WRAP,
|
||||||
KtNodeTypes.ANNOTATION_ENTRY,
|
KtNodeTypes.ANNOTATION_ENTRY,
|
||||||
!node.treeParent.isFirstParameter())
|
!node.treeParent.isFirstParameter())
|
||||||
|
is KtClassOrObject ->
|
||||||
|
return getWrappingStrategyForItemList(commonSettings.CLASS_ANNOTATION_WRAP,
|
||||||
|
KtNodeTypes.ANNOTATION_ENTRY)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
elementType === KtNodeTypes.VALUE_PARAMETER ->
|
elementType === KtNodeTypes.VALUE_PARAMETER ->
|
||||||
return wrapAfterAnnotation(commonSettings.PARAMETER_ANNOTATION_WRAP)
|
return wrapAfterAnnotation(commonSettings.PARAMETER_ANNOTATION_WRAP)
|
||||||
|
|
||||||
|
node.psi is KtClassOrObject ->
|
||||||
|
return wrapAfterAnnotation(commonSettings.CLASS_ANNOTATION_WRAP)
|
||||||
}
|
}
|
||||||
|
|
||||||
return WrappingStrategy.NoWrapping
|
return WrappingStrategy.NoWrapping
|
||||||
|
|||||||
+2
-1
@@ -30,7 +30,7 @@ class KotlinLanguageCodeStyleSettingsProvider : LanguageCodeStyleSettingsProvide
|
|||||||
override fun getCodeSample(settingsType: LanguageCodeStyleSettingsProvider.SettingsType): String = when (settingsType) {
|
override fun getCodeSample(settingsType: LanguageCodeStyleSettingsProvider.SettingsType): String = when (settingsType) {
|
||||||
LanguageCodeStyleSettingsProvider.SettingsType.WRAPPING_AND_BRACES_SETTINGS ->
|
LanguageCodeStyleSettingsProvider.SettingsType.WRAPPING_AND_BRACES_SETTINGS ->
|
||||||
"""
|
"""
|
||||||
public class ThisIsASampleClass : Comparable<*>, Appendable {
|
@Deprecated("Foo") public class ThisIsASampleClass : Comparable<*>, Appendable {
|
||||||
val test =
|
val test =
|
||||||
12
|
12
|
||||||
|
|
||||||
@@ -236,6 +236,7 @@ class KotlinLanguageCodeStyleSettingsProvider : LanguageCodeStyleSettingsProvide
|
|||||||
"CALL_PARAMETERS_WRAP",
|
"CALL_PARAMETERS_WRAP",
|
||||||
"METHOD_PARAMETERS_WRAP",
|
"METHOD_PARAMETERS_WRAP",
|
||||||
"EXTENDS_LIST_WRAP",
|
"EXTENDS_LIST_WRAP",
|
||||||
|
"CLASS_ANNOTATION_WRAP",
|
||||||
"PARAMETER_ANNOTATION_WRAP",
|
"PARAMETER_ANNOTATION_WRAP",
|
||||||
"METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE",
|
"METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE",
|
||||||
"METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE",
|
"METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE",
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
@Deprecated("Foo")
|
||||||
|
@Deprecated("Bar")
|
||||||
|
class Foo {
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
@Deprecated("Foo") @Deprecated("Bar") class Foo {
|
||||||
|
}
|
||||||
+2
-1
@@ -7,4 +7,5 @@ annotation class Foo
|
|||||||
|
|
||||||
annotation class Bar
|
annotation class Bar
|
||||||
|
|
||||||
@Bar class C {}
|
@Bar
|
||||||
|
class C {}
|
||||||
+2
-1
@@ -7,4 +7,5 @@ annotation class Foo
|
|||||||
|
|
||||||
annotation class Bar(val p: Int)
|
annotation class Bar(val p: Int)
|
||||||
|
|
||||||
@Bar(1) class C {}
|
@Bar(1)
|
||||||
|
class C {}
|
||||||
+2
-1
@@ -7,4 +7,5 @@ annotation class Foo(val p: Int)
|
|||||||
|
|
||||||
annotation class Bar(val p: Int, val s: String)
|
annotation class Bar(val p: Int, val s: String)
|
||||||
|
|
||||||
@Bar(1, "") class C {}
|
@Bar(1, "")
|
||||||
|
class C {}
|
||||||
+2
-1
@@ -7,4 +7,5 @@ annotation class Foo(val p: Int)
|
|||||||
|
|
||||||
annotation class Bar(val p: Int, val s: String)
|
annotation class Bar(val p: Int, val s: String)
|
||||||
|
|
||||||
@Bar(p = 1, s = "") class C
|
@Bar(p = 1, s = "")
|
||||||
|
class C
|
||||||
+2
-1
@@ -5,4 +5,5 @@ annotation class OldAnnotation(val p: Int = 0)
|
|||||||
|
|
||||||
annotation class NewAnnotation(val p: Int = 0, val newP: String = "")
|
annotation class NewAnnotation(val p: Int = 0, val newP: String = "")
|
||||||
|
|
||||||
@NewAnnotation class C
|
@NewAnnotation
|
||||||
|
class C
|
||||||
@@ -152,6 +152,12 @@ public class FormatterTestGenerated extends AbstractFormatterTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ClassAnnotationWrapping.after.kt")
|
||||||
|
public void testClassAnnotationWrapping() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/ClassAnnotationWrapping.after.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("ClassInBody.after.kt")
|
@TestMetadata("ClassInBody.after.kt")
|
||||||
public void testClassInBody() throws Exception {
|
public void testClassInBody() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/ClassInBody.after.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/formatter/ClassInBody.after.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user