Skip to content

Commit

Permalink
Support ContentKind.Extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
vmishenev committed Feb 24, 2023
1 parent e8086a6 commit d7a0317
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 24 deletions.
Expand Up @@ -597,34 +597,35 @@ open class DefaultPageCreator(
val isExtension = elementNameAndIsExtension.isExtension
val rowExtra =
if (isExtension) extra + TabbedContentTypeExtra(if(isFunctions) BasicTabbedContentType.EXTENSION_FUNCTION else BasicTabbedContentType.EXTENSION_PROPERTY) else extra
val rowKind = if (isExtension) ContentKind.Extensions else kind
val sortedElements = sortDivergentElementsDeterministically(elements)
row(
dri = sortedElements.map { it.dri }.toSet(),
sourceSets = sortedElements.flatMap { it.sourceSets }.toSet(),
kind = kind,
kind = rowKind,
styles = emptySet(),
extra = elementName?.let { name -> rowExtra + SymbolAnchorHint(name, kind) } ?: rowExtra
) {
link(
text = elementName.orEmpty(),
address = sortedElements.first().dri,
kind = kind,
kind = rowKind,
styles = setOf(ContentStyle.RowTitle),
sourceSets = sortedElements.sourceSets.toSet(),
extra = extra
)
divergentGroup(
ContentDivergentGroup.GroupID(name),
sortedElements.map { it.dri }.toSet(),
kind = kind,
kind = rowKind,
extra = extra
) {
sortedElements.map { element ->
instance(
setOf(element.dri),
element.sourceSets.toSet(),
extra = PropertyContainer.withAll(
SymbolAnchorHint(element.name ?: "", kind)
SymbolAnchorHint(element.name ?: "", rowKind)
)
) {
divergent(extra = PropertyContainer.empty()) {
Expand Down
2 changes: 1 addition & 1 deletion plugins/base/src/main/resources/dokka/styles/style.css
Expand Up @@ -1302,6 +1302,6 @@ div.runnablesample {
the hack to hide the headers inside tabs for a package page because each tab
has only one header, and the header text is the same as the tab name, so no point in showing it
*/
.main-content[data-page-type="package"] .tabs-section-body h2 !important {
.main-content[data-page-type="package"] .tabs-section-body h2 {
display: none;
}
2 changes: 1 addition & 1 deletion plugins/base/src/test/kotlin/enums/KotlinEnumsTest.kt
Expand Up @@ -168,7 +168,7 @@ class KotlinEnumsTest : BaseAbstractTest() {
) {
renderingStage = { _, _ ->
val enumEntriesOnPage = writerPlugin.writer.renderedContent("root/testpackage/-test-enum/index.html")
.select("div.table[data-togglable=ENTRY]")
.select("div[data-togglable=ENTRY] .table")
.select("div.table-row")
.select("div.keyValue")
.select("div.title")
Expand Down
6 changes: 3 additions & 3 deletions plugins/base/src/test/kotlin/pageMerger/PageNodeMergerTest.kt
Expand Up @@ -190,7 +190,7 @@ class PageNodeMergerTest : BaseAbstractTest() {
defaultConfiguration
) {
renderingStage = { rootPageNode, _ ->
val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Properties)
val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Extensions)

extensions.assertContainsKDocsInOrder(
"Top level val extension",
Expand Down Expand Up @@ -238,7 +238,7 @@ class PageNodeMergerTest : BaseAbstractTest() {
defaultConfiguration
) {
renderingStage = { rootPageNode, _ ->
val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Functions)
val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Extensions)
extensions.assertContainsKDocsInOrder(
"Top level fun extension",
"Companion fun extension",
Expand Down Expand Up @@ -300,7 +300,7 @@ class PageNodeMergerTest : BaseAbstractTest() {
defaultConfiguration
) {
renderingStage = { rootPageNode, _ ->
val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Functions)
val extensions = rootPageNode.findDivergencesOfClass("ExtensionReceiver", ContentKind.Extensions)
extensions.assertContainsKDocsInOrder(
"Top level fun extension with one int param",
"Top level fun extension with one string param",
Expand Down
18 changes: 9 additions & 9 deletions plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt
Expand Up @@ -20,7 +20,7 @@ class TabbedContentTest : BaseAbstractTest() {
}

private fun Element.getTabbedRow(type: String) = select(".table-row[data-togglable=$type]")
private fun Element.getTable(type: String) = select("div[data-togglable=$type] .table")
private fun Element.getTabbedTable(type: String) = select("div[data-togglable=$type] .table")

@Test
fun `should have correct tabbed content type`() {
Expand Down Expand Up @@ -53,18 +53,18 @@ class TabbedContentTest : BaseAbstractTest() {
) {
renderingStage = { _, _ ->
val classContent = writerPlugin.writer.renderedContent("root/example/-a/index.html")
assertEquals(1, classContent.getTabbedTable("CONSTRUCTOR").size)
assertEquals(1, classContent.getTabbedTable("PROPERTY").size)
assertEquals(1, classContent.getTabbedTable("CONSTRUCTOR").size)
assertEquals(1, classContent.getTabbedTable("FUNCTION").size)
assertEquals(1, classContent.getTabbedTable("TYPE").size)
assertEquals(3, classContent.getTabbedRow("EXTENSION_FUNCTION").size)
assertEquals(1, classContent.getTabbedRow("CONSTRUCTOR").size)
assertEquals(1, classContent.getTable("PROPERTY").size)
assertEquals(1, classContent.getTable("CONSTRUCTOR").size)
assertEquals(1, classContent.getTable("FUNCTION").size)
assertEquals(1, classContent.getTable("TYPE").size)
assertEquals(2, classContent.getTabbedRow("EXTENSION_PROPERTY").size)

val packagePage = writerPlugin.writer.renderedContent("root/example/index.html")
assertEquals(1, packagePage.getTable("TYPE").size)
assertEquals(1, packagePage.getTable("PROPERTY").size)
assertEquals(1, packagePage.getTable("FUNCTION").size)
assertEquals(1, packagePage.getTabbedTable("TYPE").size)
assertEquals(1, packagePage.getTabbedTable("PROPERTY").size)
assertEquals(1, packagePage.getTabbedTable("FUNCTION").size)
assertEquals(3, packagePage.getTabbedRow("EXTENSION_FUNCTION").size)
assertEquals(2, packagePage.getTabbedRow("EXTENSION_PROPERTY").size)
}
Expand Down
19 changes: 13 additions & 6 deletions plugins/base/src/test/kotlin/signatures/ObviousTypeSkippingTest.kt
Expand Up @@ -62,12 +62,12 @@ class ObviousTypeSkippingTest : BaseAbstractTest(
forProperty("val underTest = if (true) println(5) else null", "val underTest: Unit?"),
forProperty("val underTest: Any = if (true) println(5) else 5", "val underTest: Any"),
forProperty("val underTest = if (true) println(5) else 5", "val underTest: Any"),
forFunction("fun <T: Iterable<Any>> T.underTest() {}", "fun <T : Iterable<Any>> T.underTest()"),
forFunction("fun <T: Iterable<Any?>> T.underTest() {}", "fun <T : Iterable<Any?>> T.underTest()"),
forFunction("fun <T: Iterable<Any?>?> T.underTest() {}", "fun <T : Iterable<Any?>?> T.underTest()"),
forFunction("fun <T: Any> T.underTest() {}", "fun <T : Any> T.underTest()"),
forFunction("fun <T: Any?> T.underTest() {}", "fun <T> T.underTest()"),
forFunction("fun <T> T.underTest() {}", "fun <T> T.underTest()"),
forExtension("fun <T: Iterable<Any>> T.underTest() {}", "fun <T : Iterable<Any>> T.underTest()"),
forExtension("fun <T: Iterable<Any?>> T.underTest() {}", "fun <T : Iterable<Any?>> T.underTest()"),
forExtension("fun <T: Iterable<Any?>?> T.underTest() {}", "fun <T : Iterable<Any?>?> T.underTest()"),
forExtension("fun <T: Any> T.underTest() {}", "fun <T : Any> T.underTest()"),
forExtension("fun <T: Any?> T.underTest() {}", "fun <T> T.underTest()"),
forExtension("fun <T> T.underTest() {}", "fun <T> T.underTest()"),
forClass("class Testable<T: Any>", "class Testable<T : Any>"),
forClass("class Testable<T: Any?>", "class Testable<T>"),
forClass("class Testable<T: Any?>(t: T)", "class Testable<T>(t: T)"),
Expand Down Expand Up @@ -167,6 +167,13 @@ private fun forFunction(codeFragment: String, expectedSignature: String, functio
OnOwnPage(functionName)
)

private fun forExtension(codeFragment: String, expectedSignature: String, functionName: String = "underTest") =
TestData(
codeFragment,
expectedSignature,
OnParentPage(PackagePageNode::class, ContentKind.Extensions),
OnOwnPage(functionName)
)
private fun forMethod(
codeFragment: String,
expectedSignature: String,
Expand Down

0 comments on commit d7a0317

Please sign in to comment.