From 7b3bc6f97ee46981bd88852a50ee4a351bd4879d Mon Sep 17 00:00:00 2001 From: Marcin Aman Date: Wed, 16 Dec 2020 10:25:34 +0100 Subject: Resolve an issue with cross package linking in javadoc (#1659) --- .../org/jetbrains/dokka/javadoc/location/JavadocLocationProvider.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'plugins/javadoc/src/main/kotlin/org/jetbrains/dokka') diff --git a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/location/JavadocLocationProvider.kt b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/location/JavadocLocationProvider.kt index 440bfc2f..11d8420a 100644 --- a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/location/JavadocLocationProvider.kt +++ b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/location/JavadocLocationProvider.kt @@ -63,9 +63,9 @@ class JavadocLocationProvider(pageRoot: RootPageNode, dokkaContext: DokkaContext private operator fun IdentityHashMap>.get(dri: DRI) = this[nodeIndex[dri]] private fun List.relativeTo(context: List): String { - val contextPath = context.dropLast(1) - val commonPathElements = zip(contextPath).takeWhile { (a, b) -> a == b }.count() - return (List(contextPath.size - commonPathElements) { ".." } + this.drop(commonPathElements)).joinToString("/") + val contextPath = context.dropLast(1).flatMap { it.split("/") } + val commonPathElements = flatMap { it.split("/") }.zip(contextPath).takeWhile { (a, b) -> a == b }.count() + return (List(contextPath.size - commonPathElements) { ".." } + this.flatMap { it.split("/") }.drop(commonPathElements)).joinToString("/") } private fun JavadocClasslikePageNode.findAnchorableByDRI(dri: DRI): AnchorableJavadocNode? = -- cgit