From e6184e5171d5a16bb4cc1fbd296309a66795eae5 Mon Sep 17 00:00:00 2001 From: Błażej Kardyś Date: Wed, 15 Jul 2020 09:00:51 +0200 Subject: Javadoc constructor anchor link fix --- .../main/kotlin/javadoc/location/JavadocLocationProvider.kt | 12 +++++------- plugins/javadoc/src/main/resources/views/class.korte | 8 +++----- 2 files changed, 8 insertions(+), 12 deletions(-) (limited to 'plugins/javadoc/src') diff --git a/plugins/javadoc/src/main/kotlin/javadoc/location/JavadocLocationProvider.kt b/plugins/javadoc/src/main/kotlin/javadoc/location/JavadocLocationProvider.kt index f77970eb..3a48261c 100644 --- a/plugins/javadoc/src/main/kotlin/javadoc/location/JavadocLocationProvider.kt +++ b/plugins/javadoc/src/main/kotlin/javadoc/location/JavadocLocationProvider.kt @@ -6,10 +6,7 @@ import org.jetbrains.dokka.base.resolvers.local.BaseLocationProvider import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.links.Nullable import org.jetbrains.dokka.links.parent -import org.jetbrains.dokka.model.OtherParameter -import org.jetbrains.dokka.model.PrimitiveJavaType -import org.jetbrains.dokka.model.TypeConstructor -import org.jetbrains.dokka.model.UnresolvedBound +import org.jetbrains.dokka.model.* import org.jetbrains.dokka.pages.ContentPage import org.jetbrains.dokka.pages.PageNode import org.jetbrains.dokka.pages.RootPageNode @@ -79,12 +76,13 @@ class JavadocLocationProvider(pageRoot: RootPageNode, dokkaContext: DokkaContext } private fun JavadocFunctionNode.getAnchor(): String = - "$name-${parameters.joinToString(",%20") { - when (val bound = it.typeBound) { + "$name-${parameters.joinToString("-") { + when (val bound = if (it.typeBound is org.jetbrains.dokka.model.Nullable) it.typeBound.inner else it.typeBound) { is TypeConstructor -> bound.dri.classNames.orEmpty() is OtherParameter -> bound.name is PrimitiveJavaType -> bound.name is UnresolvedBound -> bound.name + is JavaObject -> "Object" else -> bound.toString() } }}-" @@ -93,7 +91,7 @@ class JavadocLocationProvider(pageRoot: RootPageNode, dokkaContext: DokkaContext private fun anchorForDri(dri: DRI): String = dri.callable?.let { callable -> - "${callable.name}-${callable.params.joinToString(",%20") { + "${callable.name}-${callable.params.joinToString("-") { ((it as? Nullable)?.wrapped ?: it).toString() }}-" } ?: dri.classNames.orEmpty() diff --git a/plugins/javadoc/src/main/resources/views/class.korte b/plugins/javadoc/src/main/resources/views/class.korte index 7c0ca368..a909bf3c 100644 --- a/plugins/javadoc/src/main/resources/views/class.korte +++ b/plugins/javadoc/src/main/resources/views/class.korte @@ -118,7 +118,7 @@ {% for constructor in constructors %} {{ constructor.name }}({{ constructor.inlineParameters|raw }}) + href="#{{ constructor.anchorLink }}">{{ constructor.name }}({{ constructor.inlineParameters|raw }}) {{ constructor.brief|raw }} {% endfor %} @@ -220,9 +220,7 @@

Constructor Detail

{% for constructor in constructors %} - - - +