From 4f231b3666568e1f2a5a3241e87c2cbc26af6127 Mon Sep 17 00:00:00 2001 From: Marcin Aman Date: Tue, 15 Dec 2020 17:32:50 +0100 Subject: Fix wrong docs on DProperty (#1671) --- plugins/base/src/main/kotlin/parsers/MarkdownParser.kt | 7 +++++-- .../descriptors/DefaultDescriptorToDocumentableTranslator.kt | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'plugins/base/src/main') diff --git a/plugins/base/src/main/kotlin/parsers/MarkdownParser.kt b/plugins/base/src/main/kotlin/parsers/MarkdownParser.kt index 0b9a5c23..a27734cc 100644 --- a/plugins/base/src/main/kotlin/parsers/MarkdownParser.kt +++ b/plugins/base/src/main/kotlin/parsers/MarkdownParser.kt @@ -452,8 +452,9 @@ open class MarkdownParser( if (link is DocumentationLink) link.dri else null } + val allTags = listOf(kDocTag) + if(kDocTag.canHaveParent()) getAllKDocTags(findParent(kDocTag)) else emptyList() DocumentationNode( - (listOf(kDocTag) + getAllKDocTags(findParent(kDocTag))).map { + allTags.map { when (it.knownTag) { null -> if (it.name == null) Description(parseStringToDocNode(it.getContent())) else CustomTagWrapper( parseStringToDocNode(it.getContent()), @@ -511,7 +512,9 @@ open class MarkdownParser( fun DRI.fqName(): String? = "$packageName.$classNames".takeIf { packageName != null && classNames != null } private fun findParent(kDoc: PsiElement): PsiElement = - if (kDoc is KDocSection) findParent(kDoc.parent) else kDoc + if (kDoc.canHaveParent()) findParent(kDoc.parent) else kDoc + + private fun PsiElement.canHaveParent(): Boolean = this is KDocSection && knownTag != KDocKnownTag.PROPERTY private fun getAllKDocTags(kDocImpl: PsiElement): List = kDocImpl.children.filterIsInstance().filterNot { it is KDocSection } + kDocImpl.children.flatMap { diff --git a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt index 642f991f..5185dc3e 100644 --- a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt +++ b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt @@ -719,7 +719,7 @@ private class DokkaDescriptorVisitor( private suspend fun List.visitEnumEntries(parent: DRIWithPlatformInfo): List = coroutineScope { parallelMap { visitEnumEntryDescriptor(it, parent) } } - private suspend fun DeclarationDescriptor.resolveDescriptorData(): SourceSetDependent = + private fun DeclarationDescriptor.resolveDescriptorData(): SourceSetDependent = getDocumentation()?.toSourceSetDependent() ?: emptyMap() @@ -831,7 +831,7 @@ private class DokkaDescriptorVisitor( org.jetbrains.kotlin.types.Variance.OUT_VARIANCE -> Covariance(this) } - private suspend fun DeclarationDescriptor.getDocumentation() = findKDoc().let { + private fun DeclarationDescriptor.getDocumentation() = findKDoc().let { MarkdownParser.parseFromKDocTag( kDocTag = it, externalDri = { link: String -> -- cgit