diff options
| author | Filip Zybała <fzybala@virtuslab.com> | 2020-03-19 16:04:55 +0100 |
|---|---|---|
| committer | Paweł Marks <Kordyjan@users.noreply.github.com> | 2020-03-26 12:36:03 +0100 |
| commit | 8ef04b5d6bb46a5fbd9cea9b8d08048bc9f03879 (patch) | |
| tree | 4ff4eb6bdb9404e8e64808f8de33a197831e0fda /plugins/base/src/main/kotlin/translators/documentables | |
| parent | 3aab04fa61e38acec0029553fb0704d65cd11465 (diff) | |
| download | dokka-8ef04b5d6bb46a5fbd9cea9b8d08048bc9f03879.tar.gz dokka-8ef04b5d6bb46a5fbd9cea9b8d08048bc9f03879.tar.bz2 dokka-8ef04b5d6bb46a5fbd9cea9b8d08048bc9f03879.zip | |
Fixed expected-actual merging. Refactored contentForComments.
Diffstat (limited to 'plugins/base/src/main/kotlin/translators/documentables')
| -rw-r--r-- | plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt | 58 |
1 files changed, 34 insertions, 24 deletions
diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt index 02b9ea2a..3f3ebe3a 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt @@ -11,6 +11,7 @@ import org.jetbrains.dokka.model.doc.TagWrapper import org.jetbrains.dokka.model.properties.WithExtraProperties import org.jetbrains.dokka.pages.* import org.jetbrains.dokka.utilities.DokkaLogger +import org.jetbrains.kotlin.backend.common.phaser.defaultDumper open class DefaultPageCreator( commentsToContentConverter: CommentsToContentConverter, @@ -53,8 +54,8 @@ open class DefaultPageCreator( } protected open fun contentForPackage(p: DPackage) = contentBuilder.contentFor(p) { + header(1) { text("Package ${p.name}") } platformDependentHint(p.dri, p.platformData.toSet()){ - header(1) { text("Package ${p.name}") } +contentForScope(p, p.dri, p.platformData) } } @@ -65,8 +66,8 @@ open class DefaultPageCreator( platformData: List<PlatformData> ) = contentBuilder.contentFor(s as Documentable) { block("Types", 2, ContentKind.Classlikes, s.classlikes, platformData.toSet()) { + link(it.name.orEmpty(), it.dri) platformDependentHint(it.dri, it.platformData.toSet()){ - link(it.name.orEmpty(), it.dri) group { +buildSignature(it) group(kind = ContentKind.BriefComment) { @@ -76,8 +77,8 @@ open class DefaultPageCreator( } } block("Functions", 2, ContentKind.Functions, s.functions, platformData.toSet()) { + link(it.name, it.dri) platformDependentHint(it.dri, it.platformData.toSet()){ - link(it.name, it.dri) group { +buildSignature(it) group(kind = ContentKind.BriefComment) { @@ -87,10 +88,9 @@ open class DefaultPageCreator( } } block("Properties", 2, ContentKind.Properties, s.properties, platformData.toSet()) { + link(it.name, it.dri) platformDependentHint(it.dri, it.platformData.toSet()){ - link(it.name, it.dri) +buildSignature(it) - breakLine() group(kind = ContentKind.BriefComment) { text(it.briefDocumentation()) } @@ -110,7 +110,7 @@ open class DefaultPageCreator( protected open fun contentForClasslike(c: DClasslike) = contentBuilder.contentFor(c) { header(1) { text(c.name.orEmpty()) } +buildSignature(c) - + breakLine() +contentForComments(c) { it !is Property } if (c is WithConstructors) { @@ -139,24 +139,33 @@ open class DefaultPageCreator( d: Documentable, filtering: (TagWrapper) -> Boolean = { true } ) = contentBuilder.contentFor(d) { - // TODO: this probably needs fixing - d.documentation.forEach { _, documentationNode -> - documentationNode.children.filter(filtering).forEach { - platformDependentHint(d.dri, d.platformData.toSet()){ - header(3) { - text(it.toHeaderString()) - d.documentation.keys.joinToString(prefix = "[", postfix = "]", separator = ", ") + d.documentation.map{(k,v) -> (k to v.children.filter(filtering).map{p -> (k to p)})}.flatMap { it.second } + .groupBy { it.second.toHeaderString() }.mapValues {(k,v) -> v.groupBy { it.first }} + .forEach{ groupedByHeader -> + header(3) { text(groupedByHeader.key) } + d.documentation.expect?.also{ + it.children.filter(filtering).filter{it.toHeaderString() == groupedByHeader.key} + .forEach { + comment(it.root) + breakLine() + } + } + platformDependentHint(d.dri,groupedByHeader.value.keys){ + groupedByHeader.value.forEach{ + group(d.dri, setOf(it.key)){ + it.value.forEach { + comment(it.second.root) + } + breakLine() + } } - comment(it.root) - text("\n") } } - } }.children protected open fun contentForFunction(f: DFunction) = contentBuilder.contentFor(f) { + header(1) { text(f.name) } platformDependentHint(f.dri, f.platformData.toSet()){ - header(1) { text(f.name) } +buildSignature(f) +contentForComments(f) } @@ -164,11 +173,12 @@ open class DefaultPageCreator( protected open fun TagWrapper.toHeaderString() = this.javaClass.toGenericString().split('.').last() - protected open fun Documentable.briefDocumentation() = - documentation.values - .firstOrNull() - ?.children - ?.firstOrNull() - ?.root - ?.docTagSummary() ?: "" + //TODO: It isn't platform-aware and produces wrong docs Probably should use platformDependentHint + protected open fun Documentable.briefDocumentation() = " " +// documentation.values +// .firstOrNull() +// ?.children +// ?.firstOrNull() +// ?.root +// ?.docTagSummary() ?: "" }
\ No newline at end of file |
