From 338dfda980376a01da10c550f24423e5e3c4c86d Mon Sep 17 00:00:00 2001 From: vmishenev Date: Thu, 20 Jan 2022 00:34:24 +0300 Subject: [PATCH] Merge constructors --- .../documentables/DefaultPageCreator.kt | 21 +++++++++++-------- .../psi/DefaultPsiToDocumentableTranslator.kt | 9 -------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt index 2328c00eb3..93aaffa416 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt @@ -371,27 +371,30 @@ open class DefaultPageCreator( +contentForComments(documentables) val csWithConstructor = cs.filterIsInstance() if (csWithConstructor.isNotEmpty()) { - block( + val constructorsToDocumented = csWithConstructor.flatMap { it.constructors } + .filter { it.extra[PrimaryConstructorExtra] == null || it.documentation.isNotEmpty() } + multiBlock( "Constructors", 2, ContentKind.Constructors, - csWithConstructor.flatMap { it.constructors } - .filter { it.extra[PrimaryConstructorExtra] == null || it.documentation.isNotEmpty() }, + constructorsToDocumented.groupBy { it.parameters.map { it.dri } }.map { (_,v) -> v.first().name to v }, @Suppress("UNCHECKED_CAST") (csWithConstructor as List).sourceSets, needsAnchors = true, extra = PropertyContainer.empty() + SimpleAttr.header("Constructors") - ) { - link(it.name, it.dri, kind = ContentKind.Main) + ) { key, ds -> + link(key, ds.first().dri, kind = ContentKind.Main) sourceSetDependentHint( - it.dri, - it.sourceSets.toSet(), + ds.dri, + ds.sourceSets, kind = ContentKind.SourceSetDependentHint, styles = emptySet(), extra = PropertyContainer.empty() ) { - +buildSignature(it) - contentForBrief(it) + ds.forEach { + +buildSignature(it) + contentForBrief(it) + } } } } diff --git a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt index e7028ef028..5f0585736d 100644 --- a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt +++ b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt @@ -29,25 +29,18 @@ import org.jetbrains.dokka.model.AnnotationTarget import org.jetbrains.dokka.model.doc.DocumentationNode import org.jetbrains.dokka.model.doc.Param import org.jetbrains.dokka.model.properties.PropertyContainer -import org.jetbrains.dokka.model.properties.WithExtraProperties import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.plugin import org.jetbrains.dokka.plugability.querySingle import org.jetbrains.dokka.transformers.sources.AsyncSourceToDocumentableTranslator -import org.jetbrains.dokka.transformers.sources.SourceToDocumentableTranslator import org.jetbrains.dokka.utilities.DokkaLogger import org.jetbrains.dokka.utilities.parallelForEach import org.jetbrains.dokka.utilities.parallelMap import org.jetbrains.dokka.utilities.parallelMapNotNull import org.jetbrains.kotlin.asJava.elements.KtLightAbstractAnnotation -import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.jvm.config.JavaSourceRoot -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.java.JavaVisibilities -import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName -import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.propertyNameByGetMethodName import org.jetbrains.kotlin.load.java.propertyNamesBySetMethodName @@ -55,8 +48,6 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.psiUtil.getChildOfType import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments -import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance -import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty import org.jetbrains.kotlin.utils.addToStdlib.safeAs import java.io.File