/* * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ package org.jetbrains.dokka import org.jetbrains.dokka.generation.Generation import org.jetbrains.dokka.plugability.ExtensionPoint import org.jetbrains.dokka.renderers.PostAction import org.jetbrains.dokka.renderers.Renderer import org.jetbrains.dokka.transformers.documentation.DocumentableMerger import org.jetbrains.dokka.transformers.documentation.DocumentableToPageTranslator import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer import org.jetbrains.dokka.transformers.pages.PageTransformer import org.jetbrains.dokka.transformers.sources.SourceToDocumentableTranslator import org.jetbrains.dokka.validity.PreGenerationChecker import kotlin.reflect.KProperty object CoreExtensions { val preGenerationCheck by coreExtensionPoint() val generation by coreExtensionPoint() val sourceToDocumentableTranslator by coreExtensionPoint() val documentableMerger by coreExtensionPoint() val documentableTransformer by coreExtensionPoint() val documentableToPageTranslator by coreExtensionPoint() val pageTransformer by coreExtensionPoint() val renderer by coreExtensionPoint() val postActions by coreExtensionPoint() private fun coreExtensionPoint() = object { operator fun provideDelegate(thisRef: CoreExtensions, property: KProperty<*>): Lazy> = lazy { ExtensionPoint(thisRef::class.qualifiedName!!, property.name) } } }