From 8e5c63d035ef44a269b8c43430f43f5c8eebfb63 Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Fri, 10 Nov 2023 11:46:54 +0100 Subject: Restructure the project to utilize included builds (#3174) * Refactor and simplify artifact publishing * Update Gradle to 8.4 * Refactor and simplify convention plugins and build scripts Fixes #3132 --------- Co-authored-by: Adam <897017+aSemy@users.noreply.github.com> Co-authored-by: Oleg Yukhnevich --- plugins/base/src/main/kotlin/DokkaBase.kt | 299 ------ .../base/src/main/kotlin/DokkaBaseConfiguration.kt | 28 - .../deprecated/AnalysisApiDeprecatedError.kt | 16 - .../deprecated/KotlinAnalysisDeprecatedApi.kt | 77 -- .../main/kotlin/deprecated/ParsersDeprecatedAPI.kt | 42 - .../deprecated/ParsersFactoriesDeprecatedAPI.kt | 24 - .../TranslatorDescriptorsDeprecatedAPI.kt | 50 - .../deprecated/TranslatorPsiDeprecatedAPI.kt | 25 - .../kotlin/generation/SingleModuleGeneration.kt | 131 --- .../src/main/kotlin/renderers/DefaultRenderer.kt | 257 ----- .../base/src/main/kotlin/renderers/FileWriter.kt | 109 --- .../base/src/main/kotlin/renderers/OutputWriter.kt | 11 - .../main/kotlin/renderers/PackageListService.kt | 80 -- .../main/kotlin/renderers/TabSortingStrategy.kt | 11 - .../main/kotlin/renderers/contentTypeChecking.kt | 24 - .../src/main/kotlin/renderers/html/HtmlContent.kt | 18 - .../src/main/kotlin/renderers/html/HtmlRenderer.kt | 1013 -------------------- .../renderers/html/NavigationDataProvider.kt | 134 --- .../main/kotlin/renderers/html/NavigationPage.kt | 129 --- .../renderers/html/SearchbarDataInstaller.kt | 128 --- .../base/src/main/kotlin/renderers/html/Tags.kt | 82 -- .../consumers/ImmediateResolutionTagConsumer.kt | 37 - .../html/command/consumers/PathToRootConsumer.kt | 26 - .../command/consumers/ReplaceVersionsConsumer.kt | 29 - .../html/command/consumers/ResolveLinkConsumer.kt | 34 - .../kotlin/renderers/html/htmlFormatingUtils.kt | 67 -- .../kotlin/renderers/html/htmlPreprocessors.kt | 172 ---- .../innerTemplating/DefaultTemplateModelFactory.kt | 234 ----- .../innerTemplating/DefaultTemplateModelMerger.kt | 20 - .../html/innerTemplating/HtmlTemplater.kt | 82 -- .../html/innerTemplating/TemplateModelFactory.kt | 19 - .../html/innerTemplating/TemplateModelMerger.kt | 9 - .../renderers/html/shouldRenderSourceSetBubbles.kt | 20 - plugins/base/src/main/kotlin/renderers/pageId.kt | 31 - .../src/main/kotlin/renderers/preprocessors.kt | 41 - .../main/kotlin/resolvers/anchors/AnchorsHint.kt | 19 - .../external/DefaultExternalLocationProvider.kt | 46 - .../DefaultExternalLocationProviderFactory.kt | 28 - .../external/Dokka010ExternalLocationProvider.kt | 46 - .../resolvers/external/ExternalLocationProvider.kt | 18 - .../external/ExternalLocationProviderFactory.kt | 11 - .../ExternalLocationProviderFactoryWithCache.kt | 21 - .../javadoc/AndroidExternalLocationProvider.kt | 18 - .../javadoc/JavadocExternalLocationProvider.kt | 62 -- .../JavadocExternalLocationProviderFactory.kt | 39 - .../resolvers/local/DefaultLocationProvider.kt | 82 -- .../resolvers/local/DokkaBaseLocationProvider.kt | 27 - .../resolvers/local/DokkaLocationProvider.kt | 182 ---- .../local/DokkaLocationProviderFactory.kt | 26 - .../kotlin/resolvers/local/LocationProvider.kt | 47 - .../resolvers/local/LocationProviderFactory.kt | 11 - .../resolvers/shared/ExternalDocumentation.kt | 9 - .../src/main/kotlin/resolvers/shared/LinkFormat.kt | 10 - .../main/kotlin/resolvers/shared/PackageList.kt | 83 -- .../resolvers/shared/RecognizedLinkFormat.kt | 29 - .../base/src/main/kotlin/resolvers/shared/utils.kt | 41 - .../main/kotlin/signatures/JvmSignatureUtils.kt | 231 ----- .../kotlin/signatures/KotlinSignatureProvider.kt | 503 ---------- .../main/kotlin/signatures/KotlinSignatureUtils.kt | 86 -- .../main/kotlin/signatures/SignatureProvider.kt | 12 - .../kotlin/templating/AddToNavigationCommand.kt | 9 - .../base/src/main/kotlin/templating/AddToSearch.kt | 12 - .../templating/AddToSourcesetDependencies.kt | 10 - plugins/base/src/main/kotlin/templating/Command.kt | 15 - .../templating/ImmediateHtmlCommandConsumer.kt | 17 - .../main/kotlin/templating/InsertTemplateExtra.kt | 16 - .../templating/PathToRootSubstitutionCommand.kt | 10 - .../templating/ProjectNameSubstitutionCommand.kt | 10 - .../kotlin/templating/ReplaceVersionsCommand.kt | 7 - .../main/kotlin/templating/ResolveLinkCommand.kt | 11 - .../main/kotlin/templating/jsonMapperForPlugins.kt | 62 -- .../documentables/ActualTypealiasAdder.kt | 127 --- .../documentables/ClashingDriIdentifier.kt | 12 - .../DeprecatedDocumentableFilterTransformer.kt | 62 -- .../DocumentableReplacerTransformer.kt | 239 ----- .../DocumentableVisibilityFilterTransformer.kt | 388 -------- .../documentables/EmptyModulesFilterTransformer.kt | 14 - .../EmptyPackagesFilterTransformer.kt | 30 - .../documentables/ExtensionExtractorTransformer.kt | 160 ---- ...nheritedEntriesDocumentableFilterTransformer.kt | 23 - .../InheritorsExtractorTransformer.kt | 91 -- .../KotlinArrayDocumentableReplacerTransformer.kt | 68 -- .../ModuleAndPackageDocumentationTransformer.kt | 47 - ...bviousFunctionsDocumentableFilterTransformer.kt | 17 - .../documentables/ReportUndocumentedTransformer.kt | 143 --- .../documentables/SuppressTagDocumentableFilter.kt | 17 - ...ssedByConditionDocumentableFilterTransformer.kt | 146 --- ...ByConfigurationDocumentableFilterTransformer.kt | 57 -- .../kotlin/transformers/documentables/utils.kt | 35 - .../pages/DefaultSamplesTransformer.kt | 117 --- .../pages/annotations/SinceKotlinTransformer.kt | 186 ---- .../pages/comments/CommentsToContentConverter.kt | 22 - .../pages/comments/DocTagToContentConverter.kt | 270 ------ .../pages/merger/FallbackPageMergerStrategy.kt | 22 - .../kotlin/transformers/pages/merger/PageMerger.kt | 40 - .../pages/merger/PageMergerStrategy.kt | 13 - .../merger/SameMethodNamePageMergerStrategy.kt | 68 -- .../merger/SourceSetMergingPageTransformer.kt | 43 - .../pages/sourcelinks/SourceLinksTransformer.kt | 140 --- .../pages/tags/CustomTagContentProvider.kt | 63 -- .../pages/tags/SinceKotlinTagContentProvider.kt | 38 - .../DefaultDocumentableToPageTranslator.kt | 34 - .../documentables/DefaultPageCreator.kt | 779 --------------- .../documentables/DeprecationSectionCreator.kt | 194 ---- .../documentables/DescriptionSections.kt | 349 ------- .../translators/documentables/DriClashAwareName.kt | 13 - .../documentables/PageContentBuilder.kt | 781 --------------- .../documentables/briefFromContentNodes.kt | 62 -- .../src/main/kotlin/utils/CollectionExtensions.kt | 16 - .../src/main/kotlin/utils/alphabeticalOrder.kt | 11 - 110 files changed, 10312 deletions(-) delete mode 100644 plugins/base/src/main/kotlin/DokkaBase.kt delete mode 100644 plugins/base/src/main/kotlin/DokkaBaseConfiguration.kt delete mode 100644 plugins/base/src/main/kotlin/deprecated/AnalysisApiDeprecatedError.kt delete mode 100644 plugins/base/src/main/kotlin/deprecated/KotlinAnalysisDeprecatedApi.kt delete mode 100644 plugins/base/src/main/kotlin/deprecated/ParsersDeprecatedAPI.kt delete mode 100644 plugins/base/src/main/kotlin/deprecated/ParsersFactoriesDeprecatedAPI.kt delete mode 100644 plugins/base/src/main/kotlin/deprecated/TranslatorDescriptorsDeprecatedAPI.kt delete mode 100644 plugins/base/src/main/kotlin/deprecated/TranslatorPsiDeprecatedAPI.kt delete mode 100644 plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/FileWriter.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/OutputWriter.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/PackageListService.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/TabSortingStrategy.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/contentTypeChecking.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/HtmlContent.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/HtmlRenderer.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/NavigationDataProvider.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/NavigationPage.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/SearchbarDataInstaller.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/Tags.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/command/consumers/ImmediateResolutionTagConsumer.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/command/consumers/PathToRootConsumer.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/command/consumers/ReplaceVersionsConsumer.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/command/consumers/ResolveLinkConsumer.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/htmlFormatingUtils.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/htmlPreprocessors.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/innerTemplating/DefaultTemplateModelFactory.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/innerTemplating/DefaultTemplateModelMerger.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/innerTemplating/HtmlTemplater.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/innerTemplating/TemplateModelFactory.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/innerTemplating/TemplateModelMerger.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/html/shouldRenderSourceSetBubbles.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/pageId.kt delete mode 100644 plugins/base/src/main/kotlin/renderers/preprocessors.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/anchors/AnchorsHint.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/DefaultExternalLocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/DefaultExternalLocationProviderFactory.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/Dokka010ExternalLocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/ExternalLocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/ExternalLocationProviderFactory.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/ExternalLocationProviderFactoryWithCache.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/javadoc/AndroidExternalLocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/javadoc/JavadocExternalLocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/external/javadoc/JavadocExternalLocationProviderFactory.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/local/DefaultLocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/local/DokkaBaseLocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/local/DokkaLocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/local/DokkaLocationProviderFactory.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/local/LocationProvider.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/local/LocationProviderFactory.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/shared/ExternalDocumentation.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/shared/LinkFormat.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/shared/PackageList.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/shared/RecognizedLinkFormat.kt delete mode 100644 plugins/base/src/main/kotlin/resolvers/shared/utils.kt delete mode 100644 plugins/base/src/main/kotlin/signatures/JvmSignatureUtils.kt delete mode 100644 plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt delete mode 100644 plugins/base/src/main/kotlin/signatures/KotlinSignatureUtils.kt delete mode 100644 plugins/base/src/main/kotlin/signatures/SignatureProvider.kt delete mode 100644 plugins/base/src/main/kotlin/templating/AddToNavigationCommand.kt delete mode 100644 plugins/base/src/main/kotlin/templating/AddToSearch.kt delete mode 100644 plugins/base/src/main/kotlin/templating/AddToSourcesetDependencies.kt delete mode 100644 plugins/base/src/main/kotlin/templating/Command.kt delete mode 100644 plugins/base/src/main/kotlin/templating/ImmediateHtmlCommandConsumer.kt delete mode 100644 plugins/base/src/main/kotlin/templating/InsertTemplateExtra.kt delete mode 100644 plugins/base/src/main/kotlin/templating/PathToRootSubstitutionCommand.kt delete mode 100644 plugins/base/src/main/kotlin/templating/ProjectNameSubstitutionCommand.kt delete mode 100644 plugins/base/src/main/kotlin/templating/ReplaceVersionsCommand.kt delete mode 100644 plugins/base/src/main/kotlin/templating/ResolveLinkCommand.kt delete mode 100644 plugins/base/src/main/kotlin/templating/jsonMapperForPlugins.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/ActualTypealiasAdder.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/ClashingDriIdentifier.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/DeprecatedDocumentableFilterTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/DocumentableReplacerTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilterTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/EmptyModulesFilterTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/EmptyPackagesFilterTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/ExtensionExtractorTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/InheritedEntriesDocumentableFilterTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/InheritorsExtractorTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/KotlinArrayDocumentableReplacerTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/ModuleAndPackageDocumentationTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/ObviousFunctionsDocumentableFilterTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/ReportUndocumentedTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/SuppressTagDocumentableFilter.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/SuppressedByConditionDocumentableFilterTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/SuppressedByConfigurationDocumentableFilterTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/documentables/utils.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/DefaultSamplesTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/annotations/SinceKotlinTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/comments/CommentsToContentConverter.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/comments/DocTagToContentConverter.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/merger/FallbackPageMergerStrategy.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/merger/PageMerger.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/merger/PageMergerStrategy.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/merger/SameMethodNamePageMergerStrategy.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/merger/SourceSetMergingPageTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/sourcelinks/SourceLinksTransformer.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/tags/CustomTagContentProvider.kt delete mode 100644 plugins/base/src/main/kotlin/transformers/pages/tags/SinceKotlinTagContentProvider.kt delete mode 100644 plugins/base/src/main/kotlin/translators/documentables/DefaultDocumentableToPageTranslator.kt delete mode 100644 plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt delete mode 100644 plugins/base/src/main/kotlin/translators/documentables/DeprecationSectionCreator.kt delete mode 100644 plugins/base/src/main/kotlin/translators/documentables/DescriptionSections.kt delete mode 100644 plugins/base/src/main/kotlin/translators/documentables/DriClashAwareName.kt delete mode 100644 plugins/base/src/main/kotlin/translators/documentables/PageContentBuilder.kt delete mode 100644 plugins/base/src/main/kotlin/translators/documentables/briefFromContentNodes.kt delete mode 100644 plugins/base/src/main/kotlin/utils/CollectionExtensions.kt delete mode 100644 plugins/base/src/main/kotlin/utils/alphabeticalOrder.kt (limited to 'plugins/base/src/main/kotlin') diff --git a/plugins/base/src/main/kotlin/DokkaBase.kt b/plugins/base/src/main/kotlin/DokkaBase.kt deleted file mode 100644 index ca86d4d5..00000000 --- a/plugins/base/src/main/kotlin/DokkaBase.kt +++ /dev/null @@ -1,299 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package org.jetbrains.dokka.base - -import org.jetbrains.dokka.CoreExtensions -import org.jetbrains.dokka.base.generation.SingleModuleGeneration -import org.jetbrains.dokka.base.renderers.* -import org.jetbrains.dokka.base.renderers.html.* -import org.jetbrains.dokka.base.renderers.html.command.consumers.PathToRootConsumer -import org.jetbrains.dokka.base.renderers.html.command.consumers.ReplaceVersionsConsumer -import org.jetbrains.dokka.base.renderers.html.command.consumers.ResolveLinkConsumer -import org.jetbrains.dokka.base.resolvers.external.DefaultExternalLocationProviderFactory -import org.jetbrains.dokka.base.resolvers.external.ExternalLocationProviderFactory -import org.jetbrains.dokka.base.resolvers.external.javadoc.JavadocExternalLocationProviderFactory -import org.jetbrains.dokka.base.resolvers.local.DokkaLocationProviderFactory -import org.jetbrains.dokka.base.resolvers.local.LocationProviderFactory -import org.jetbrains.dokka.base.resolvers.shared.RecognizedLinkFormat -import org.jetbrains.dokka.base.signatures.KotlinSignatureProvider -import org.jetbrains.dokka.base.signatures.SignatureProvider -import org.jetbrains.dokka.base.templating.ImmediateHtmlCommandConsumer -import org.jetbrains.dokka.base.transformers.documentables.* -import org.jetbrains.dokka.base.transformers.pages.DefaultSamplesTransformer -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.* -import org.jetbrains.dokka.base.transformers.pages.sourcelinks.SourceLinksTransformer -import org.jetbrains.dokka.base.transformers.pages.tags.CustomTagContentProvider -import org.jetbrains.dokka.base.transformers.pages.tags.SinceKotlinTagContentProvider -import org.jetbrains.dokka.base.translators.documentables.DefaultDocumentableToPageTranslator -import org.jetbrains.dokka.generation.Generation -import org.jetbrains.dokka.plugability.* -import org.jetbrains.dokka.renderers.Renderer -import org.jetbrains.dokka.transformers.documentation.* -import org.jetbrains.dokka.transformers.pages.PageTransformer - -@Suppress("unused") -public class DokkaBase : DokkaPlugin() { - - public val preMergeDocumentableTransformer: ExtensionPoint by extensionPoint() - public val pageMergerStrategy: ExtensionPoint by extensionPoint() - public val commentsToContentConverter: ExtensionPoint by extensionPoint() - public val customTagContentProvider: ExtensionPoint by extensionPoint() - public val signatureProvider: ExtensionPoint by extensionPoint() - public val locationProviderFactory: ExtensionPoint by extensionPoint() - public val externalLocationProviderFactory: ExtensionPoint by extensionPoint() - public val outputWriter: ExtensionPoint by extensionPoint() - public val htmlPreprocessors: ExtensionPoint by extensionPoint() - - @Deprecated("It is not used anymore") - public val tabSortingStrategy: ExtensionPoint by extensionPoint() - public val immediateHtmlCommandConsumer: ExtensionPoint by extensionPoint() - - - public val singleGeneration: Extension by extending { - CoreExtensions.generation providing ::SingleModuleGeneration - } - - public val documentableMerger: Extension by extending { - CoreExtensions.documentableMerger providing ::DefaultDocumentableMerger - } - - public val deprecatedDocumentableFilter: Extension by extending { - preMergeDocumentableTransformer providing ::DeprecatedDocumentableFilterTransformer - } - - public val suppressedDocumentableFilter: Extension by extending { - preMergeDocumentableTransformer providing ::SuppressedByConfigurationDocumentableFilterTransformer - } - - public val suppressedBySuppressTagDocumentableFilter: Extension by extending { - preMergeDocumentableTransformer providing ::SuppressTagDocumentableFilter - } - - public val documentableVisibilityFilter: Extension by extending { - preMergeDocumentableTransformer providing ::DocumentableVisibilityFilterTransformer - } - - public val obviousFunctionsVisbilityFilter: Extension by extending { - preMergeDocumentableTransformer providing ::ObviousFunctionsDocumentableFilterTransformer - } - - public val inheritedEntriesVisbilityFilter: Extension by extending { - preMergeDocumentableTransformer providing ::InheritedEntriesDocumentableFilterTransformer - } - - public val kotlinArrayDocumentableReplacer: Extension by extending { - preMergeDocumentableTransformer providing ::KotlinArrayDocumentableReplacerTransformer - } - - public val emptyPackagesFilter: Extension by extending { - preMergeDocumentableTransformer providing ::EmptyPackagesFilterTransformer order { - after( - deprecatedDocumentableFilter, - suppressedDocumentableFilter, - documentableVisibilityFilter, - suppressedBySuppressTagDocumentableFilter, - obviousFunctionsVisbilityFilter, - inheritedEntriesVisbilityFilter, - ) - } - } - - public val emptyModulesFilter: Extension by extending { - preMergeDocumentableTransformer with EmptyModulesFilterTransformer() order { - after(emptyPackagesFilter) - } - } - - public val modulesAndPackagesDocumentation: Extension by extending { - preMergeDocumentableTransformer providing ::ModuleAndPackageDocumentationTransformer - } - - public val actualTypealiasAdder: Extension by extending { - CoreExtensions.documentableTransformer with ActualTypealiasAdder() - } - - public val kotlinSignatureProvider: Extension by extending { - signatureProvider providing ::KotlinSignatureProvider - } - - public val sinceKotlinTransformer: Extension by extending { - CoreExtensions.documentableTransformer providing ::SinceKotlinTransformer applyIf { - SinceKotlinTransformer.shouldDisplaySinceKotlin() - } order { - before(extensionsExtractor) - } - } - - public val inheritorsExtractor: Extension by extending { - CoreExtensions.documentableTransformer with InheritorsExtractorTransformer() - } - - public val undocumentedCodeReporter: Extension by extending { - CoreExtensions.documentableTransformer with ReportUndocumentedTransformer() - } - - public val extensionsExtractor: Extension by extending { - CoreExtensions.documentableTransformer with ExtensionExtractorTransformer() - } - - public val documentableToPageTranslator: Extension by extending { - CoreExtensions.documentableToPageTranslator providing ::DefaultDocumentableToPageTranslator - } - - public val docTagToContentConverter: Extension by extending { - commentsToContentConverter with DocTagToContentConverter() - } - - public val sinceKotlinTagContentProvider: Extension by extending { - customTagContentProvider with SinceKotlinTagContentProvider applyIf { - SinceKotlinTransformer.shouldDisplaySinceKotlin() - } - } - - public val pageMerger: Extension by extending { - CoreExtensions.pageTransformer providing ::PageMerger - } - - public val sourceSetMerger: Extension by extending { - CoreExtensions.pageTransformer providing ::SourceSetMergingPageTransformer - } - - public val fallbackMerger: Extension by extending { - pageMergerStrategy providing { ctx -> FallbackPageMergerStrategy(ctx.logger) } - } - - public val sameMethodNameMerger: Extension by extending { - pageMergerStrategy providing { ctx -> SameMethodNamePageMergerStrategy(ctx.logger) } order { - before(fallbackMerger) - } - } - - public val htmlRenderer: Extension by extending { - CoreExtensions.renderer providing ::HtmlRenderer - } - - public val locationProvider: Extension by extending { - locationProviderFactory providing ::DokkaLocationProviderFactory - } - - public val javadocLocationProvider: Extension by extending { - externalLocationProviderFactory providing ::JavadocExternalLocationProviderFactory - } - - public val dokkaLocationProvider: Extension by extending { - externalLocationProviderFactory providing ::DefaultExternalLocationProviderFactory - } - - public val fileWriter: Extension by extending { - outputWriter providing ::FileWriter - } - - public val rootCreator: Extension by extending { - htmlPreprocessors with RootCreator applyIf { !delayTemplateSubstitution } - } - - public val defaultSamplesTransformer: Extension by extending { - CoreExtensions.pageTransformer providing ::DefaultSamplesTransformer order { - before(pageMerger) - } - } - - public val sourceLinksTransformer: Extension by extending { - htmlPreprocessors providing ::SourceLinksTransformer order { after(rootCreator) } - } - - public val navigationPageInstaller: Extension by extending { - htmlPreprocessors providing ::NavigationPageInstaller order { after(rootCreator) } - } - - public val scriptsInstaller: Extension by extending { - htmlPreprocessors providing ::ScriptsInstaller order { after(rootCreator) } - } - - public val stylesInstaller: Extension by extending { - htmlPreprocessors providing ::StylesInstaller order { after(rootCreator) } - } - - public val assetsInstaller: Extension by extending { - htmlPreprocessors with AssetsInstaller order { after(rootCreator) } applyIf { !delayTemplateSubstitution } - } - - public val customResourceInstaller: Extension by extending { - htmlPreprocessors providing { ctx -> CustomResourceInstaller(ctx) } order { - after(stylesInstaller) - after(scriptsInstaller) - after(assetsInstaller) - } - } - - public val packageListCreator: Extension by extending { - htmlPreprocessors providing { - PackageListCreator(it, RecognizedLinkFormat.DokkaHtml) - } order { after(rootCreator) } - } - - public val sourcesetDependencyAppender: Extension by extending { - htmlPreprocessors providing ::SourcesetDependencyAppender order { after(rootCreator) } - } - - public val resolveLinkConsumer: Extension by extending { - immediateHtmlCommandConsumer with ResolveLinkConsumer - } - public val replaceVersionConsumer: Extension by extending { - immediateHtmlCommandConsumer providing ::ReplaceVersionsConsumer - } - public val pathToRootConsumer: Extension by extending { - immediateHtmlCommandConsumer with PathToRootConsumer - } - public val baseSearchbarDataInstaller: Extension by extending { - htmlPreprocessors providing ::SearchbarDataInstaller order { after(sourceLinksTransformer) } - } - - // - @Suppress("DEPRECATION_ERROR") - @Deprecated(message = org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val kotlinAnalysis: ExtensionPoint by extensionPoint() - - @Suppress("DEPRECATION_ERROR") - @Deprecated(message = org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val externalDocumentablesProvider: ExtensionPoint by extensionPoint() - - @Suppress("DEPRECATION_ERROR") - @Deprecated(message = org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val externalClasslikesTranslator: ExtensionPoint by extensionPoint() - - @Suppress("DeprecatedCallableAddReplaceWith") - @Deprecated(message = org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val descriptorToDocumentableTranslator: org.jetbrains.dokka.plugability.Extension - get() = throw org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError() - - @Suppress("DeprecatedCallableAddReplaceWith") - @Deprecated(message = org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val psiToDocumentableTranslator: org.jetbrains.dokka.plugability.Extension - get() = throw org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError() - - @Suppress("DEPRECATION_ERROR", "DeprecatedCallableAddReplaceWith") - @Deprecated(message = org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val defaultKotlinAnalysis: org.jetbrains.dokka.plugability.Extension - get() = throw org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError() - - @Suppress("DEPRECATION_ERROR", "DeprecatedCallableAddReplaceWith") - @Deprecated(message = org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val defaultExternalDocumentablesProvider: org.jetbrains.dokka.plugability.Extension - get() = throw org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError() - - @Suppress("DEPRECATION_ERROR", "DeprecatedCallableAddReplaceWith") - @Deprecated(message = org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val defaultExternalClasslikesTranslator: org.jetbrains.dokka.plugability.Extension - get() = throw org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError() - // - - @OptIn(DokkaPluginApiPreview::class) - override fun pluginApiPreviewAcknowledgement(): PluginApiPreviewAcknowledgement = - PluginApiPreviewAcknowledgement -} diff --git a/plugins/base/src/main/kotlin/DokkaBaseConfiguration.kt b/plugins/base/src/main/kotlin/DokkaBaseConfiguration.kt deleted file mode 100644 index 34195f65..00000000 --- a/plugins/base/src/main/kotlin/DokkaBaseConfiguration.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package org.jetbrains.dokka.base - -import org.jetbrains.dokka.plugability.ConfigurableBlock -import java.io.File -import java.time.Year - -public data class DokkaBaseConfiguration( - var customStyleSheets: List = defaultCustomStyleSheets, - var customAssets: List = defaultCustomAssets, - var separateInheritedMembers: Boolean = separateInheritedMembersDefault, - var footerMessage: String = defaultFooterMessage, - var mergeImplicitExpectActualDeclarations: Boolean = mergeImplicitExpectActualDeclarationsDefault, - var templatesDir: File? = defaultTemplatesDir, - var homepageLink: String? = null, -) : ConfigurableBlock { - public companion object { - public val defaultFooterMessage: String = "© ${Year.now().value} Copyright" - public val defaultCustomStyleSheets: List = emptyList() - public val defaultCustomAssets: List = emptyList() - public const val separateInheritedMembersDefault: Boolean = false - public const val mergeImplicitExpectActualDeclarationsDefault: Boolean = false - public val defaultTemplatesDir: File? = null - } -} diff --git a/plugins/base/src/main/kotlin/deprecated/AnalysisApiDeprecatedError.kt b/plugins/base/src/main/kotlin/deprecated/AnalysisApiDeprecatedError.kt deleted file mode 100644 index 52280b3e..00000000 --- a/plugins/base/src/main/kotlin/deprecated/AnalysisApiDeprecatedError.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package org.jetbrains.dokka.base.deprecated - -import org.jetbrains.dokka.InternalDokkaApi - -// TODO all API that mentions this message or error can be removed in Dokka >= 2.1 - -internal const val ANALYSIS_API_DEPRECATION_MESSAGE = - "Dokka's Analysis API has been reworked. Please, see the following issue for details and migration options: " + - "https://github.com/Kotlin/dokka/issues/3099" - -@InternalDokkaApi -public class AnalysisApiDeprecatedError : Error(ANALYSIS_API_DEPRECATION_MESSAGE) diff --git a/plugins/base/src/main/kotlin/deprecated/KotlinAnalysisDeprecatedApi.kt b/plugins/base/src/main/kotlin/deprecated/KotlinAnalysisDeprecatedApi.kt deleted file mode 100644 index 1d9e7e9f..00000000 --- a/plugins/base/src/main/kotlin/deprecated/KotlinAnalysisDeprecatedApi.kt +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:Suppress("PackageDirectoryMismatch", "FunctionName", "UNUSED_PARAMETER", "unused", "DEPRECATION_ERROR", - "DeprecatedCallableAddReplaceWith", "unused" -) - -package org.jetbrains.dokka.analysis - -import org.jetbrains.dokka.DokkaConfiguration -import org.jetbrains.dokka.DokkaSourceSetID -import org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE -import org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError -import org.jetbrains.dokka.plugability.DokkaContext -import org.jetbrains.dokka.utilities.DokkaLogger -import java.io.Closeable - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public abstract class KotlinAnalysis( - private val parent: KotlinAnalysis? = null -) : Closeable { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public operator fun get(key: DokkaConfiguration.DokkaSourceSet): AnalysisContext = throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public operator fun get(key: DokkaSourceSetID): AnalysisContext = throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - protected abstract fun find(sourceSetID: DokkaSourceSetID): AnalysisContext? -} - -public class AnalysisContext(environment: Any, facade: Any, private val analysisEnvironment: Any) : Closeable { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val environment: Any get() = throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public val facade: Any get() = throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public operator fun component1(): Any = throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public operator fun component2(): Any = throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - override fun close() { throw AnalysisApiDeprecatedError() } -} - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public class DokkaAnalysisConfiguration(public val ignoreCommonBuiltIns: Boolean = false) - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public fun KotlinAnalysis(context: DokkaContext): KotlinAnalysis = throw AnalysisApiDeprecatedError() - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public fun KotlinAnalysis( - sourceSets: List, - logger: DokkaLogger, - analysisConfiguration: DokkaAnalysisConfiguration = DokkaAnalysisConfiguration() -): KotlinAnalysis = throw AnalysisApiDeprecatedError() - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public fun ProjectKotlinAnalysis( - sourceSets: List, - logger: DokkaLogger, - analysisConfiguration: DokkaAnalysisConfiguration = DokkaAnalysisConfiguration() -): KotlinAnalysis = throw AnalysisApiDeprecatedError() - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public fun SamplesKotlinAnalysis( - sourceSets: List, - logger: DokkaLogger, - projectKotlinAnalysis: KotlinAnalysis, - analysisConfiguration: DokkaAnalysisConfiguration = DokkaAnalysisConfiguration() -): KotlinAnalysis = throw AnalysisApiDeprecatedError() - diff --git a/plugins/base/src/main/kotlin/deprecated/ParsersDeprecatedAPI.kt b/plugins/base/src/main/kotlin/deprecated/ParsersDeprecatedAPI.kt deleted file mode 100644 index 55b1daab..00000000 --- a/plugins/base/src/main/kotlin/deprecated/ParsersDeprecatedAPI.kt +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:Suppress("PackageDirectoryMismatch", "DEPRECATION_ERROR", "DeprecatedCallableAddReplaceWith", "unused") - -package org.jetbrains.dokka.base.parsers - -import org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE -import org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError -import org.jetbrains.dokka.links.DRI -import org.jetbrains.dokka.model.doc.DocTag -import org.jetbrains.dokka.model.doc.DocumentationNode -import org.jetbrains.dokka.model.doc.TagWrapper - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public abstract class Parser { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public open fun parseStringToDocNode(extractedString: String): DocTag = throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public open fun preparse(text: String): String = throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public open fun parseTagWithBody(tagName: String, content: String): TagWrapper = throw AnalysisApiDeprecatedError() -} - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public open class MarkdownParser( - private val externalDri: (String) -> DRI?, - private val kdocLocation: String?, -) : Parser() { - public companion object { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public fun parseFromKDocTag( - @Suppress("UNUSED_PARAMETER") kDocTag: Any?, - @Suppress("UNUSED_PARAMETER") externalDri: (String) -> DRI?, - @Suppress("UNUSED_PARAMETER") kdocLocation: String?, - @Suppress("UNUSED_PARAMETER") parseWithChildren: Boolean = true - ): DocumentationNode = throw AnalysisApiDeprecatedError() - } -} diff --git a/plugins/base/src/main/kotlin/deprecated/ParsersFactoriesDeprecatedAPI.kt b/plugins/base/src/main/kotlin/deprecated/ParsersFactoriesDeprecatedAPI.kt deleted file mode 100644 index 7b84803c..00000000 --- a/plugins/base/src/main/kotlin/deprecated/ParsersFactoriesDeprecatedAPI.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:Suppress("DeprecatedCallableAddReplaceWith", "PackageDirectoryMismatch", "unused") - -package org.jetbrains.dokka.base.parsers.factories - -import org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE -import org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError -import org.jetbrains.dokka.links.DRI -import org.jetbrains.dokka.model.doc.DocTag - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public object DocTagsFromStringFactory { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public fun getInstance( - @Suppress("UNUSED_PARAMETER") name: String, - @Suppress("UNUSED_PARAMETER") children: List = emptyList(), - @Suppress("UNUSED_PARAMETER") params: Map = emptyMap(), - @Suppress("UNUSED_PARAMETER") body: String? = null, - @Suppress("UNUSED_PARAMETER") dri: DRI? = null, - ): DocTag = throw AnalysisApiDeprecatedError() -} diff --git a/plugins/base/src/main/kotlin/deprecated/TranslatorDescriptorsDeprecatedAPI.kt b/plugins/base/src/main/kotlin/deprecated/TranslatorDescriptorsDeprecatedAPI.kt deleted file mode 100644 index 87d82ccf..00000000 --- a/plugins/base/src/main/kotlin/deprecated/TranslatorDescriptorsDeprecatedAPI.kt +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:Suppress("PackageDirectoryMismatch", "DEPRECATION_ERROR", "DeprecatedCallableAddReplaceWith", "unused") - -package org.jetbrains.dokka.base.translators.descriptors - -import org.jetbrains.dokka.DokkaConfiguration -import org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE -import org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError -import org.jetbrains.dokka.links.DRI -import org.jetbrains.dokka.model.DClasslike -import org.jetbrains.dokka.model.DModule -import org.jetbrains.dokka.plugability.DokkaContext -import org.jetbrains.dokka.transformers.sources.AsyncSourceToDocumentableTranslator - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public fun interface ExternalDocumentablesProvider { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public fun findClasslike(dri: DRI, sourceSet: DokkaConfiguration.DokkaSourceSet): DClasslike? -} - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public class DefaultExternalDocumentablesProvider( - @Suppress("UNUSED_PARAMETER") context: DokkaContext -) : ExternalDocumentablesProvider { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - override fun findClasslike(dri: DRI, sourceSet: DokkaConfiguration.DokkaSourceSet): DClasslike = - throw AnalysisApiDeprecatedError() -} - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public fun interface ExternalClasslikesTranslator { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - public fun translateClassDescriptor(descriptor: Any, sourceSet: DokkaConfiguration.DokkaSourceSet): DClasslike -} - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public class DefaultDescriptorToDocumentableTranslator( - private val context: DokkaContext -) : AsyncSourceToDocumentableTranslator, ExternalClasslikesTranslator { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - override suspend fun invokeSuspending(sourceSet: DokkaConfiguration.DokkaSourceSet, context: DokkaContext, ): DModule = - throw AnalysisApiDeprecatedError() - - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - override fun translateClassDescriptor(descriptor: Any, sourceSet: DokkaConfiguration.DokkaSourceSet): DClasslike = - throw AnalysisApiDeprecatedError() -} diff --git a/plugins/base/src/main/kotlin/deprecated/TranslatorPsiDeprecatedAPI.kt b/plugins/base/src/main/kotlin/deprecated/TranslatorPsiDeprecatedAPI.kt deleted file mode 100644 index 1906a7b1..00000000 --- a/plugins/base/src/main/kotlin/deprecated/TranslatorPsiDeprecatedAPI.kt +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:Suppress("PackageDirectoryMismatch", "DeprecatedCallableAddReplaceWith", "unused") - -package org.jetbrains.dokka.base.translators.psi - -import org.jetbrains.dokka.DokkaConfiguration -import org.jetbrains.dokka.base.deprecated.ANALYSIS_API_DEPRECATION_MESSAGE -import org.jetbrains.dokka.base.deprecated.AnalysisApiDeprecatedError -import org.jetbrains.dokka.model.DModule -import org.jetbrains.dokka.plugability.DokkaContext -import org.jetbrains.dokka.transformers.sources.AsyncSourceToDocumentableTranslator - -@Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) -public class DefaultPsiToDocumentableTranslator( - @Suppress("UNUSED_PARAMETER") context: DokkaContext, -) : AsyncSourceToDocumentableTranslator { - @Deprecated(message = ANALYSIS_API_DEPRECATION_MESSAGE, level = DeprecationLevel.ERROR) - override suspend fun invokeSuspending( - sourceSet: DokkaConfiguration.DokkaSourceSet, - context: DokkaContext, - ): DModule = throw AnalysisApiDeprecatedError() -} diff --git a/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt b/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt deleted file mode 100644 index 8ea109b9..00000000 --- a/plugins/base/src/main/kotlin/generation/SingleModuleGeneration.kt +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package org.jetbrains.dokka.base.generation - -import kotlinx.coroutines.* -import org.jetbrains.dokka.CoreExtensions -import org.jetbrains.dokka.DokkaConfiguration -import org.jetbrains.dokka.DokkaException -import org.jetbrains.dokka.Timer -import org.jetbrains.dokka.base.DokkaBase -import org.jetbrains.dokka.generation.Generation -import org.jetbrains.dokka.generation.exitGenerationGracefully -import org.jetbrains.dokka.model.DModule -import org.jetbrains.dokka.pages.RootPageNode -import org.jetbrains.dokka.plugability.DokkaContext -import org.jetbrains.dokka.plugability.plugin -import org.jetbrains.dokka.plugability.query -import org.jetbrains.dokka.transformers.sources.AsyncSourceToDocumentableTranslator -import org.jetbrains.dokka.utilities.parallelMap -import org.jetbrains.dokka.utilities.report - -public class SingleModuleGeneration(private val context: DokkaContext) : Generation { - - override fun Timer.generate() { - report("Validity check") - validityCheck(context) - - // Step 1: translate sources into documentables & transform documentables (change internally) - report("Creating documentation models") - val modulesFromPlatforms = createDocumentationModels() - - report("Transforming documentation model before merging") - val transformedDocumentationBeforeMerge = transformDocumentationModelBeforeMerge(modulesFromPlatforms) - - report("Merging documentation models") - val transformedDocumentationAfterMerge = mergeDocumentationModels(transformedDocumentationBeforeMerge) - ?: exitGenerationGracefully("Nothing to document") - - report("Transforming documentation model after merging") - val transformedDocumentation = transformDocumentationModelAfterMerge(transformedDocumentationAfterMerge) - - // Step 2: Generate pages & transform them (change internally) - report("Creating pages") - val pages = createPages(transformedDocumentation) - - report("Transforming pages") - val transformedPages = transformPages(pages) - - // Step 3: Rendering - report("Rendering") - render(transformedPages) - - report("Running post-actions") - runPostActions() - - reportAfterRendering() - } - - override val generationName: String = "documentation for ${context.configuration.moduleName}" - - /** - * Implementation note: it runs in a separated single thread due to existing support of coroutines (see #2936) - */ - @OptIn(DelicateCoroutinesApi::class, ExperimentalCoroutinesApi::class) - public fun createDocumentationModels(): List = newSingleThreadContext("Generating documentable model").use { coroutineContext -> // see https://github.com/Kotlin/dokka/issues/3151 - runBlocking(coroutineContext) { - context.configuration.sourceSets.parallelMap { sourceSet -> translateSources(sourceSet, context) }.flatten() - .also { modules -> if (modules.isEmpty()) exitGenerationGracefully("Nothing to document") } - } - } - - - public fun transformDocumentationModelBeforeMerge(modulesFromPlatforms: List): List { - return context.plugin() - .query { preMergeDocumentableTransformer } - .fold(modulesFromPlatforms) { acc, t -> t(acc) } - } - - public fun mergeDocumentationModels(modulesFromPlatforms: List): DModule? = - context.single(CoreExtensions.documentableMerger).invoke(modulesFromPlatforms) - - public fun transformDocumentationModelAfterMerge(documentationModel: DModule): DModule = - context[CoreExtensions.documentableTransformer].fold(documentationModel) { acc, t -> t(acc, context) } - - public fun createPages(transformedDocumentation: DModule): RootPageNode = - context.single(CoreExtensions.documentableToPageTranslator).invoke(transformedDocumentation) - - public fun transformPages(pages: RootPageNode): RootPageNode = - context[CoreExtensions.pageTransformer].fold(pages) { acc, t -> t(acc) } - - public fun render(transformedPages: RootPageNode) { - context.single(CoreExtensions.renderer).render(transformedPages) - } - - public fun runPostActions() { - context[CoreExtensions.postActions].forEach { it() } - } - - public fun validityCheck(context: DokkaContext) { - val (preGenerationCheckResult, checkMessages) = context[CoreExtensions.preGenerationCheck].fold( - Pair(true, emptyList()) - ) { acc, checker -> checker() + acc } - if (!preGenerationCheckResult) throw DokkaException( - "Pre-generation validity check failed: ${checkMessages.joinToString(",")}" - ) - } - - public fun reportAfterRendering() { - context.unusedPoints.takeIf { it.isNotEmpty() }?.also { - context.logger.info("Unused extension points found: ${it.joinToString(", ")}") - } - - context.logger.report() - - if (context.configuration.failOnWarning && (context.logger.warningsCount > 0 || context.logger.errorsCount > 0)) { - throw DokkaException( - "Failed with warningCount=${context.logger.warningsCount} and errorCount=${context.logger.errorsCount}" - ) - } - } - - private suspend fun translateSources(sourceSet: DokkaConfiguration.DokkaSourceSet, context: DokkaContext) = - context[CoreExtensions.sourceToDocumentableTranslator].parallelMap { translator -> - when (translator) { - is AsyncSourceToDocumentableTranslator -> translator.invokeSuspending(sourceSet, context) - else -> translator.invoke(sourceSet, context) - } - } -} diff --git a/plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt b/plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt deleted file mode 100644 index eed7794e..00000000 --- a/plugins/base/src/main/kotlin/renderers/DefaultRenderer.kt +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package org.jetbrains.dokka.base.renderers - -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.launch -import kotlinx.coroutines.runBlocking -import org.jetbrains.dokka.DokkaException -import org.jetbrains.dokka.base.DokkaBase -import org.jetbrains.dokka.base.resolvers.local.LocationProvider -import org.jetbrains.dokka.model.DisplaySourceSet -import org.jetbrains.dokka.pages.* -import org.jetbrains.dokka.plugability.DokkaContext -import org.jetbrains.dokka.plugability.plugin -import org.jetbrains.dokka.plugability.querySingle -import org.jetbrains.dokka.renderers.Renderer -import org.jetbrains.dokka.transformers.pages.PageTransformer - -public abstract class DefaultRenderer( - protected val context: DokkaContext -) : Renderer { - - protected val outputWriter: OutputWriter = context.plugin().querySingle { outputWriter } - - protected lateinit var locationProvider: LocationProvider - private set - - protected open val preprocessors: Iterable = emptyList() - - public abstract fun T.buildHeader(level: Int, node: ContentHeader, content: T.() -> Unit) - public abstract fun T.buildLink(address: String, content: T.() -> Unit) - public abstract fun T.buildList( - node: ContentList, - pageContext: ContentPage, - sourceSetRestriction: Set? = null - ) - - public abstract fun T.buildLineBreak() - public open fun T.buildLineBreak(node: ContentBreakLine, pageContext: ContentPage) { - buildLineBreak() - } - - public abstract fun T.buildResource(node: ContentEmbeddedResource, pageContext: ContentPage) - public abstract fun T.buildTable( - node: ContentTable, - pageContext: ContentPage, - sourceSetRestriction: Set? = null - ) - - public abstract fun T.buildText(textNode: ContentText) - public abstract fun T.buildNavigation(page: PageNode) - - public abstract fun buildPage(page: ContentPage, content: (T, ContentPage) -> Unit): String - public abstract fun buildError(node: ContentNode) - - public open fun T.buildPlatformDependent( - content: PlatformHintedContent, - pageContext: ContentPage, - sourceSetRestriction: Set? - ) { - buildContentNode(content.inner, pageContext) - } - - public open fun T.buildGroup( - node: ContentGroup, - pageContext: ContentPage, - sourceSetRestriction: Set? = null - ) { - wrapGroup(node, pageContext) { node.children.forEach { it.build(this, pageContext, sourceSetRestriction) } } - } - - public open fun T.buildDivergent(node: ContentDivergentGroup, pageContext: ContentPage) { - node.children.forEach { it.build(this, pageContext) } - } - - public open fun T.wrapGroup(node: ContentGroup, pageContext: ContentPage, childrenCallback: T.() -> Unit) { - childrenCallback() - } - - public open fun T.buildText( - nodes: List, - pageContext: ContentPage, - sourceSetRestriction: Set? = null - ) { - nodes.forEach { it.build(this, pageContext, sourceSetRestriction) } - } - - public open fun T.buildCodeBlock(code: ContentCodeBlock, pageContext: ContentPage) { - code.children.forEach { it.build(this, pageContext) } - } - - public open fun T.buildCodeInline(code: ContentCodeInline, pageContext: ContentPage) { - code.children.forEach { it.build(this, pageContext) } - } - - public open fun T.buildHeader( - node: ContentHeader, - pageContext: ContentPage, - sourceSetRestriction: Set? = null - ) { - buildHeader(node.level, node) { node.children.forEach { it.build(this, pageContext, sourceSetRestriction) } } - } - - public open fun ContentNode.build( - builder: T, - pageContext: ContentPage, - sourceSetRestriction: Set? = null - ) { - builder.buildContentNode(this, pageContext, sourceSetRestriction) - } - - public fun T.buildContentNode( - node: ContentNode, - pageContext: ContentPage, - sourceSetRestriction: DisplaySourceSet - ) { - buildContentNode(node, pageContext, setOf(sourceSetRestriction)) - } - - public open fun T.buildContentNode( - node: ContentNode, - pageContext: ContentPage, - sourceSetRestriction: Set? = null - ) { - if (sourceSetRestriction.isNullOrEmpty() || node.sourceSets.any { it in sourceSetRestriction }) { - when (node) { - is ContentText -> buildText(node) - is ContentHeader -> buildHeader(node, pageContext, sourceSetRestriction) - is ContentCodeBlock -> buildCodeBlock(node, pageContext) - is ContentCodeInline -> buildCodeInline(node, pageContext) - is ContentDRILink -> buildDRILink(node, pageContext, sourceSetRestriction) - is ContentResolvedLink -> buildResolvedLink(node, pageContext, sourceSetRestriction) - is ContentEmbeddedResource -> buildResource(node, pageContext) - is ContentList -> buildList(node, pageContext, sourceSetRestriction) - is ContentTable -> buildTable(node, pageContext, sourceSetRestriction) - is ContentGroup -> buildGroup(node, pageContext, sourceSetRestriction) - is ContentBreakLine -> buildLineBreak(node, pageContext) - is PlatformHintedContent -> buildPlatformDependent(node, pageContext, sourceSetRestriction) - is ContentDivergentGroup -> buildDivergent(node, pageContext) - is ContentDivergentInstance -> buildDivergentInstance(node, pageContext) - else -> buildError(node) - } - } - } - - public open fun T.buildDRILink( - node: ContentDRILink, - pageContext: ContentPage, - sourceSetRestriction: Set? - ) { - locationProvider.resolve(node.address, node.sourceSets, pageContext)?.let { address -> - buildLink(address) { - buildText(node.children, pageContext, sourceSetRestriction) - } - } ?: buildText(node.children, pageContext, sourceSetRestriction) - } - - public open fun T.buildResolvedLink( - node: ContentResolvedLink, - pageContext: ContentPage, - sourceSetRestriction: Set? - ) { - buildLink(node.address) { - buildText(node.children, pageContext, sourceSetRestriction) - } - } - - public open fun T.buildDivergentInstance(node: ContentDivergentInstance, pageContext: ContentPage) { - node.before?.build(this, pageContext) - node.divergent.build(this, pageContext) - node.after?.build(this, pageContext) - } - - public open fun buildPageContent(context: T, page: ContentPage) { - context.buildNavigation(page) - page.content.build(context, page) - } - - public open suspend fun renderPage(page: PageNode) { - val path by lazy { - locationProvider.resolve(page, skipExtension = true) - ?: throw DokkaException("Cannot resolve path for ${page.name}") - } - when (page) { - is ContentPage -> outputWriter.write(path, buildPage(page) { c, p -> buildPageContent(c, p) }, ".html") - is RendererSpecificPage -> when (val strategy = page.strategy) { - is RenderingStrategy.Copy -> outputWriter.writeResources(strategy.from, path) - is RenderingStrategy.Write -> outputWriter.write(path, strategy.text, "") - is RenderingStrategy.Callback -> outputWriter.write(path, strategy.instructions(this, page), ".html") - is RenderingStrategy.DriLocationResolvableWrite -> outputWriter.write( - path, - strategy.contentToResolve { dri, sourcesets -> - locationProvider.resolve(dri, sourcesets) - }, - "" - ) - is RenderingStrategy.PageLocationResolvableWrite -> outputWriter.write( - path, - strategy.contentToResolve { pageToLocate, context -> - locationProvider.resolve(pageToLocate, context) - }, - "" - ) - RenderingStrategy.DoNothing -> Unit - } - else -> throw AssertionError( - "Page ${page.name} cannot be rendered by renderer as it is not renderer specific nor contains content" - ) - } - } - - private suspend fun renderPages(root: PageNode) { - coroutineScope { - renderPage(root) - - root.children.forEach { - launch { renderPages(it) } - } - } - } - - override fun render(root: RootPageNode) { - val newRoot = preprocessors.fold(root) { acc, t -> t(acc) } - - locationProvi