package org.jetbrains.dokka import org.jetbrains.dokka.pages.CommentsToContentConverter import org.jetbrains.dokka.pages.PageNode import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.ExtensionPoint import org.jetbrains.dokka.renderers.FileWriter import org.jetbrains.dokka.renderers.Renderer import org.jetbrains.dokka.resolvers.LocationProvider import org.jetbrains.dokka.transformers.descriptors.DescriptorToDocumentationTranslator import org.jetbrains.dokka.transformers.documentation.DocumentationNodeMerger import org.jetbrains.dokka.transformers.documentation.DocumentationNodeTransformer import org.jetbrains.dokka.transformers.documentation.DocumentationToPageTranslator import org.jetbrains.dokka.transformers.pages.PageNodeTransformer import kotlin.reflect.KProperty /** * Extension points declared by dokka core. * Default values are stored in [org.jetbrains.dokka.plugability.DefaultExtensions] */ object CoreExtensions { val descriptorToDocumentationTranslator by coreExtension() val documentationMerger by coreExtension() val documentationTransformer by coreExtension() val commentsToContentConverterFactory by coreExtension<(DokkaContext) -> CommentsToContentConverter>() val documentationToPageTranslator by coreExtension() val pageTransformer by coreExtension() val rendererFactory by coreExtension<(FileWriter, LocationProvider, DokkaContext) -> Renderer>() val locationProviderFactory by coreExtension<(root: PageNode, DokkaConfiguration, DokkaContext) -> LocationProvider>() val fileExtension by coreExtension() private fun coreExtension() = object { operator fun provideDelegate(thisRef: CoreExtensions, property: KProperty<*>): Lazy> = lazy { ExtensionPoint(thisRef::class.qualifiedName!!, property.name) } } }