aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/main/kotlin/DokkaBase.kt
diff options
context:
space:
mode:
authorPaweł Marks <pmarks@virtuslab.com>2020-07-17 16:36:09 +0200
committerPaweł Marks <pmarks@virtuslab.com>2020-07-17 16:36:09 +0200
commit6996b1135f61c7d2cb60b0652c6a2691dda31990 (patch)
treed568096c25e31c28d14d518a63458b5a7526b896 /plugins/base/src/main/kotlin/DokkaBase.kt
parentde56cab76f556e5b4af0b8c8cb08d8b482b86d0a (diff)
parent1c3530dcbb50c347f80bef694829dbefe89eca77 (diff)
downloaddokka-6996b1135f61c7d2cb60b0652c6a2691dda31990.tar.gz
dokka-6996b1135f61c7d2cb60b0652c6a2691dda31990.tar.bz2
dokka-6996b1135f61c7d2cb60b0652c6a2691dda31990.zip
Merge branch 'dev-0.11.0'
Diffstat (limited to 'plugins/base/src/main/kotlin/DokkaBase.kt')
-rw-r--r--plugins/base/src/main/kotlin/DokkaBase.kt225
1 files changed, 225 insertions, 0 deletions
diff --git a/plugins/base/src/main/kotlin/DokkaBase.kt b/plugins/base/src/main/kotlin/DokkaBase.kt
new file mode 100644
index 00000000..6586f2dc
--- /dev/null
+++ b/plugins/base/src/main/kotlin/DokkaBase.kt
@@ -0,0 +1,225 @@
+@file:Suppress("unused")
+
+package org.jetbrains.dokka.base
+
+import org.jetbrains.dokka.CoreExtensions
+import org.jetbrains.dokka.analysis.KotlinAnalysis
+import org.jetbrains.dokka.base.allModulePage.MultimodulePageCreator
+import org.jetbrains.dokka.base.renderers.*
+import org.jetbrains.dokka.base.renderers.html.*
+import org.jetbrains.dokka.base.signatures.KotlinSignatureProvider
+import org.jetbrains.dokka.base.signatures.SignatureProvider
+import org.jetbrains.dokka.base.resolvers.external.*
+import org.jetbrains.dokka.base.resolvers.local.DefaultLocationProviderFactory
+import org.jetbrains.dokka.base.resolvers.local.LocationProviderFactory
+import org.jetbrains.dokka.base.transformers.documentables.*
+import org.jetbrains.dokka.base.transformers.documentables.DefaultDocumentableMerger
+import org.jetbrains.dokka.base.transformers.documentables.ModuleAndPackageDocumentationTransformer
+import org.jetbrains.dokka.base.transformers.documentables.ReportUndocumentedTransformer
+import org.jetbrains.dokka.base.transformers.pages.annotations.SinceKotlinTransformer
+import org.jetbrains.dokka.base.transformers.pages.comments.CommentsToContentConverter
+import org.jetbrains.dokka.base.transformers.pages.comments.DocTagToContentConverter
+import org.jetbrains.dokka.base.transformers.pages.merger.FallbackPageMergerStrategy
+import org.jetbrains.dokka.base.transformers.pages.merger.PageMerger
+import org.jetbrains.dokka.base.transformers.pages.merger.PageMergerStrategy
+import org.jetbrains.dokka.base.transformers.pages.merger.SameMethodNamePageMergerStrategy
+import org.jetbrains.dokka.base.transformers.pages.samples.DefaultSamplesTransformer
+import org.jetbrains.dokka.base.transformers.pages.sourcelinks.SourceLinksTransformer
+import org.jetbrains.dokka.base.translators.descriptors.DefaultDescriptorToDocumentableTranslator
+import org.jetbrains.dokka.base.translators.documentables.DefaultDocumentableToPageTranslator
+import org.jetbrains.dokka.base.translators.documentables.PageContentBuilder
+import org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator
+import org.jetbrains.dokka.plugability.DokkaPlugin
+import org.jetbrains.dokka.transformers.pages.PageTransformer
+
+class DokkaBase : DokkaPlugin() {
+ val pageMergerStrategy by extensionPoint<PageMergerStrategy>()
+ val commentsToContentConverter by extensionPoint<CommentsToContentConverter>()
+ val signatureProvider by extensionPoint<SignatureProvider>()
+ val locationProviderFactory by extensionPoint<LocationProviderFactory>()
+ val externalLocationProviderFactory by extensionPoint<ExternalLocationProviderFactory>()
+ val outputWriter by extensionPoint<OutputWriter>()
+ val htmlPreprocessors by extensionPoint<PageTransformer>()
+ val kotlinAnalysis by extensionPoint<KotlinAnalysis>()
+ val tabSortingStrategy by extensionPoint<TabSortingStrategy>()
+
+
+ val descriptorToDocumentableTranslator by extending {
+ CoreExtensions.sourceToDocumentableTranslator providing { ctx ->
+ DefaultDescriptorToDocumentableTranslator(ctx.single(kotlinAnalysis))
+ }
+ }
+
+ val psiToDocumentableTranslator by extending {
+ CoreExtensions.sourceToDocumentableTranslator providing { ctx ->
+ DefaultPsiToDocumentableTranslator(ctx.single(kotlinAnalysis))
+ }
+ }
+
+ val documentableMerger by extending {
+ CoreExtensions.documentableMerger with DefaultDocumentableMerger
+ }
+
+ val deprecatedDocumentableFilter by extending {
+ CoreExtensions.preMergeDocumentableTransformer providing ::DeprecatedDocumentableFilterTransformer
+ }
+
+ val documentableVisbilityFilter by extending {
+ CoreExtensions.preMergeDocumentableTransformer providing ::DocumentableVisibilityFilterTransformer
+ }
+
+ val emptyPackagesFilter by extending {
+ CoreExtensions.preMergeDocumentableTransformer providing ::EmptyPackagesFilterTransformer order {
+ after(deprecatedDocumentableFilter, documentableVisbilityFilter)
+ }
+ }
+
+ val actualTypealiasAdder by extending {
+ CoreExtensions.documentableTransformer with ActualTypealiasAdder()
+ }
+
+ val modulesAndPackagesDocumentation by extending {
+ CoreExtensions.preMergeDocumentableTransformer providing { ctx ->
+ ModuleAndPackageDocumentationTransformer(ctx, ctx.single(kotlinAnalysis))
+ }
+ }
+
+ val kotlinSignatureProvider by extending {
+ signatureProvider providing { ctx ->
+ KotlinSignatureProvider(ctx.single(commentsToContentConverter), ctx.logger)
+ }
+ }
+
+ val sinceKotlinTransformer by extending {
+ CoreExtensions.documentableTransformer providing ::SinceKotlinTransformer
+ }
+
+ val inheritorsExtractor by extending {
+ CoreExtensions.documentableTransformer with InheritorsExtractorTransformer()
+ }
+
+
+ val undocumentedCodeReporter by extending {
+ CoreExtensions.documentableTransformer with ReportUndocumentedTransformer()
+ }
+
+ val extensionsExtractor by extending {
+ CoreExtensions.documentableTransformer with ExtensionExtractorTransformer()
+ }
+
+ val documentableToPageTranslator by extending {
+ CoreExtensions.documentableToPageTranslator providing { ctx ->
+ DefaultDocumentableToPageTranslator(
+ ctx.single(commentsToContentConverter),
+ ctx.single(signatureProvider),
+ ctx.logger
+ )
+ }
+ }
+
+ val docTagToContentConverter by extending {
+ commentsToContentConverter with DocTagToContentConverter
+ }
+
+ val pageMerger by extending {
+ CoreExtensions.pageTransformer providing { ctx -> PageMerger(ctx[pageMergerStrategy]) }
+ }
+
+ val fallbackMerger by extending {
+ pageMergerStrategy providing { ctx -> FallbackPageMergerStrategy(ctx.logger) }
+ }
+
+ val sameMethodNameMerger by extending {
+ pageMergerStrategy providing { ctx -> SameMethodNamePageMergerStrategy(ctx.logger) } order {
+ before(fallbackMerger)
+ }
+ }
+
+ val defaultTabSortingStrategy by extending {
+ tabSortingStrategy with DefaultTabSortingStrategy()
+ }
+
+ val htmlRenderer by extending {
+ CoreExtensions.renderer providing ::HtmlRenderer
+ }
+
+
+ val defaultKotlinAnalysis by extending {
+ kotlinAnalysis providing { ctx -> KotlinAnalysis(ctx) }
+ }
+
+ val locationProvider by extending {
+ locationProviderFactory providing ::DefaultLocationProviderFactory
+ }
+
+ val javadocLocationProvider by extending {
+ externalLocationProviderFactory with JavadocExternalLocationProviderFactory()
+ }
+
+ val dokkaLocationProvider by extending {
+ externalLocationProviderFactory with DokkaExternalLocationProviderFactory()
+ }
+
+ val fileWriter by extending {
+ outputWriter providing ::FileWriter
+ }
+
+ val rootCreator by extending {
+ htmlPreprocessors with RootCreator
+ }
+
+ val defaultSamplesTransformer by extending {
+ CoreExtensions.pageTransformer providing ::DefaultSamplesTransformer order {
+ before(pageMerger)
+ }
+ }
+
+ val sourceLinksTransformer by extending {
+ htmlPreprocessors providing {
+ SourceLinksTransformer(
+ it,
+ PageContentBuilder(
+ it.single(commentsToContentConverter),
+ it.single(signatureProvider),
+ it.logger
+ )
+ )
+ } order { after(rootCreator) }
+ }
+
+ val navigationPageInstaller by extending {
+ htmlPreprocessors with NavigationPageInstaller order { after(rootCreator) }
+ }
+
+ val searchPageInstaller by extending {
+ htmlPreprocessors with SearchPageInstaller order { after(rootCreator) }
+ }
+
+ val resourceInstaller by extending {
+ htmlPreprocessors with ResourceInstaller order { after(rootCreator) }
+ }
+
+ val styleAndScriptsAppender by extending {
+ htmlPreprocessors with StyleAndScriptsAppender order { after(rootCreator) }
+ }
+
+ val packageListCreator by extending {
+ htmlPreprocessors providing {
+ PackageListCreator(
+ it,
+ "html",
+ "html"
+ )
+ } order { after(rootCreator) }
+ }
+
+ val sourcesetDependencyAppender by extending {
+ htmlPreprocessors providing ::SourcesetDependencyAppender order { after(rootCreator) }
+ }
+
+ val allModulePageCreators by extending {
+ CoreExtensions.allModulePageCreator providing {
+ MultimodulePageCreator(it)
+ }
+ }
+}