aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
diff options
context:
space:
mode:
authorKamil Doległo <kamilok1965@interia.pl>2020-04-02 18:20:34 +0200
committerPaweł Marks <Kordyjan@users.noreply.github.com>2020-04-07 11:43:41 +0200
commitaf1ea32aa3f1e71cd47851a4a06344431801c8fd (patch)
tree906f1d7751780ba82dee91a4dbd7c29c585c52f9 /plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
parentfe24837fb51d5004ec3d7d728ce4c325a192e426 (diff)
downloaddokka-af1ea32aa3f1e71cd47851a4a06344431801c8fd.tar.gz
dokka-af1ea32aa3f1e71cd47851a4a06344431801c8fd.tar.bz2
dokka-af1ea32aa3f1e71cd47851a4a06344431801c8fd.zip
Add Typealiases rendering and merging
Diffstat (limited to 'plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt')
-rw-r--r--plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt15
1 files changed, 10 insertions, 5 deletions
diff --git a/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt b/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
index c87b5de3..ddb5903b 100644
--- a/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
+++ b/plugins/base/src/main/kotlin/transformers/documentables/DefaultDocumentableMerger.kt
@@ -1,10 +1,6 @@
package org.jetbrains.dokka.base.transformers.documentables
import org.jetbrains.dokka.model.*
-import org.jetbrains.dokka.model.DEnum
-import org.jetbrains.dokka.model.DFunction
-import org.jetbrains.dokka.model.DPackage
-import org.jetbrains.dokka.model.DAnnotation
import org.jetbrains.dokka.model.properties.mergeExtras
import org.jetbrains.dokka.pages.PlatformData
import org.jetbrains.dokka.plugability.DokkaContext
@@ -16,7 +12,8 @@ internal object DefaultDocumentableMerger : DocumentableMerger {
override fun invoke(modules: Collection<DModule>, context: DokkaContext): DModule {
val projectName =
- modules.fold(modules.first().name) { acc, module -> acc.commonPrefixWith(module.name) }.takeIf { it.isNotEmpty() }
+ modules.fold(modules.first().name) { acc, module -> acc.commonPrefixWith(module.name) }
+ .takeIf { it.isNotEmpty() }
?: "project"
return modules.reduce { left, right ->
@@ -111,6 +108,7 @@ fun DPackage.mergeWith(other: DPackage): DPackage = copy(
properties = mergeExpectActual(properties + other.properties, DProperty::mergeWith) { copy(platformData = it) },
classlikes = mergeExpectActual(classlikes + other.classlikes, DClasslike::mergeWith, DClasslike::setPlatformData),
documentation = documentation.mergeWith(other.documentation),
+ typealiases = merge(typealiases + other.typealiases, DTypeAlias::mergeWith),
platformData = (platformData + other.platformData).distinct()
).mergeExtras(this, other)
@@ -243,4 +241,11 @@ fun DParameter.mergeWith(other: DParameter): DParameter = copy(
fun DTypeParameter.mergeWith(other: DTypeParameter): DTypeParameter = copy(
documentation = documentation.mergeWith(other.documentation),
platformData = (platformData + other.platformData).distinct()
+).mergeExtras(this, other)
+
+fun DTypeAlias.mergeWith(other: DTypeAlias): DTypeAlias = copy(
+ documentation = documentation.mergeWith(other.documentation),
+ underlyingType = underlyingType.mergeWith(other.underlyingType),
+ visibility = visibility.mergeWith(other.visibility),
+ platformData = (platformData + other.platformData).distinct()
).mergeExtras(this, other) \ No newline at end of file