diff options
58 files changed, 656 insertions, 564 deletions
diff --git a/core/src/main/kotlin/DokkaBootstrapImpl.kt b/core/src/main/kotlin/DokkaBootstrapImpl.kt index 94792303..bd632546 100644 --- a/core/src/main/kotlin/DokkaBootstrapImpl.kt +++ b/core/src/main/kotlin/DokkaBootstrapImpl.kt @@ -84,7 +84,7 @@ class DokkaBootstrapImpl : DokkaBootstrap { fun configure(logger: DokkaLogger, configuration: DokkaConfigurationImpl) = with(configuration) { - fun defaultLinks(config: PassConfigurationImpl): List<ExternalDocumentationLinkImpl> { + fun defaultLinks(config: DokkaSourceSetImpl): List<ExternalDocumentationLinkImpl> { val links = mutableListOf<ExternalDocumentationLinkImpl>() if (!config.noJdkLink) links += DokkaConfiguration.ExternalDocumentationLink @@ -100,8 +100,8 @@ class DokkaBootstrapImpl : DokkaBootstrap { val configurationWithLinks = configuration.copy( - passesConfigurations = - passesConfigurations.map { + sourceSets = + sourceSets.map { val links: List<ExternalDocumentationLinkImpl> = it.externalDocumentationLinks + defaultLinks(it) it.copy(externalDocumentationLinks = links) diff --git a/core/src/main/kotlin/DokkaGenerator.kt b/core/src/main/kotlin/DokkaGenerator.kt index b88c6223..ce8d229a 100644 --- a/core/src/main/kotlin/DokkaGenerator.kt +++ b/core/src/main/kotlin/DokkaGenerator.kt @@ -1,8 +1,7 @@ package org.jetbrains.dokka import org.jetbrains.dokka.model.DModule -import org.jetbrains.dokka.model.SourceSetCache -import org.jetbrains.dokka.model.SourceSetData +import org.jetbrains.dokka.DokkaConfiguration.* import org.jetbrains.dokka.pages.RootPageNode import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.plugability.DokkaPlugin @@ -18,13 +17,11 @@ class DokkaGenerator( private val logger: DokkaLogger ) { fun generate() = timed { - val sourceSetsCache = SourceSetCache() - report("Initializing plugins") - val context = initializePlugins(configuration, logger, sourceSetsCache) + val context = initializePlugins(configuration, logger) report("Creating documentation models") - val modulesFromPlatforms = createDocumentationModels(context, sourceSetsCache) + val modulesFromPlatforms = createDocumentationModels(context) report("Transforming documentation model before merging") val transformedDocumentationBeforeMerge = transformDocumentationModelBeforeMerge(modulesFromPlatforms, context) @@ -48,9 +45,8 @@ class DokkaGenerator( }.dump("\n\n === TIME MEASUREMENT ===\n") fun generateAllModulesPage() = timed { - val sourceSetsCache = SourceSetCache() report("Initializing plugins") - val context = initializePlugins(configuration, logger, sourceSetsCache) + val context = initializePlugins(configuration, logger) report("Creating all modules page") val pages = createAllModulePage(context) @@ -66,15 +62,12 @@ class DokkaGenerator( fun initializePlugins( configuration: DokkaConfiguration, logger: DokkaLogger, - sourceSetsCache: SourceSetCache, pluginOverrides: List<DokkaPlugin> = emptyList() - ) = DokkaContext.create(configuration, logger, sourceSetsCache, pluginOverrides) + ) = DokkaContext.create(configuration, logger, pluginOverrides) fun createDocumentationModels( - context: DokkaContext, - sourceSetsCache: SourceSetCache - ) = context.configuration.passesConfigurations - .map { passConfiguration -> sourceSetsCache.getSourceSet(passConfiguration) } + context: DokkaContext + ) = context.configuration.sourceSets .flatMap { passConfiguration -> translateSources(passConfiguration, context) } fun transformDocumentationModelBeforeMerge( @@ -133,9 +126,9 @@ class DokkaGenerator( } } - private fun translateSources(platformData: SourceSetData, context: DokkaContext) = + private fun translateSources(sourceSet: DokkaSourceSet, context: DokkaContext) = context[CoreExtensions.sourceToDocumentableTranslator].map { - it.invoke(platformData, context) + it.invoke(sourceSet, context) } } diff --git a/core/src/main/kotlin/configuration.kt b/core/src/main/kotlin/configuration.kt index b016f83d..463d2342 100644 --- a/core/src/main/kotlin/configuration.kt +++ b/core/src/main/kotlin/configuration.kt @@ -49,12 +49,12 @@ interface DokkaConfiguration { val cacheRoot: String? val offlineMode: Boolean val failOnWarning: Boolean - val passesConfigurations: List<PassConfiguration> + val sourceSets: List<DokkaSourceSet> val modules: List<DokkaModuleDescription> val pluginsClasspath: List<File> val pluginsConfiguration: Map<String, String> - interface PassConfiguration { + interface DokkaSourceSet { val moduleName: String val displayName: String val sourceSetID: String diff --git a/core/src/main/kotlin/defaultConfiguration.kt b/core/src/main/kotlin/defaultConfiguration.kt index 4e83d3c3..d3ac9df2 100644 --- a/core/src/main/kotlin/defaultConfiguration.kt +++ b/core/src/main/kotlin/defaultConfiguration.kt @@ -8,14 +8,14 @@ data class DokkaConfigurationImpl( override val format: String, override val cacheRoot: String?, override val offlineMode: Boolean, - override val passesConfigurations: List<PassConfigurationImpl>, + override val sourceSets: List<DokkaSourceSetImpl>, override val pluginsClasspath: List<File>, override val pluginsConfiguration: Map<String, String>, override val modules: List<DokkaModuleDescriptionImpl>, override val failOnWarning: Boolean ) : DokkaConfiguration -data class PassConfigurationImpl( +data class DokkaSourceSetImpl( override val moduleName: String, override val displayName: String, override val sourceSetID: String, @@ -39,7 +39,7 @@ data class PassConfigurationImpl( override val noJdkLink: Boolean, override val suppressedFiles: List<String>, override val analysisPlatform: Platform -) : DokkaConfiguration.PassConfiguration +) : DokkaConfiguration.DokkaSourceSet data class DokkaModuleDescriptionImpl( override val name: String, diff --git a/core/src/main/kotlin/model/Documentable.kt b/core/src/main/kotlin/model/Documentable.kt index 768bddc5..35278302 100644 --- a/core/src/main/kotlin/model/Documentable.kt +++ b/core/src/main/kotlin/model/Documentable.kt @@ -1,5 +1,6 @@ package org.jetbrains.dokka.model +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.doc.DocumentationNode import org.jetbrains.dokka.model.properties.PropertyContainer @@ -11,8 +12,8 @@ abstract class Documentable { abstract val dri: DRI abstract val children: List<Documentable> abstract val documentation: SourceSetDependent<DocumentationNode> - abstract val sourceSets: Set<SourceSetData> - abstract val expectPresentInSet: SourceSetData? + abstract val sourceSets: Set<DokkaSourceSet> + abstract val expectPresentInSet: DokkaSourceSet? override fun toString(): String = "${javaClass.simpleName}($dri)" @@ -23,7 +24,7 @@ abstract class Documentable { override fun hashCode() = dri.hashCode() } -typealias SourceSetDependent<T> = Map<SourceSetData, T> +typealias SourceSetDependent<T> = Map<DokkaSourceSet, T> interface WithExpectActual { val sources: SourceSetDependent<DocumentableSource> @@ -88,8 +89,8 @@ data class DModule( override val name: String, val packages: List<DPackage>, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData? = null, - override val sourceSets: Set<SourceSetData>, + override val expectPresentInSet: DokkaSourceSet? = null, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DModule> = PropertyContainer.empty() ) : Documentable(), WithExtraProperties<DModule> { override val dri: DRI = DRI.topLevel @@ -106,8 +107,8 @@ data class DPackage( override val classlikes: List<DClasslike>, val typealiases: List<DTypeAlias>, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData? = null, - override val sourceSets: Set<SourceSetData>, + override val expectPresentInSet: DokkaSourceSet? = null, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DPackage> = PropertyContainer.empty() ) : Documentable(), WithScope, WithExtraProperties<DPackage> { override val name = dri.packageName.orEmpty() @@ -130,9 +131,9 @@ data class DClass( override val generics: List<DTypeParameter>, override val supertypes: SourceSetDependent<List<DRI>>, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, override val modifier: SourceSetDependent<Modifier>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DClass> = PropertyContainer.empty() ) : DClasslike(), WithAbstraction, WithCompanion, WithConstructors, WithGenerics, WithSupertypes, WithExtraProperties<DClass> { @@ -148,7 +149,7 @@ data class DEnum( override val name: String, val entries: List<DEnumEntry>, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, override val sources: SourceSetDependent<DocumentableSource>, override val functions: List<DFunction>, override val properties: List<DProperty>, @@ -157,7 +158,7 @@ data class DEnum( override val companion: DObject?, override val constructors: List<DFunction>, override val supertypes: SourceSetDependent<List<DRI>>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DEnum> = PropertyContainer.empty() ) : DClasslike(), WithCompanion, WithConstructors, WithSupertypes, WithExtraProperties<DEnum> { override val children: List<Documentable> @@ -170,11 +171,11 @@ data class DEnumEntry( override val dri: DRI, override val name: String, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, override val functions: List<DFunction>, override val properties: List<DProperty>, override val classlikes: List<DClasslike>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DEnumEntry> = PropertyContainer.empty() ) : Documentable(), WithScope, WithExtraProperties<DEnumEntry> { override val children: List<Documentable> @@ -189,14 +190,14 @@ data class DFunction( val isConstructor: Boolean, val parameters: List<DParameter>, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, override val sources: SourceSetDependent<DocumentableSource>, override val visibility: SourceSetDependent<Visibility>, override val type: Bound, override val generics: List<DTypeParameter>, override val receiver: DParameter?, override val modifier: SourceSetDependent<Modifier>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DFunction> = PropertyContainer.empty() ) : Documentable(), Callable, WithGenerics, WithExtraProperties<DFunction> { override val children: List<Documentable> @@ -209,7 +210,7 @@ data class DInterface( override val dri: DRI, override val name: String, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, override val sources: SourceSetDependent<DocumentableSource>, override val functions: List<DFunction>, override val properties: List<DProperty>, @@ -218,7 +219,7 @@ data class DInterface( override val companion: DObject?, override val generics: List<DTypeParameter>, override val supertypes: SourceSetDependent<List<DRI>>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DInterface> = PropertyContainer.empty() ) : DClasslike(), WithCompanion, WithGenerics, WithSupertypes, WithExtraProperties<DInterface> { override val children: List<Documentable> @@ -231,14 +232,14 @@ data class DObject( override val name: String?, override val dri: DRI, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, override val sources: SourceSetDependent<DocumentableSource>, override val functions: List<DFunction>, override val properties: List<DProperty>, override val classlikes: List<DClasslike>, override val visibility: SourceSetDependent<Visibility>, override val supertypes: SourceSetDependent<List<DRI>>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DObject> = PropertyContainer.empty() ) : DClasslike(), WithSupertypes, WithExtraProperties<DObject> { override val children: List<Documentable> @@ -251,7 +252,7 @@ data class DAnnotation( override val name: String, override val dri: DRI, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, override val sources: SourceSetDependent<DocumentableSource>, override val functions: List<DFunction>, override val properties: List<DProperty>, @@ -260,7 +261,7 @@ data class DAnnotation( override val companion: DObject?, override val constructors: List<DFunction>, override val generics: List<DTypeParameter>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DAnnotation> = PropertyContainer.empty() ) : DClasslike(), WithCompanion, WithConstructors, WithExtraProperties<DAnnotation>, WithGenerics { override val children: List<Documentable> @@ -273,7 +274,7 @@ data class DProperty( override val dri: DRI, override val name: String, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, override val sources: SourceSetDependent<DocumentableSource>, override val visibility: SourceSetDependent<Visibility>, override val type: Bound, @@ -281,7 +282,7 @@ data class DProperty( val setter: DFunction?, val getter: DFunction?, override val modifier: SourceSetDependent<Modifier>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val generics: List<DTypeParameter>, override val extra: PropertyContainer<DProperty> = PropertyContainer.empty() ) : Documentable(), Callable, WithExtraProperties<DProperty>, WithGenerics { @@ -296,9 +297,9 @@ data class DParameter( override val dri: DRI, override val name: String?, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, val type: Bound, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DParameter> = PropertyContainer.empty() ) : Documentable(), WithExtraProperties<DParameter> { override val children: List<Nothing> @@ -311,9 +312,9 @@ data class DTypeParameter( override val dri: DRI, override val name: String, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, + override val expectPresentInSet: DokkaSourceSet?, val bounds: List<Bound>, - override val sourceSets: Set<SourceSetData>, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DTypeParameter> = PropertyContainer.empty() ) : Documentable(), WithExtraProperties<DTypeParameter> { override val children: List<Nothing> @@ -329,8 +330,8 @@ data class DTypeAlias( val underlyingType: SourceSetDependent<Bound>, override val visibility: SourceSetDependent<Visibility>, override val documentation: SourceSetDependent<DocumentationNode>, - override val expectPresentInSet: SourceSetData?, - override val sourceSets: Set<SourceSetData>, + override val expectPresentInSet: DokkaSourceSet?, + override val sourceSets: Set<DokkaSourceSet>, override val extra: PropertyContainer<DTypeAlias> = PropertyContainer.empty() ) : Documentable(), WithType, WithVisibility, WithExtraProperties<DTypeAlias> { override val children: List<Nothing> diff --git a/core/src/main/kotlin/model/SourceSetData.kt b/core/src/main/kotlin/model/SourceSetData.kt deleted file mode 100644 index 3e38cc7b..00000000 --- a/core/src/main/kotlin/model/SourceSetData.kt +++ /dev/null @@ -1,38 +0,0 @@ -package org.jetbrains.dokka.model - -import org.jetbrains.dokka.DokkaConfiguration -import org.jetbrains.dokka.Platform -import org.jetbrains.dokka.plugability.DokkaContext - -data class SourceSetData( - val moduleName: String, - val sourceSetID: String, - val displayName: String, - val platform: Platform, - val sourceRoots: List<DokkaConfiguration.SourceRoot> = emptyList(), - val dependentSourceSets: List<String> = emptyList() -) - -class SourceSetCache { - private val sourceSets = HashMap<String, SourceSetData>() - - val allSourceSets: List<SourceSetData> - get() = sourceSets.values.toList() - - fun getSourceSet(pass: DokkaConfiguration.PassConfiguration) = - sourceSets.getOrPut(pass.sourceSetID, - { - SourceSetData( - pass.moduleName, - pass.sourceSetID, - pass.displayName, - pass.analysisPlatform, - pass.sourceRoots, - pass.dependentSourceSets - ) - } - ) -} - -fun DokkaContext.sourceSet(pass: DokkaConfiguration.PassConfiguration): SourceSetData = - sourceSetCache.getSourceSet(pass)
\ No newline at end of file diff --git a/core/src/main/kotlin/model/documentableProperties.kt b/core/src/main/kotlin/model/documentableProperties.kt index 2aec199c..cd6a9335 100644 --- a/core/src/main/kotlin/model/documentableProperties.kt +++ b/core/src/main/kotlin/model/documentableProperties.kt @@ -1,26 +1,26 @@ package org.jetbrains.dokka.model +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.properties.ExtraProperty import org.jetbrains.dokka.model.properties.MergeStrategy -data class InheritedFunction(val inheritedFrom: SourceSetDependent<DRI?>): ExtraProperty<DFunction> { +data class InheritedFunction(val inheritedFrom: SourceSetDependent<DRI?>) : ExtraProperty<DFunction> { companion object : ExtraProperty.Key<DFunction, InheritedFunction> { override fun mergeStrategyFor(left: InheritedFunction, right: InheritedFunction) = MergeStrategy.Replace( InheritedFunction(left.inheritedFrom + right.inheritedFrom) ) } - fun isInherited(sourceSetDependent: SourceSetData): Boolean = inheritedFrom[sourceSetDependent] != null + fun isInherited(sourceSetDependent: DokkaSourceSet): Boolean = inheritedFrom[sourceSetDependent] != null |
