diff --git a/core/api/core.api b/core/api/core.api index e823dd5820..8d630d142c 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -1449,6 +1449,7 @@ public abstract class org/jetbrains/dokka/model/Documentable : org/jetbrains/dok public final class org/jetbrains/dokka/model/DocumentableKt { public static final fun dfs (Lorg/jetbrains/dokka/model/Documentable;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/dokka/model/Documentable; public static final fun orEmpty (Ljava/util/Map;)Ljava/util/Map; + public static final fun shouldDocumentConstructors (Ljava/util/List;)Z public static final fun withDri (Lorg/jetbrains/dokka/model/Variance;Lorg/jetbrains/dokka/links/DRI;)Lorg/jetbrains/dokka/model/Variance; } @@ -1460,6 +1461,7 @@ public final class org/jetbrains/dokka/model/DocumentableUtilsKt { public static final fun filter (Lorg/jetbrains/dokka/model/DTypeParameter;Ljava/util/Set;)Lorg/jetbrains/dokka/model/DTypeParameter; public static final fun filtered (Ljava/util/Map;Ljava/util/Set;)Ljava/util/Map; public static final fun filtered (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Ljava/util/Set;)Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet; + public static final fun isExtension (Lorg/jetbrains/dokka/model/Documentable;)Z } public final class org/jetbrains/dokka/model/DoubleConstant : org/jetbrains/dokka/model/Expression { @@ -3469,17 +3471,16 @@ public abstract interface class org/jetbrains/dokka/model/properties/WithExtraPr public abstract fun withNewExtras (Lorg/jetbrains/dokka/model/properties/PropertyContainer;)Ljava/lang/Object; } -public final class org/jetbrains/dokka/pages/BasicToggleableContentType : java/lang/Enum, org/jetbrains/dokka/pages/ToggleableContentType { - public static final field CONSTRUCTOR Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static final field ENTRY Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static final field EXTENSION Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static final field FUNCTION Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static final field INHERITED_FUNCTION Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static final field INHERITED_PROPERTY Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static final field PROPERTY Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static final field TYPE Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/BasicToggleableContentType; - public static fun values ()[Lorg/jetbrains/dokka/pages/BasicToggleableContentType; +public final class org/jetbrains/dokka/pages/BasicTabbedContentType : java/lang/Enum, org/jetbrains/dokka/pages/TabbedContentType { + public static final field CONSTRUCTOR Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field ENTRY Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field EXTENSION_FUNCTION Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field EXTENSION_PROPERTY Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field FUNCTION Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field PROPERTY Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static final field TYPE Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static fun valueOf (Ljava/lang/String;)Lorg/jetbrains/dokka/pages/BasicTabbedContentType; + public static fun values ()[Lorg/jetbrains/dokka/pages/BasicTabbedContentType; } public abstract interface class org/jetbrains/dokka/pages/ClasslikePage : org/jetbrains/dokka/pages/ContentPage, org/jetbrains/dokka/pages/WithDocumentables { @@ -3946,19 +3947,6 @@ public final class org/jetbrains/dokka/pages/ContentStyle : java/lang/Enum, org/ public static fun values ()[Lorg/jetbrains/dokka/pages/ContentStyle; } -public final class org/jetbrains/dokka/pages/ContentTab { - public fun (Lorg/jetbrains/dokka/pages/ContentText;Ljava/util/List;)V - public final fun component1 ()Lorg/jetbrains/dokka/pages/ContentText; - public final fun component2 ()Ljava/util/List; - public final fun copy (Lorg/jetbrains/dokka/pages/ContentText;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentTab; - public static synthetic fun copy$default (Lorg/jetbrains/dokka/pages/ContentTab;Lorg/jetbrains/dokka/pages/ContentText;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentTab; - public fun equals (Ljava/lang/Object;)Z - public final fun getText ()Lorg/jetbrains/dokka/pages/ContentText; - public final fun getToggleableContentTypes ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - public final class org/jetbrains/dokka/pages/ContentTable : org/jetbrains/dokka/pages/ContentComposite { public fun (Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V public synthetic fun (Ljava/util/List;Lorg/jetbrains/dokka/pages/ContentGroup;Ljava/util/List;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -3990,18 +3978,6 @@ public final class org/jetbrains/dokka/pages/ContentTable : org/jetbrains/dokka/ public fun withSourceSets (Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentTable; } -public final class org/jetbrains/dokka/pages/ContentTabsExtra : org/jetbrains/dokka/model/properties/ExtraProperty { - public static final field Companion Lorg/jetbrains/dokka/pages/ContentTabsExtra$Companion; - public fun (Ljava/util/List;)V - public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; - public final fun getTabs ()Ljava/util/List; -} - -public final class org/jetbrains/dokka/pages/ContentTabsExtra$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { - public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; - public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/ContentTabsExtra;Lorg/jetbrains/dokka/pages/ContentTabsExtra;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; -} - public final class org/jetbrains/dokka/pages/ContentText : org/jetbrains/dokka/pages/ContentNode { public fun (Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V public synthetic fun (Ljava/lang/String;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -4319,6 +4295,21 @@ public final class org/jetbrains/dokka/pages/SymbolContentKind : java/lang/Enum, public static fun values ()[Lorg/jetbrains/dokka/pages/SymbolContentKind; } +public abstract interface class org/jetbrains/dokka/pages/TabbedContentType { +} + +public final class org/jetbrains/dokka/pages/TabbedContentTypeExtra : org/jetbrains/dokka/model/properties/ExtraProperty { + public static final field Companion Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra$Companion; + public fun (Lorg/jetbrains/dokka/pages/TabbedContentType;)V + public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; + public final fun getValue ()Lorg/jetbrains/dokka/pages/TabbedContentType; +} + +public final class org/jetbrains/dokka/pages/TabbedContentTypeExtra$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { + public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; + public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra;Lorg/jetbrains/dokka/pages/TabbedContentTypeExtra;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; +} + public final class org/jetbrains/dokka/pages/TextStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style { public static final field Block Lorg/jetbrains/dokka/pages/TextStyle; public static final field Bold Lorg/jetbrains/dokka/pages/TextStyle; @@ -4342,21 +4333,6 @@ public final class org/jetbrains/dokka/pages/TextStyle : java/lang/Enum, org/jet public static fun values ()[Lorg/jetbrains/dokka/pages/TextStyle; } -public abstract interface class org/jetbrains/dokka/pages/ToggleableContentType { -} - -public final class org/jetbrains/dokka/pages/ToggleableContentTypeExtra : org/jetbrains/dokka/model/properties/ExtraProperty { - public static final field Companion Lorg/jetbrains/dokka/pages/ToggleableContentTypeExtra$Companion; - public fun (Lorg/jetbrains/dokka/pages/ToggleableContentType;)V - public fun getKey ()Lorg/jetbrains/dokka/model/properties/ExtraProperty$Key; - public final fun getValue ()Lorg/jetbrains/dokka/pages/ToggleableContentType; -} - -public final class org/jetbrains/dokka/pages/ToggleableContentTypeExtra$Companion : org/jetbrains/dokka/model/properties/ExtraProperty$Key { - public synthetic fun mergeStrategyFor (Ljava/lang/Object;Ljava/lang/Object;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; - public fun mergeStrategyFor (Lorg/jetbrains/dokka/pages/ToggleableContentTypeExtra;Lorg/jetbrains/dokka/pages/ToggleableContentTypeExtra;)Lorg/jetbrains/dokka/model/properties/MergeStrategy; -} - public final class org/jetbrains/dokka/pages/TokenStyle : java/lang/Enum, org/jetbrains/dokka/pages/Style { public static final field Annotation Lorg/jetbrains/dokka/pages/TokenStyle; public static final field Boolean Lorg/jetbrains/dokka/pages/TokenStyle; diff --git a/core/content-matcher-test-utils/api/content-matcher-test-utils.api b/core/content-matcher-test-utils/api/content-matcher-test-utils.api index 0a7f153b3f..58881a15b3 100644 --- a/core/content-matcher-test-utils/api/content-matcher-test-utils.api +++ b/core/content-matcher-test-utils/api/content-matcher-test-utils.api @@ -30,6 +30,8 @@ public final class matchers/content/ContentMatchersDslKt { public static final fun platformHinted (Lmatchers/content/ContentMatcherBuilder;Lkotlin/jvm/functions/Function1;)V public static final fun skipAllNotMatching (Lmatchers/content/ContentMatcherBuilder;)V public static final fun somewhere (Lmatchers/content/ContentMatcherBuilder;Lkotlin/jvm/functions/Function1;)V + public static final fun tab (Lmatchers/content/ContentMatcherBuilder;Lorg/jetbrains/dokka/pages/TabbedContentType;Lkotlin/jvm/functions/Function1;)V + public static final fun tabbedGroup (Lmatchers/content/ContentMatcherBuilder;Lkotlin/jvm/functions/Function1;)V public static final fun table (Lmatchers/content/ContentMatcherBuilder;Lkotlin/jvm/functions/Function1;)V } diff --git a/plugins/base/api/base.api b/plugins/base/api/base.api index b35286b9bc..11a5f06fab 100644 --- a/plugins/base/api/base.api +++ b/plugins/base/api/base.api @@ -339,6 +339,8 @@ public final class org/jetbrains/dokka/base/renderers/html/HtmlFormatingUtilsKt public class org/jetbrains/dokka/base/renderers/html/HtmlRenderer : org/jetbrains/dokka/base/renderers/DefaultRenderer { public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V + public synthetic fun build (Lorg/jetbrains/dokka/pages/ContentNode;Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V + public fun build (Lorg/jetbrains/dokka/pages/ContentNode;Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentPage;Ljava/util/Set;)V public final fun buildAnchorCopyButton (Lkotlinx/html/FlowContent;Ljava/lang/String;)V public synthetic fun buildCodeBlock (Ljava/lang/Object;Lorg/jetbrains/dokka/pages/ContentCodeBlock;Lorg/jetbrains/dokka/pages/ContentPage;)V public fun buildCodeBlock (Lkotlinx/html/FlowContent;Lorg/jetbrains/dokka/pages/ContentCodeBlock;Lorg/jetbrains/dokka/pages/ContentPage;)V @@ -1445,6 +1447,8 @@ public class org/jetbrains/dokka/base/translators/documentables/DefaultPageCreat protected fun contentForBrief (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/model/Documentable;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V public static synthetic fun contentForBrief$default (Lorg/jetbrains/dokka/base/translators/documentables/DefaultPageCreator;Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/model/Documentable;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)V protected fun contentForClasslikesAndEntries (Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentGroup; + protected fun contentForClasslikesScopes (Ljava/util/List;Ljava/util/Set;Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentGroup; + public static synthetic fun contentForClasslikesScopes$default (Lorg/jetbrains/dokka/base/translators/documentables/DefaultPageCreator;Ljava/util/List;Ljava/util/Set;Ljava/util/List;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentGroup; protected fun contentForConstructors (Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentGroup; protected fun contentForDescription (Lorg/jetbrains/dokka/model/Documentable;)Ljava/util/List; protected fun contentForEntries (Ljava/util/List;Ljava/util/Set;Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentGroup; @@ -1453,15 +1457,10 @@ public class org/jetbrains/dokka/base/translators/documentables/DefaultPageCreat protected fun contentForMembers (Ljava/util/List;)Lorg/jetbrains/dokka/pages/ContentGroup; protected fun contentForModule (Lorg/jetbrains/dokka/model/DModule;)Lorg/jetbrains/dokka/pages/ContentGroup; protected fun contentForPackage (Lorg/jetbrains/dokka/model/DPackage;)Lorg/jetbrains/dokka/pages/ContentGroup; + protected fun contentForPackageScope (Lorg/jetbrains/dokka/model/DPackage;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;)Lorg/jetbrains/dokka/pages/ContentGroup; protected fun contentForProperty (Lorg/jetbrains/dokka/model/DProperty;)Lorg/jetbrains/dokka/pages/ContentGroup; - protected fun contentForScope (Ljava/util/Set;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Z)Lorg/jetbrains/dokka/pages/ContentGroup; - protected fun contentForScope (Lorg/jetbrains/dokka/model/WithScope;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;Z)Lorg/jetbrains/dokka/pages/ContentGroup; - public static synthetic fun contentForScope$default (Lorg/jetbrains/dokka/base/translators/documentables/DefaultPageCreator;Ljava/util/Set;Ljava/util/Set;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;ZILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentGroup; - public static synthetic fun contentForScope$default (Lorg/jetbrains/dokka/base/translators/documentables/DefaultPageCreator;Lorg/jetbrains/dokka/model/WithScope;Lorg/jetbrains/dokka/links/DRI;Ljava/util/Set;ZILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentGroup; - protected fun contentForScopes (Ljava/util/List;Ljava/util/Set;Ljava/util/List;Z)Lorg/jetbrains/dokka/pages/ContentGroup; - public static synthetic fun contentForScopes$default (Lorg/jetbrains/dokka/base/translators/documentables/DefaultPageCreator;Ljava/util/List;Ljava/util/Set;Ljava/util/List;ZILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentGroup; - protected fun divergentBlock (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;Ljava/util/Collection;Lorg/jetbrains/dokka/pages/ContentKind;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Z)V - public static synthetic fun divergentBlock$default (Lorg/jetbrains/dokka/base/translators/documentables/DefaultPageCreator;Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;Ljava/util/Collection;Lorg/jetbrains/dokka/pages/ContentKind;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ZILjava/lang/Object;)V + protected fun divergentBlock (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;Ljava/util/Collection;Lorg/jetbrains/dokka/pages/ContentKind;Lorg/jetbrains/dokka/model/properties/PropertyContainer;)V + public static synthetic fun divergentBlock$default (Lorg/jetbrains/dokka/base/translators/documentables/DefaultPageCreator;Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;Ljava/util/Collection;Lorg/jetbrains/dokka/pages/ContentKind;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)V protected fun getContentBuilder ()Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder; public final fun getCustomTagContentProviders ()Ljava/util/List; public final fun getLogger ()Lorg/jetbrains/dokka/utilities/DokkaLogger; @@ -1480,10 +1479,6 @@ public class org/jetbrains/dokka/base/translators/documentables/DefaultPageCreat protected fun toHeaderString (Lorg/jetbrains/dokka/model/doc/TagWrapper;)Ljava/lang/String; } -public final class org/jetbrains/dokka/base/translators/documentables/DefaultPageCreatorKt { - public static final fun isExtension (Lorg/jetbrains/dokka/model/Documentable;)Z -} - public final class org/jetbrains/dokka/base/translators/documentables/DriClashAwareName : org/jetbrains/dokka/model/properties/ExtraProperty { public static final field Companion Lorg/jetbrains/dokka/base/translators/documentables/DriClashAwareName$Companion; public fun (Ljava/lang/String;)V @@ -1584,8 +1579,8 @@ public class org/jetbrains/dokka/base/translators/documentables/PageContentBuild public static synthetic fun linkNode$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;Lorg/jetbrains/dokka/links/DRI;Lorg/jetbrains/dokka/pages/DCI;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ILjava/lang/Object;)Lorg/jetbrains/dokka/pages/ContentDRILink; public final fun list (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Lkotlin/jvm/functions/Function2;)V public static synthetic fun list$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V - public final fun multiBlock (Ljava/lang/String;ILorg/jetbrains/dokka/pages/Kind;Ljava/lang/Iterable;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ZZLjava/util/List;ZZLkotlin/jvm/functions/Function3;)V - public static synthetic fun multiBlock$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;ILorg/jetbrains/dokka/pages/Kind;Ljava/lang/Iterable;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ZZLjava/util/List;ZZLkotlin/jvm/functions/Function3;ILjava/lang/Object;)V + public final fun multiBlock (Ljava/lang/String;ILorg/jetbrains/dokka/pages/Kind;Ljava/lang/Iterable;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ZZLjava/util/List;ZLkotlin/jvm/functions/Function3;)V + public static synthetic fun multiBlock$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Ljava/lang/String;ILorg/jetbrains/dokka/pages/Kind;Ljava/lang/Iterable;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;ZZLjava/util/List;ZLkotlin/jvm/functions/Function3;ILjava/lang/Object;)V public final fun operator (Ljava/lang/String;)V public final fun orderedList (Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;)V public static synthetic fun orderedList$default (Lorg/jetbrains/dokka/base/translators/documentables/PageContentBuilder$DocumentableContentBuilder;Lorg/jetbrains/dokka/pages/Kind;Ljava/util/Set;Ljava/util/Set;Lorg/jetbrains/dokka/model/properties/PropertyContainer;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt index fd2bb3d2d2..0b7978754e 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt @@ -18,6 +18,7 @@ import org.jetbrains.dokka.model.properties.PropertyContainer import org.jetbrains.dokka.model.properties.WithExtraProperties import org.jetbrains.dokka.pages.* import org.jetbrains.dokka.utilities.DokkaLogger +import java.util.Comparator import kotlin.reflect.KClass internal typealias GroupedTags = Map, List>> @@ -192,7 +193,7 @@ open class DefaultPageCreator( return Pair(first, second) } - private fun Collection.splitInheritedExtension(dri: Set): Pair, List> where T : Callable = + private fun Collection.splitInheritedExtension(dri: Set): Pair, List> where T : org.jetbrains.dokka.model.Callable = partition { it.receiver?.dri !in dri } private fun Collection.splitInherited(): Pair, List> where T : Documentable, T : WithExtraProperties = @@ -309,14 +310,12 @@ open class DefaultPageCreator( propertiesBlock( "Properties", BasicTabbedContentType.PROPERTY, - memberProperties + extensionProperties, - sourceSets + memberProperties + extensionProperties ) propertiesBlock( "Inherited properties", BasicTabbedContentType.PROPERTY, - inheritedProperties + inheritedExtensionProperties, - sourceSets + inheritedProperties + inheritedExtensionProperties ) functionsBlock("Functions", BasicTabbedContentType.FUNCTION, memberFunctions + extensionFunctions) functionsBlock( @@ -329,8 +328,7 @@ open class DefaultPageCreator( propertiesBlock( "Properties", BasicTabbedContentType.PROPERTY, - properties + extensionProps, - sourceSets + properties + extensionProps ) } } @@ -550,110 +548,82 @@ open class DefaultPageCreator( private fun DocumentableContentBuilder.propertiesBlock( name: String, tabbedContentType: TabbedContentType, - list: Collection, - sourceSets: Set + list: Collection ) { - data class NameAndIsExtension(val name:String, val isExtension: Boolean) - - val groupedElements = list.groupBy { NameAndIsExtension(it.name, it.isExtension()) }.toList() - val sortedGroupedElements = - groupedElements.sortedWith(compareBy>, String>(String.CASE_INSENSITIVE_ORDER) { it.first.name }.thenBy { it.first.isExtension }) - val onlyExtensions = list.all { it.isExtension() } - multiBlock( + divergentBlock( name, - 2, + list, ContentKind.Properties, - sortedGroupedElements.map { it.first.name to it.second }, - sourceSets, - needsAnchors = true, - extra = mainExtra + TabbedContentTypeExtra(if(onlyExtensions) BasicTabbedContentType.EXTENSION_PROPERTY else tabbedContentType), - headers = listOf( - headers("Name", "Summary") - ) - ) { key, props -> - val extra = - if (props.all { it.isExtension() }) mainExtra + TabbedContentTypeExtra(BasicTabbedContentType.EXTENSION_PROPERTY) else mainExtra - link( - text = key, - address = props.first().dri, - kind = ContentKind.Main, - styles = setOf(ContentStyle.RowTitle), - extra = extra - ) - sourceSetDependentHint( - props.dri, - props.sourceSets, - kind = ContentKind.SourceSetDependentHint, - extra = extra - ) { + extra = mainExtra + TabbedContentTypeExtra(if (onlyExtensions) BasicTabbedContentType.EXTENSION_PROPERTY else tabbedContentType) + ) - props.forEach { - +buildSignature(it) - contentForBrief(it) - contentForCustomTagsBrief(it) - } - } - } } - - private val groupKeyComparator: Comparator> = - compareBy(nullsFirst(canonicalAlphabeticalOrder)) { it.key } + private data class NameAndIsExtension(val name:String?, val isExtension: Boolean) + + private fun groupAndSortDivergentCollection(collection: Collection): List>> { + val groupKeyComparator: Comparator>> = + compareBy>, String?>( + nullsFirst(canonicalAlphabeticalOrder) + ) { it.key.name } + .thenBy { it.key.isExtension } + + return collection + .groupBy { + NameAndIsExtension( + it.name, + it.isExtension() + ) + } // This groupBy should probably use LocationProvider + // This hacks displaying actual typealias signatures along classlike ones + .mapValues { if (it.value.any { it is DClasslike }) it.value.filter { it !is DTypeAlias } else it.value } + .entries.sortedWith(groupKeyComparator) + } protected open fun DocumentableContentBuilder.divergentBlock( name: String, collection: Collection, kind: ContentKind, - extra: PropertyContainer = mainExtra, - headerExtra: PropertyContainer = extra + extra: PropertyContainer = mainExtra ) { if (collection.any()) { group(extra = extra) { - header(2, name, kind = kind, extra = headerExtra) { } - + header(2, name, kind = kind) { } + val isFunctions = collection.any { it is DFunction } table(kind, extra = extra, styles = emptySet()) { header { group { text("Name") } group { text("Summary") } } - collection - .groupBy { - Pair( - it.name, - it.isExtension() - ) - } // This groupBy should probably use LocationProvider - // This hacks displaying actual typealias signatures along classlike ones - .mapValues { if (it.value.any { it is DClasslike }) it.value.filter { it !is DTypeAlias } else it.value } - .toSortedMap(compareBy, String?>(nullsLast(String.CASE_INSENSITIVE_ORDER)) { it.first }.thenBy { it.second }) + groupAndSortDivergentCollection(collection) .forEach { (elementNameAndIsExtension, elements) -> // This groupBy should probably use LocationProvider - val elementName = elementNameAndIsExtension.first - val isExtension = elementNameAndIsExtension.second + val elementName = elementNameAndIsExtension.name + val isExtension = elementNameAndIsExtension.isExtension val rowExtra = - if (isExtension) extra + TabbedContentTypeExtra(BasicTabbedContentType.EXTENSION_FUNCTION) else extra - + if (isExtension) extra + TabbedContentTypeExtra(if(isFunctions) BasicTabbedContentType.EXTENSION_FUNCTION else BasicTabbedContentType.EXTENSION_PROPERTY) else extra + val sortedElements = sortDivergentElementsDeterministically(elements) row( - dri = elements.map { it.dri }.toSet(), - sourceSets = elements.flatMap { it.sourceSets }.toSet(), + dri = sortedElements.map { it.dri }.toSet(), + sourceSets = sortedElements.flatMap { it.sourceSets }.toSet(), kind = kind, styles = emptySet(), extra = elementName?.let { name -> rowExtra + SymbolAnchorHint(name, kind) } ?: rowExtra ) { link( text = elementName.orEmpty(), - address = elements.first().dri, + address = sortedElements.first().dri, kind = kind, styles = setOf(ContentStyle.RowTitle), - sourceSets = elements.sourceSets.toSet(), + sourceSets = sortedElements.sourceSets.toSet(), extra = extra ) divergentGroup( ContentDivergentGroup.GroupID(name), - elements.map { it.dri }.toSet(), + sortedElements.map { it.dri }.toSet(), kind = kind, extra = extra ) { - elements.map { element -> + sortedElements.map { element -> instance( setOf(element.dri), element.sourceSets.toSet(), diff --git a/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt b/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt index 01fefd3c19..00fc57ad88 100644 --- a/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt +++ b/plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt @@ -190,7 +190,7 @@ class PageNodeMergerTest : BaseAbstractTest() { defaultConfiguration ) { renderingStage = { rootPageNode, _ -> - val extensions = rootPageNode.findExtensionsOfClass("ExtensionReceiver") + val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Properties) extensions.assertContainsKDocsInOrder( "Top level val extension", @@ -238,7 +238,7 @@ class PageNodeMergerTest : BaseAbstractTest() { defaultConfiguration ) { renderingStage = { rootPageNode, _ -> - val extensions = rootPageNode.findExtensionsOfClass("ExtensionReceiver") + val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Functions) extensions.assertContainsKDocsInOrder( "Top level fun extension", "Companion fun extension", @@ -300,7 +300,7 @@ class PageNodeMergerTest : BaseAbstractTest() { defaultConfiguration ) { renderingStage = { rootPageNode, _ -> - val extensions = rootPageNode.findExtensionsOfClass("ExtensionReceiver") + val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Functions) extensions.assertContainsKDocsInOrder( "Top level fun extension with one int param", "Top level fun extension with one string param", @@ -421,10 +421,10 @@ class PageNodeMergerTest : BaseAbstractTest() { } } - private fun RootPageNode.findExtensionsOfClass(name: String): ContentDivergentGroup { - val extensionReceiverPage = this.dfs { it is ClasslikePageNode && it.name == name } as ClasslikePageNode + private fun RootPageNode.findDivergencesOfClass(className: String, kind: ContentKind): ContentDivergentGroup { + val extensionReceiverPage = this.dfs { it is ClasslikePageNode && it.name == className } as ClasslikePageNode return extensionReceiverPage.content - .dfs { it is ContentDivergentGroup && it.groupID.name == "Extensions" } as ContentDivergentGroup + .dfs { it is ContentDivergentGroup && it.dci.kind == kind } as ContentDivergentGroup } private fun RootPageNode.findPackageFunctionBlocks(packageName: String): List { diff --git a/plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt b/plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt index 08173abd3e..4ef3b4954e 100644 --- a/plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt +++ b/plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt @@ -38,6 +38,7 @@ class TabbedContentTest : BaseAbstractTest() { | } | | fun A.fn() = 0 + | val A.p = 0 """ val writerPlugin = TestOutputWriterPlugin() @@ -48,19 +49,20 @@ class TabbedContentTest : BaseAbstractTest() { ) { renderingStage = { _, _ -> val classContent = writerPlugin.writer.renderedContent("root/example/-a/index.html") - ///val tableInheritors = content.select("[data-togglable]").map {it.attr("data-togglable")}.toSet() - assertEquals(1, classContent.getTabbedRow("EXTENSION").size) + assertEquals(1, classContent.getTabbedRow("EXTENSION_FUNCTION").size) assertEquals(1, classContent.getTabbedRow("CONSTRUCTOR").size) assertEquals(1, classContent.getTabbedRow("PROPERTY").size) assertEquals(1, classContent.getTabbedRow("CONSTRUCTOR").size) assertEquals(1, classContent.getTabbedRow("FUNCTION").size) assertEquals(2, classContent.getTabbedRow("TYPE").size) + assertEquals(1, classContent.getTabbedRow("EXTENSION_PROPERTY").size) val packagePage = writerPlugin.writer.renderedContent("root/example/index.html") assertEquals(1, packagePage.getTabbedRow("TYPE").size) assertEquals(1, packagePage.getTabbedRow("PROPERTY").size) assertEquals(1, packagePage.getTabbedRow("FUNCTION").size) - assertEquals(1, packagePage.getTabbedRow("EXTENSION").size) + assertEquals(1, packagePage.getTabbedRow("EXTENSION_FUNCTION").size) + assertEquals(1, packagePage.getTabbedRow("EXTENSION_PROPERTY").size) } } } @@ -95,7 +97,7 @@ class TabbedContentTest : BaseAbstractTest() { val funTable = classContent.select(".table[data-togglable=FUNCTION]") val orders = funTable.select(".table-row").map { it.attr("data-togglable") } - assertEquals(listOf("FUNCTION", "FUNCTION", "EXTENSION", "FUNCTION"), orders) + assertEquals(listOf("FUNCTION", "FUNCTION", "EXTENSION_FUNCTION", "FUNCTION"), orders) val names = funTable.select(".main-subrow .inline-flex a").map { it.text() } assertEquals(listOf("a", "fn", "fn", "g"), names) diff --git a/plugins/base/src/test/kotlin/transformers/MergeImplicitExpectActualDeclarationsTest.kt b/plugins/base/src/test/kotlin/transformers/MergeImplicitExpectActualDeclarationsTest.kt index bcdb063c87..5e3352095d 100644 --- a/plugins/base/src/test/kotlin/transformers/MergeImplicitExpectActualDeclarationsTest.kt +++ b/plugins/base/src/test/kotlin/transformers/MergeImplicitExpectActualDeclarationsTest.kt @@ -179,7 +179,7 @@ class MergeImplicitExpectActualDeclarationsTest : BaseAbstractTest() { assertEquals( 2, - prop1.firstChildOfType().inner.children.size, + prop1.firstChildOfType().children.size, "Incorrect number of divergent instances found" ) diff --git a/plugins/base/src/test/kotlin/utils/contentUtils.kt b/plugins/base/src/test/kotlin/utils/contentUtils.kt index 54d8c90104..4fce1155e9 100644 --- a/plugins/base/src/test/kotlin/utils/contentUtils.kt +++ b/plugins/base/src/test/kotlin/utils/contentUtils.kt @@ -203,28 +203,34 @@ fun ContentMatcherBuilder<*>.propertySignature( table { group { link { +name } - platformHinted { - group { - annotations.entries.forEach { - group { - unwrapAnnotation(it) - } - } - if (visibility.isNotBlank()) +"$visibility " - if (modifier.isNotBlank()) +"$modifier " - +("${keywords.joinToString("") { "$it " }}$preposition ") - link { +name } - if (type != null) { - +(": ") + divergentGroup { + divergentInstance { + divergent { group { - link { - +(type) + group { + annotations.entries.forEach { + group { + unwrapAnnotation(it) + } + } + if (visibility.isNotBlank()) +"$visibility " + if (modifier.isNotBlank()) +"$modifier " + +("${keywords.joinToString("") { "$it " }}$preposition ") + link { +name } + if (type != null) { + +(": ") + group { + link { + +(type) + } + } + } + if (value != null) { + +(" = $value") + } } } } - if (value != null) { - +(" = $value") - } } } } diff --git a/plugins/kotlin-as-java/src/test/kotlin/KotlinAsJavaPluginTest.kt b/plugins/kotlin-as-java/src/test/kotlin/KotlinAsJavaPluginTest.kt index 032f40fe64..2495530272 100644 --- a/plugins/kotlin-as-java/src/test/kotlin/KotlinAsJavaPluginTest.kt +++ b/plugins/kotlin-as-java/src/test/kotlin/KotlinAsJavaPluginTest.kt @@ -244,11 +244,17 @@ class KotlinAsJavaPluginTest : BaseAbstractTest() { link { +"publicProperty" } - platformHinted { - group { - +"public Int" - link { - +"publicProperty" + divergentGroup { + divergentInstance { + divergent { + group { + group { + +"public Int" + link { + +"publicProperty" + } + } + } } } }