From db215639cef1a8ea4b0ac9761b9c23f7bac4e32d Mon Sep 17 00:00:00 2001 From: Krzysztof Romanwoski Date: Fri, 11 Sep 2020 16:29:55 +0200 Subject: Create java-like api for plugins --- core/src/main/kotlin/plugability/DokkaPlugin.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'core/src/main/kotlin/plugability/DokkaPlugin.kt') diff --git a/core/src/main/kotlin/plugability/DokkaPlugin.kt b/core/src/main/kotlin/plugability/DokkaPlugin.kt index a62327d2..13f59f6e 100644 --- a/core/src/main/kotlin/plugability/DokkaPlugin.kt +++ b/core/src/main/kotlin/plugability/DokkaPlugin.kt @@ -10,6 +10,7 @@ import kotlin.reflect.full.createInstance abstract class DokkaPlugin { private val extensionDelegates = mutableListOf>() + private val unsafePlugins = mutableListOf>>() @PublishedApi internal var context: DokkaContext? = null @@ -37,10 +38,14 @@ abstract class DokkaPlugin { } internal fun internalInstall(ctx: DokkaContextConfiguration, configuration: DokkaConfiguration) { - extensionDelegates.asSequence() + val extensionsToInstall = extensionDelegates.asSequence() .filterIsInstance>>() // should be always true - .map { it.get(this) } - .forEach { if (configuration.(it.condition)()) ctx.installExtension(it) } + .map { it.get(this) } + unsafePlugins.map{ it.value } + extensionsToInstall.forEach { if (configuration.(it.condition)()) ctx.installExtension(it) } + } + + protected fun unsafeInstall(ext: Lazy>){ + unsafePlugins.add(ext) } } -- cgit