diff options
Diffstat (limited to 'plugins/base/src/main/kotlin/translators')
4 files changed, 160 insertions, 91 deletions
diff --git a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt index cefea4ec..9cdd251c 100644 --- a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt +++ b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt @@ -1,5 +1,6 @@ package org.jetbrains.dokka.base.translators.descriptors +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet import org.jetbrains.dokka.analysis.* import org.jetbrains.dokka.links.* import org.jetbrains.dokka.links.Callable @@ -50,13 +51,12 @@ import org.jetbrains.kotlin.resolve.constants.AnnotationValue as ConstantsAnnota import org.jetbrains.kotlin.resolve.constants.ArrayValue as ConstantsArrayValue import org.jetbrains.kotlin.resolve.constants.EnumValue as ConstantsEnumValue import org.jetbrains.kotlin.resolve.constants.KClassValue as ConstantsKtClassValue -import kotlin.IllegalArgumentException class DefaultDescriptorToDocumentableTranslator( private val kotlinAnalysis: KotlinAnalysis ) : SourceToDocumentableTranslator { - override fun invoke(sourceSet: SourceSetData, context: DokkaContext): DModule { + override fun invoke(sourceSet: DokkaSourceSet, context: DokkaContext): DModule { val (environment, facade) = kotlinAnalysis[sourceSet] val packageFragments = environment.getSourceFiles().asSequence() .map { it.packageFqName } @@ -83,7 +83,7 @@ data class DRIWithPlatformInfo( fun DRI.withEmptyInfo() = DRIWithPlatformInfo(this, emptyMap()) private class DokkaDescriptorVisitor( - private val sourceSet: SourceSetData, + private val sourceSet: DokkaSourceSet, private val resolutionFacade: DokkaResolutionFacade, private val logger: DokkaLogger ) : DeclarationDescriptorVisitorEmptyBodies<Documentable, DRIWithPlatformInfo>() { @@ -729,11 +729,11 @@ private class DokkaDescriptorVisitor( private fun KtInitializerList.initializersAsText() = initializers.firstIsInstanceOrNull<KtCallElement>() - ?.getValueArgumentsInParentheses() - ?.flatMap { it.childrenAsText() } - .orEmpty() + ?.getValueArgumentsInParentheses() + ?.flatMap { it.childrenAsText() } + .orEmpty() - private fun ValueArgument.childrenAsText() = this.safeAs<KtValueArgument>()?.children?.map {it.text }.orEmpty() + private fun ValueArgument.childrenAsText() = this.safeAs<KtValueArgument>()?.children?.map { it.text }.orEmpty() private data class ClassInfo(val superclasses: List<DRI>, val interfaces: List<DRI>, val docs: SourceSetDependent<DocumentationNode>){ val supertypes: List<DRI> @@ -751,11 +751,12 @@ private class DokkaDescriptorVisitor( private fun ConstantsEnumValue.fullEnumEntryName() = "${this.enumClassId.relativeClassName.asString()}.${this.enumEntryName.identifier}" - private fun fallbackPackageName(): String = "[${sourceSet.displayName} root]"// TODO: error-prone, find a better way to do it + private fun fallbackPackageName(): String = + "[${sourceSet.displayName} root]"// TODO: error-prone, find a better way to do it } private fun DRI.withPackageFallbackTo(fallbackPackage: String): DRI { - return if(packageName.isNullOrBlank()){ + return if (packageName.isNullOrBlank()) { copy(packageName = fallbackPackage) } else { this diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt index 3fa950ed..c94b1814 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt @@ -1,5 +1,6 @@ package org.jetbrains.dokka.base.translators.documentables +import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.base.signatures.SignatureProvider import org.jetbrains.dokka.base.transformers.documentables.InheritorsInfo import org.jetbrains.dokka.base.transformers.pages.comments.CommentsToContentConverter @@ -14,8 +15,9 @@ import org.jetbrains.dokka.utilities.DokkaLogger import org.jetbrains.kotlin.utils.addToStdlib.safeAs import kotlin.reflect.KClass import kotlin.reflect.full.isSubclassOf +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet -private typealias GroupedTags = Map<KClass<out TagWrapper>, List<Pair<SourceSetData?, TagWrapper>>> +private typealias GroupedTags = Map<KClass<out TagWrapper>, List<Pair<DokkaSourceSet?, TagWrapper>>> private val specialTags: Set<KClass<out TagWrapper>> = setOf(Property::class, Description::class, Constructor::class, Receiver::class, Param::class, See::class) @@ -71,8 +73,13 @@ open class DefaultPageCreator( protected open fun contentForModule(m: DModule) = contentBuilder.contentFor(m) { group(kind = ContentKind.Cover) { cover(m.name) - if(contentForDescription(m).isNotEmpty()){ - sourceSetDependentHint(m.dri, m.sourceSets.toSet(), kind = ContentKind.SourceSetDependantHint, styles = setOf(TextStyle.UnderCoverText)){ + if (contentForDescription(m).isNotEmpty()) { + sourceSetDependentHint( + m.dri, + m.sourceSets.toSet(), + kind = ContentKind.SourceSetDependantHint, + styles = setOf(TextStyle.UnderCoverText) + ) { +contentForDescription(m) } } @@ -88,13 +95,18 @@ open class DefaultPageCreator( protected open fun contentForPackage(p: DPackage) = contentBuilder.contentFor(p) { group(kind = ContentKind.Cover) { cover("Package ${p.name}") - if(contentForDescription(p).isNotEmpty()){ - sourceSetDependentHint(p.dri, p.sourceSets.toSet(), kind = ContentKind.SourceSetDependantHint, styles = setOf(TextStyle.UnderCoverText)){ + if (contentForDescription(p).isNotEmpty()) { + sourceSetDependentHint( + p.dri, + p.sourceSets.toSet(), + kind = ContentKind.SourceSetDependantHint, + styles = setOf(TextStyle.UnderCoverText) + ) { +contentForDescription(p) } } } - group(styles = setOf(ContentStyle.TabbedContent)){ + group(styles = setOf(ContentStyle.TabbedContent)) { +contentForComments(p) +contentForScope(p, p.dri, p.sourceSets) } @@ -103,15 +115,27 @@ open class DefaultPageCreator( protected open fun contentForScope( s: WithScope, dri: DRI, - sourceSets: Set<SourceSetData> + sourceSets: Set<DokkaSourceSet> ) = contentBuilder.contentFor(s as Documentable) { val types = listOf( s.classlikes, (s as? DPackage)?.typealiases ?: emptyList() ).flatten() divergentBlock("Types", types, ContentKind.Classlikes, extra = mainExtra + SimpleAttr.header("Types")) - divergentBlock("Functions", s.functions, ContentKind.Functions, extra = mainExtra + SimpleAttr.header( "Functions")) - block("Properties", 2, ContentKind.Properties, s.properties, sourceSets.toSet(), extra = mainExtra + SimpleAttr.header( "Properties")) { + divergentBlock( + "Functions", + s.functions, + ContentKind.Functions, + extra = mainExtra + SimpleAttr.header("Functions") + ) + block( + "Properties", + 2, + ContentKind.Properties, + s.properties, + sourceSets.toSet(), + extra = mainExtra + SimpleAttr.header("Properties") + ) { link(it.name, it.dri, kind = ContentKind.Main) sourceSetDependentHint(it.dri, it.sourceSets.toSet(), kind = ContentKind.SourceSetDependantHint) { contentForBrief(it) @@ -136,7 +160,7 @@ open class DefaultPageCreator( DCI(setOf(dri), ContentKind.Inheritors), sourceSets.toSet(), style = emptySet(), - extra = mainExtra + SimpleAttr.header( "Inheritors") + extra = mainExtra + SimpleAttr.header("Inheritors") ) } } @@ -150,7 +174,7 @@ open class DefaultPageCreator( +buildSignature(e) } } - group(styles = setOf(ContentStyle.TabbedContent)){ + group(styles = setOf(ContentStyle.TabbedContent)) { +contentForComments(e) +contentForScope(e, e.dri, e.sourceSets) } @@ -177,14 +201,28 @@ open class DefaultPageCreator( extra = PropertyContainer.empty<ContentNode>() + SimpleAttr.header("Constructors") ) { link(it.name, it.dri, kind = ContentKind.Main) - sourceSetDependentHint(it.dri, it.sourceSets.toSet(), kind = ContentKind.SourceSetDependantHint, styles = emptySet()) { + sourceSetDependentHint( + it.dri, + it.sourceSets.toSet(), + kind = ContentKind.SourceSetDependantHint, + styles = emptySet() + ) { contentForBrief(it) +buildSignature(it) } } } if (c is DEnum) { - block("Entries", 2, ContentKind.Classlikes, c.entries, c.sourceSets.toSet(), needsSorting = false, extra = mainExtra + SimpleAttr.header("Entries"), styles = emptySet()) { + block( + "Entries", + 2, + ContentKind.Classlikes, + c.entries, + c.sourceSets.toSet(), + needsSorting = false, + extra = mainExtra + SimpleAttr.header("Entries"), + styles = emptySet() + ) { link(it.name, it.dri) sourceSetDependentHint(it.dri, it.sourceSets.toSet(), kind = ContentKind.SourceSetDependantHint) { contentForBrief(it) @@ -198,11 +236,11 @@ open class DefaultPageCreator( @Suppress("UNCHECKED_CAST") private inline fun <reified T : TagWrapper> GroupedTags.withTypeUnnamed(): SourceSetDependent<T> = - (this[T::class] as List<Pair<SourceSetData, T>>?)?.toMap().orEmpty() + (this[T::class] as List<Pair<DokkaSourceSet, T>>?)?.toMap().orEmpty() @Suppress("UNCHECKED_CAST") private inline fun <reified T : NamedTagWrapper> GroupedTags.withTypeNamed(): Map<String, SourceSetDependent<T>> = - (this[T::class] as List<Pair<SourceSetData, T>>?) + (this[T::class] as List<Pair<DokkaSourceSet, T>>?) ?.groupBy { it.second.name } ?.mapValues { (_, v) -> v.toMap() } ?.toSortedMap(String.CASE_INSENSITIVE_ORDER) @@ -234,8 +272,8 @@ open class DefaultPageCreator( val unnamedTags: List<SourceSetDependent<TagWrapper>> = tags.filterNot { (k, _) -> k.isSubclassOf(NamedTagWrapper::class) || k in specialTags } - .map { (_, v) -> v.mapNotNull { (k,v) -> k?.let { it to v } }.toMap() } - if(unnamedTags.isNotEmpty()){ + .map { (_, v) -> v.mapNotNull { (k, v) -> k?.let { it to v } }.toMap() } + if (unnamedTags.isNotEmpty()) { platforms.forEach { platform -> unnamedTags.forEach { pdTag -> pdTag[platform]?.also { tag -> @@ -252,10 +290,10 @@ open class DefaultPageCreator( }.children } - private fun Documentable.getPossibleFallbackSourcesets(sourceSet: SourceSetData) = + private fun Documentable.getPossibleFallbackSourcesets(sourceSet: DokkaSourceSet) = this.sourceSets.filter { it.sourceSetID in sourceSet.dependentSourceSets } - private fun <V> Map<SourceSetData, V>.fallback(sourceSets: List<SourceSetData>) : V? = + private fun <V> Map<DokkaSourceSet, V>.fallback(sourceSets: List<DokkaSourceSet>): V? = sourceSets.firstOrNull { it in this.keys }.let { this[it] } protected open fun contentForComments( @@ -270,7 +308,10 @@ open class DefaultPageCreator( fun DocumentableContentBuilder.contentForParams() { if (tags.isNotEmptyForTag<Param>()) { header(2, "Parameters") - group(extra = mainExtra + SimpleAttr.header("Parameters"), styles = setOf(ContentStyle.WithExtraAttributes)){ + group( + extra = mainExtra + SimpleAttr.header("Parameters"), + styles = setOf(ContentStyle.WithExtraAttributes) + ) { sourceSetDependentHint(sourceSets = platforms.toSet(), kind = ContentKind.SourceSetDependantHint) { val receiver = tags.withTypeUnnamed<Receiver>() val params = tags.withTypeNamed<Param>() @@ -287,7 +328,11 @@ open class DefaultPageCreator( val paramRows = params.mapNotNull { (_, param) -> (param[platform] ?: param.fallback(possibleFallbacks))?.let { buildGroup(sourceSets = setOf(platform), kind = ContentKind.Parameters) { - text(it.name, kind = ContentKind.Parameters, styles = mainStyles + ContentStyle.RowTitle) + text( + it.name, + kind = ContentKind.Parameters, + styles = mainStyles + ContentStyle.RowTitle + ) comment(it.root) } } @@ -304,7 +349,10 @@ open class DefaultPageCreator( fun DocumentableContentBuilder.contentForSeeAlso() { if (tags.isNotEmptyForTag<See>()) { header(2, "See also") - group(extra = mainExtra + SimpleAttr.header("See also"), styles = setOf(ContentStyle.WithExtraAttributes)){ + group( + extra = mainExtra + SimpleAttr.header("See also"), + styles = setOf(ContentStyle.WithExtraAttributes) + ) { sourceSetDependentHint(sourceSets = platforms.toSet(), kind = ContentKind.SourceSetDependantHint) { val seeAlsoTags = tags.withTypeNamed<See>() table(kind = ContentKind.Sample) { @@ -312,8 +360,16 @@ open class DefaultPageCreator( val possibleFallbacks = d.getPossibleFallbackSourcesets(platform) seeAlsoTags.mapNotNull { (_, see) -> (see[platform] ?: see.fallback(possibleFallbacks))?.let { - buildGroup(sourceSets = setOf(platform), kind = ContentKind.Comment, styles = mainStyles + ContentStyle.RowTitle) { - if (it.address != null) link(it.name, it.address!!, kind = ContentKind.Comment) + buildGroup( + sourceSets = setOf(platform), + kind = ContentKind.Comment, + styles = mainStyles + ContentStyle.RowTitle + ) { + if (it.address != null) link( + it.name, + it.address!!, + kind = ContentKind.Comment + ) else text(it.name, kind = ContentKind.Comment) comment(it.root) } @@ -330,11 +386,18 @@ open class DefaultPageCreator( val samples = tags.withTypeNamed<Sample>() if (samples.isNotEmpty()) { header(2, "Samples") - group(extra = mainExtra + SimpleAttr.header("Samples"), styles = setOf(ContentStyle.WithExtraAttributes)){ + group( + extra = mainExtra + SimpleAttr.header("Samples"), + styles = setOf(ContentStyle.WithExtraAttributes) + ) { sourceSetDependentHint(sourceSets = platforms.toSet(), kind = ContentKind.SourceSetDependantHint) { platforms.map { platformData -> val content = samples.filter { it.value.isEmpty() || platformData in it.value } - group(sourceSets = setOf(platformData), kind = ContentKind.Sample, styles = setOf(TextStyle.Monospace)) { + group( + sourceSets = setOf(platformData), + kind = ContentKind.Sample, + styles = setOf(TextStyle.Monospace) + ) { content.forEach { text(it.key) } @@ -413,29 +476,33 @@ open class DefaultPageCreator( .mapValues { if (it.value.any { it is DClasslike }) it.value.filter { it !is DTypeAlias } else it.value } .toSortedMap(compareBy(nullsLast(String.CASE_INSENSITIVE_ORDER)){it}) .map { (elementName, elements) -> // This groupBy should probably use LocationProvider - buildGroup(elements.map { it.dri }.toSet(), elements.flatMap { it.sourceSets }.toSet(), kind = kind) { - link(elementName.orEmpty(), elements.first().dri, kind = kind) - divergentGroup( - ContentDivergentGroup.GroupID(name), + buildGroup( elements.map { it.dri }.toSet(), + elements.flatMap { it.sourceSets }.toSet(), kind = kind ) { - elements.map { - instance(setOf(it.dri), it.sourceSets.toSet()) { - before { - contentForBrief(it) - contentForSinceKotlin(it) - } - divergent { - group { - +buildSignature(it) + link(elementName.orEmpty(), elements.first().dri, kind = kind) + divergentGroup( + ContentDivergentGroup.GroupID(name), + elements.map { it.dri }.toSet(), + kind = kind + ) { + elements.map { + instance(setOf(it.dri), it.sourceSets.toSet()) { + before { + contentForBrief(it) + contentForSinceKotlin(it) + } + divergent { + group { + +buildSignature(it) + } } } } } } } - } } } } diff --git a/plugins/base/src/main/kotlin/translators/documentables/PageContentBuilder.kt b/plugins/base/src/main/kotlin/translators/documentables/PageContentBuilder.kt index 9d10620e..a58ef114 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/PageContentBuilder.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/PageContentBuilder.kt @@ -1,9 +1,11 @@ package org.jetbrains.dokka.base.translators.documentables +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet import org.jetbrains.dokka.base.signatures.SignatureProvider import org.jetbrains.dokka.base.transformers.pages.comments.CommentsToContentConverter import org.jetbrains.dokka.links.DRI -import org.jetbrains.dokka.model.* +import org.jetbrains.dokka.model.Documentable +import org.jetbrains.dokka.model.SourceSetDependent import org.jetbrains.dokka.model.doc.DocTag import org.jetbrains.dokka.model.properties.PropertyContainer import org.jetbrains.dokka.pages.* @@ -19,7 +21,7 @@ open class PageContentBuilder( ) { fun contentFor( dri: DRI, - sourceSets: Set<SourceSetData>, + sourceSets: Set<DokkaSourceSet>, kind: Kind = ContentKind.Main, styles: Set<Style> = emptySet(), extra: PropertyContainer<ContentNode> = PropertyContainer.empty(), @@ -31,7 +33,7 @@ open class PageContentBuilder( fun contentFor( dri: Set<DRI>, - sourceSets: Set<SourceSetData>, + sourceSets: Set<DokkaSourceSet>, kind: Kind = ContentKind.Main, styles: Set<Style> = emptySet(), extra: PropertyContainer<ContentNode> = PropertyContainer.empty(), @@ -46,7 +48,7 @@ open class PageContentBuilder( kind: Kind = ContentKind.Main, styles: Set<Style> = emptySet(), extra: PropertyContainer<ContentNode> = PropertyContainer.empty(), - sourceSets: Set<SourceSetData> = d.sourceSets.toSet(), + sourceSets: Set<DokkaSourceSet> = d.sourceSets.toSet(), block: DocumentableContentBuilder.() -> Unit = {} ): ContentGroup = DocumentableContentBuilder(setOf(d.dri), sourceSets, styles, extra) @@ -56,14 +58,14 @@ open class PageContentBuilder( @ContentBuilderMarker open inner class DocumentableContentBuilder( val mainDRI: Set<DRI>, - val mainPlatformData: Set<SourceSetData>, + val mainPlatformData: Set<DokkaSourceSet>, val mainStyles: Set<Style>, val mainExtra: PropertyContainer<ContentNode> ) { protected val contents = mutableListOf<ContentNode>() fun build( - sourceSets: Set<SourceSetData>, + sourceSets: Set<DokkaSourceSet>, kind: Kind, styles: Set<Style>, extra: PropertyContainer<ContentNode> @@ -87,7 +89,7 @@ open class PageContentBuilder( level: Int, text: String, kind: Kind = ContentKind.Main, - platformData: Set<SourceSetData> = mainPlatformData, + platformData: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, block: DocumentableContentBuilder.() -> Unit = {} @@ -109,18 +111,18 @@ open class PageContentBuilder( fun cover( text: String, - platformData: Set<SourceSetData> = mainPlatformData, + platformData: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles + TextStyle.Cover, extra: PropertyContainer<ContentNode> = mainExtra, block: DocumentableContentBuilder.() -> Unit = {} - ) { + ) { header(1, text, platformData = platformData, styles = styles, extra = extra, block = block) } fun text( text: String, kind: Kind = ContentKind.Main, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra ) { @@ -132,7 +134,7 @@ open class PageContentBuilder( fun linkTable( elements: List<DRI>, kind: Kind = ContentKind.Main, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra ) { @@ -150,7 +152,7 @@ open class PageContentBuilder( fun table( kind: Kind = ContentKind.Main, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, operation: DocumentableContentBuilder.() -> List<ContentGroup> @@ -168,7 +170,7 @@ open class PageContentBuilder( level: Int, kind: Kind = ContentKind.Main, elements: Iterable<T>, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, renderWhenEmpty: Boolean = false, @@ -180,16 +182,16 @@ open class PageContentBuilder( contents += ContentTable( emptyList(), elements - .let{ + .let { if (needsSorting) - it.sortedWith(compareBy(nullsLast(String.CASE_INSENSITIVE_ORDER)){ it.name }) + it.sortedWith(compareBy(nullsLast(String.CASE_INSENSITIVE_ORDER)) { it.name }) else it } .map { - buildGroup(setOf(it.dri), it.sourceSets.toSet(), kind, styles, extra) { - operation(it) - } - }, + buildGroup(setOf(it.dri), it.sourceSets.toSet(), kind, styles, extra) { + operation(it) + } + }, DCI(mainDRI, kind), sourceSets, styles, extra ) @@ -201,7 +203,7 @@ open class PageContentBuilder( prefix: String = "", suffix: String = "", separator: String = ", ", - sourceSets: Set<SourceSetData> = mainPlatformData, // TODO: children should be aware of this platform data + sourceSets: Set<DokkaSourceSet> = mainPlatformData, // TODO: children should be aware of this platform data operation: DocumentableContentBuilder.(T) -> Unit ) { if (elements.isNotEmpty()) { @@ -219,7 +221,7 @@ open class PageContentBuilder( text: String, address: DRI, kind: Kind = ContentKind.Main, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra ) { @@ -230,7 +232,7 @@ open class PageContentBuilder( text: String, address: DRI, kind: Kind = ContentKind.Main, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra ) = ContentDRILink( @@ -244,7 +246,7 @@ open class PageContentBuilder( text: String, address: String, kind: Kind = ContentKind.Main, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra ) = @@ -260,7 +262,7 @@ open class PageContentBuilder( fun link( address: DRI, kind: Kind = ContentKind.Main, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, block: DocumentableContentBuilder.() -> Unit @@ -276,7 +278,7 @@ open class PageContentBuilder( fun comment( docTag: DocTag, kind: Kind = ContentKind.Comment, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra ) { @@ -290,7 +292,7 @@ open class PageContentBuilder( fun group( dri: Set<DRI> = mainDRI, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, kind: Kind = ContentKind.Main, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, @@ -316,7 +318,7 @@ open class PageContentBuilder( fun buildGroup( dri: Set<DRI> = mainDRI, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, kind: Kind = ContentKind.Main, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, @@ -325,7 +327,7 @@ open class PageContentBuilder( fun sourceSetDependentHint( dri: Set<DRI> = mainDRI, - sourceSets: Set<SourceSetData> = mainPlatformData, + sourceSets: Set<DokkaSourceSet> = mainPlatformData, kind: Kind = ContentKind.Main, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, @@ -339,7 +341,7 @@ open class PageContentBuilder( fun sourceSetDependentHint( dri: DRI, - platformData: Set<SourceSetData> = mainPlatformData, + platformData: Set<DokkaSourceSet> = mainPlatformData, kind: Kind = ContentKind.Main, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, @@ -354,7 +356,7 @@ open class PageContentBuilder( protected fun createText( text: String, kind: Kind, - sourceSets: Set<SourceSetData>, + sourceSets: Set<DokkaSourceSet>, styles: Set<Style>, extra: PropertyContainer<ContentNode> ) = @@ -362,7 +364,7 @@ open class PageContentBuilder( fun <T> sourceSetDependentText( value: SourceSetDependent<T>, - sourceSets: Set<SourceSetData> = value.keys, + sourceSets: Set<DokkaSourceSet> = value.keys, transform: (T) -> String ) = value.entries.filter { it.key in sourceSets }.mapNotNull { (p, v) -> transform(v).takeIf { it.isNotBlank() }?.let { it to p } @@ -381,7 +383,7 @@ open class PageContentBuilder( private val instances: MutableList<ContentDivergentInstance> = mutableListOf() fun instance( dri: Set<DRI>, - sourceSets: Set<SourceSetData>, // Having correct PlatformData is crucial here, that's why there's no default + sourceSets: Set<DokkaSourceSet>, // Having correct PlatformData is crucial here, that's why there's no default kind: Kind = mainKind, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, @@ -411,7 +413,7 @@ open class PageContentBuilder( @ContentBuilderMarker open inner class DivergentInstanceBuilder( private val mainDRI: Set<DRI>, - private val mainSourceSets: Set<SourceSetData>, + private val mainSourceSets: Set<DokkaSourceSet>, private val mainStyles: Set<Style>, private val mainExtra: PropertyContainer<ContentNode> ) { @@ -421,7 +423,7 @@ open class PageContentBuilder( fun before( dri: Set<DRI> = mainDRI, - sourceSets: Set<SourceSetData> = mainSourceSets, + sourceSets: Set<DokkaSourceSet> = mainSourceSets, kind: Kind = ContentKind.Main, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, @@ -434,7 +436,7 @@ open class PageContentBuilder( fun divergent( dri: Set<DRI> = mainDRI, - sourceSets: Set<SourceSetData> = mainSourceSets, + sourceSets: Set<DokkaSourceSet> = mainSourceSets, kind: Kind = ContentKind.Main, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, @@ -445,7 +447,7 @@ open class PageContentBuilder( fun after( dri: Set<DRI> = mainDRI, - sourceSets: Set<SourceSetData> = mainSourceSets, + sourceSets: Set<DokkaSourceSet> = mainSourceSets, kind: Kind = ContentKind.Main, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra, @@ -459,7 +461,7 @@ open class PageContentBuilder( fun build( kind: Kind, - sourceSets: Set<SourceSetData> = mainSourceSets, + sourceSets: Set<DokkaSourceSet> = mainSourceSets, styles: Set<Style> = mainStyles, extra: PropertyContainer<ContentNode> = mainExtra ) = diff --git a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt index e71d936a..8588534b 100644 --- a/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt +++ b/plugins/base/src/main/kotlin/translators/psi/DefaultPsiToDocumentableTranslator.kt @@ -7,10 +7,10 @@ import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.psi.* import com.intellij.psi.impl.source.PsiClassReferenceType import com.intellij.psi.impl.source.PsiImmediateClassType +import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet import org.jetbrains.dokka.analysis.KotlinAnalysis import org.jetbrains.dokka.analysis.PsiDocumentableSource import org.jetbrains.dokka.analysis.from -import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.links.nextTarget import org.jetbrains.dokka.links.withClass @@ -21,7 +21,6 @@ import org.jetbrains.dokka.model.doc.Param import org.jetbrains.dokka.model.doc.Text import org.jetbrains.dokka.model.properties.PropertyContainer import org.jetbrains.dokka.plugability.DokkaContext -import org.jetbrains.dokka.plugability.DokkaPlugin import org.jetbrains.dokka.transformers.sources.SourceToDocumentableTranslator import org.jetbrains.dokka.utilities.DokkaLogger import org.jetbrains.kotlin.asJava.elements.KtLightAbstractAnnotation @@ -42,7 +41,7 @@ class DefaultPsiToDocumentableTranslator( private val kotlinAnalysis: KotlinAnalysis ) : SourceToDocumentableTranslator { - override fun invoke(sourceSet: SourceSetData, context: DokkaContext): DModule { + override fun invoke(sourceSet: DokkaSourceSet, context: DokkaContext): DModule { fun isFileInSourceRoots(file: File): Boolean { return sourceSet.sourceRoots.any { root -> file.path.startsWith(File(root.path).absolutePath) } @@ -93,7 +92,7 @@ class DefaultPsiToDocumentableTranslator( } class DokkaPsiParser( - private val sourceSetData: SourceSetData, + private val sourceSetData: DokkaSourceSet, private val logger: DokkaLogger ) { @@ -187,7 +186,7 @@ class DefaultPsiToDocumentableTranslator( fields.filterIsInstance<PsiEnumConstant>().map { entry -> DEnumEntry( dri.withClass("$name.${entry.name}"), - entry.name.orEmpty(), + entry.name, javadocParser.parseDocumentation(entry).toSourceSetDependent(), null, emptyList(), |
