From 69d2663ff7de9fb4e4b1d0bc0b82f7653f70dad1 Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Thu, 16 Jan 2020 10:51:55 +0100 Subject: Applies requested changes --- core/src/main/kotlin/plugability/DefaultExtensions.kt | 12 +++++++++--- core/src/main/kotlin/plugability/DokkaContext.kt | 9 +++------ core/src/main/kotlin/plugability/LazyEvaluated.kt | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) (limited to 'core/src/main/kotlin/plugability') diff --git a/core/src/main/kotlin/plugability/DefaultExtensions.kt b/core/src/main/kotlin/plugability/DefaultExtensions.kt index 58b686f3..b3ff4248 100644 --- a/core/src/main/kotlin/plugability/DefaultExtensions.kt +++ b/core/src/main/kotlin/plugability/DefaultExtensions.kt @@ -10,15 +10,21 @@ import org.jetbrains.dokka.transformers.documentation.DefaultDocumentationNodeMe import org.jetbrains.dokka.transformers.documentation.DefaultDocumentationToPageTranslator internal object DefaultExtensions { + + private val renderer: LazyEvaluated = LazyEvaluated.fromRecipe { HtmlRenderer(it.single(CoreExtensions.outputWriter), it) } + private val converter: LazyEvaluated = LazyEvaluated.fromRecipe {DocTagToContentConverter(it) } + private val providerFactory: LazyEvaluated = LazyEvaluated.fromRecipe { DefaultLocationProviderFactory(it) } + + @Suppress("IMPLICIT_CAST_TO_ANY", "UNCHECKED_CAST") internal fun > get(point: E, fullContext: DokkaContext): List = when (point) { CoreExtensions.descriptorToDocumentationTranslator -> DefaultDescriptorToDocumentationTranslator CoreExtensions.documentationMerger -> DefaultDocumentationNodeMerger - CoreExtensions.commentsToContentConverter -> DocTagToContentConverter(fullContext) + CoreExtensions.commentsToContentConverter -> converter.get(fullContext) CoreExtensions.documentationToPageTranslator -> DefaultDocumentationToPageTranslator - CoreExtensions.renderer -> HtmlRenderer(fullContext.single(CoreExtensions.outputWriter), fullContext) - CoreExtensions.locationProviderFactory -> DefaultLocationProviderFactory + CoreExtensions.renderer -> renderer.get(fullContext) + CoreExtensions.locationProviderFactory -> providerFactory.get(fullContext) CoreExtensions.outputWriter -> FileWriter(fullContext.configuration.outputDir, "") CoreExtensions.fileExtension -> ".html" else -> null diff --git a/core/src/main/kotlin/plugability/DokkaContext.kt b/core/src/main/kotlin/plugability/DokkaContext.kt index f2c99d95..0d110f85 100644 --- a/core/src/main/kotlin/plugability/DokkaContext.kt +++ b/core/src/main/kotlin/plugability/DokkaContext.kt @@ -11,15 +11,12 @@ import kotlin.reflect.KClass import kotlin.reflect.full.createInstance -interface DokkaExtensionHandler { +interface DokkaContext { + fun plugin(kclass: KClass): T? + operator fun get(point: E, askDefault: AskDefault = AskDefault.WhenEmpty): List where T : Any, E : ExtensionPoint -} - -interface DokkaContext : DokkaExtensionHandler { - fun plugin(kclass: KClass): T? - val logger: DokkaLogger val configuration: DokkaConfiguration val platforms: Map diff --git a/core/src/main/kotlin/plugability/LazyEvaluated.kt b/core/src/main/kotlin/plugability/LazyEvaluated.kt index 79ac0968..c0c271f4 100644 --- a/core/src/main/kotlin/plugability/LazyEvaluated.kt +++ b/core/src/main/kotlin/plugability/LazyEvaluated.kt @@ -3,7 +3,7 @@ package org.jetbrains.dokka.plugability internal class LazyEvaluated private constructor(private val recipe: ((DokkaContext) -> T)? = null, private var value: T? = null) { internal fun get(context: DokkaContext): T { - if(value != null) { + if(value == null) { value = recipe?.invoke(context) } return value ?: throw AssertionError("Incorrect initialized LazyEvaluated instance") -- cgit