aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main
diff options
context:
space:
mode:
authorMarcin Aman <marcin.aman@gmail.com>2020-12-15 17:32:50 +0100
committerGitHub <noreply@github.com>2020-12-15 17:32:50 +0100
commit4f231b3666568e1f2a5a3241e87c2cbc26af6127 (patch)
tree4bd9ec881dcea84b15fa87d04048881bf6411947 /plugins/base/src/main
parenta11745b96c66512e0d05318cfabc8ac4471fd1cf (diff)
downloaddokka-4f231b3666568e1f2a5a3241e87c2cbc26af6127.tar.gz
dokka-4f231b3666568e1f2a5a3241e87c2cbc26af6127.tar.bz2
dokka-4f231b3666568e1f2a5a3241e87c2cbc26af6127.zip
Fix wrong docs on DProperty (#1671)
Diffstat (limited to 'plugins/base/src/main')
-rw-r--r--plugins/base/src/main/kotlin/parsers/MarkdownParser.kt7
-rw-r--r--plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt4
2 files changed, 7 insertions, 4 deletions
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<KDocTag> =
kDocImpl.children.filterIsInstance<KDocTag>().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<ClassDescriptor>.visitEnumEntries(parent: DRIWithPlatformInfo): List<DEnumEntry> =
coroutineScope { parallelMap { visitEnumEntryDescriptor(it, parent) } }
- private suspend fun DeclarationDescriptor.resolveDescriptorData(): SourceSetDependent<DocumentationNode> =
+ private fun DeclarationDescriptor.resolveDescriptorData(): SourceSetDependent<DocumentationNode> =
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 ->