KT-22815: Render annotations on separate lines
This commit is contained in:
@@ -192,6 +192,7 @@ interface DescriptorRendererOptions {
|
||||
var excludedAnnotationClasses: Set<FqName>
|
||||
var excludedTypeAnnotationClasses: Set<FqName>
|
||||
var annotationFilter: ((AnnotationDescriptor) -> Boolean)?
|
||||
var eachAnnotationOnNewLine: Boolean
|
||||
|
||||
var annotationArgumentsRenderingPolicy: AnnotationArgumentsRenderingPolicy
|
||||
val includeAnnotationArguments: Boolean get() = annotationArgumentsRenderingPolicy.includeAnnotationArguments
|
||||
|
||||
@@ -403,7 +403,12 @@ internal class DescriptorRendererImpl(
|
||||
val annotationFilter = annotationFilter
|
||||
for ((annotation, target) in annotated.annotations.getAllAnnotations()) {
|
||||
if (annotation.fqName !in excluded && (annotationFilter == null || annotationFilter(annotation))) {
|
||||
append(renderAnnotation(annotation, target)).append(" ")
|
||||
append(renderAnnotation(annotation, target))
|
||||
if (eachAnnotationOnNewLine) {
|
||||
appendln()
|
||||
} else {
|
||||
append(" ")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,6 +96,8 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
|
||||
override var renderAccessors by property(false)
|
||||
override var renderDefaultAnnotationArguments by property(false)
|
||||
|
||||
override var eachAnnotationOnNewLine: Boolean by property(false)
|
||||
|
||||
override var excludedAnnotationClasses by property(emptySet<FqName>())
|
||||
|
||||
override var excludedTypeAnnotationClasses by property(ExcludedTypeAnnotations.internalAnnotationsForResolve)
|
||||
|
||||
@@ -48,6 +48,7 @@ import org.jetbrains.kotlin.kdoc.psi.api.KDoc
|
||||
import org.jetbrains.kotlin.kdoc.psi.impl.KDocSection
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||
import org.jetbrains.kotlin.renderer.AnnotationArgumentsRenderingPolicy
|
||||
import org.jetbrains.kotlin.renderer.ClassifierNamePolicy
|
||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
@@ -165,8 +166,10 @@ class KotlinQuickDocumentationProvider : AbstractDocumentationProvider() {
|
||||
private val DESCRIPTOR_RENDERER = DescriptorRenderer.HTML.withOptions {
|
||||
classifierNamePolicy = HtmlClassifierNamePolicy(ClassifierNamePolicy.SHORT)
|
||||
valueParametersHandler = WrapValueParameterHandler(valueParametersHandler)
|
||||
annotationArgumentsRenderingPolicy = AnnotationArgumentsRenderingPolicy.UNLESS_EMPTY
|
||||
renderCompanionObjectName = true
|
||||
withDefinedIn = false
|
||||
eachAnnotationOnNewLine = true
|
||||
}
|
||||
|
||||
private fun renderEnumSpecialFunction(element: KtClass, functionDescriptor: FunctionDescriptor, quickNavigation: Boolean): String {
|
||||
|
||||
Reference in New Issue
Block a user