aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/base/src/main/kotlin/resolvers/local/LocationProvider.kt9
-rw-r--r--plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/SearchScriptsCreator.kt9
2 files changed, 14 insertions, 4 deletions
diff --git a/plugins/base/src/main/kotlin/resolvers/local/LocationProvider.kt b/plugins/base/src/main/kotlin/resolvers/local/LocationProvider.kt
index 3775e94e..0a095153 100644
--- a/plugins/base/src/main/kotlin/resolvers/local/LocationProvider.kt
+++ b/plugins/base/src/main/kotlin/resolvers/local/LocationProvider.kt
@@ -1,5 +1,6 @@
package org.jetbrains.dokka.base.resolvers.local
+import org.jetbrains.dokka.DokkaException
import org.jetbrains.dokka.links.DRI
import org.jetbrains.dokka.model.DisplaySourceSet
import org.jetbrains.dokka.pages.PageNode
@@ -10,3 +11,11 @@ interface LocationProvider {
fun pathToRoot(from: PageNode): String
fun ancestors(node: PageNode): List<PageNode>
}
+
+fun LocationProvider.resolveOrThrow(dri: DRI, sourceSets: Set<DisplaySourceSet>, context: PageNode? = null): String =
+ resolve(dri = dri, sourceSets = sourceSets, context = context)
+ ?: throw DokkaException("Cannot resolve path for $dri")
+
+fun LocationProvider.resolveOrThrow(node: PageNode, context: PageNode? = null, skipExtension: Boolean = false): String =
+ resolve(node = node, context = context, skipExtension = skipExtension)
+ ?: throw DokkaException("Cannot resolve path for ${node.name}")
diff --git a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/SearchScriptsCreator.kt b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/SearchScriptsCreator.kt
index c811ace3..589aeb51 100644
--- a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/SearchScriptsCreator.kt
+++ b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/SearchScriptsCreator.kt
@@ -6,6 +6,7 @@ import org.jetbrains.dokka.javadoc.renderer.SearchRecord.Companion.allTypes
import org.jetbrains.dokka.DokkaConfiguration
import org.jetbrains.dokka.DokkaException
import org.jetbrains.dokka.base.renderers.sourceSets
+import org.jetbrains.dokka.base.resolvers.local.resolveOrThrow
import org.jetbrains.dokka.links.DRI
import org.jetbrains.dokka.model.DisplaySourceSet
import org.jetbrains.dokka.model.Documentable
@@ -105,7 +106,7 @@ class SearchScriptsCreator(private val locationProvider: JavadocLocationProvider
packageName = it.first.name,
classlikeName = it.second.name,
input = function,
- url = locationProvider.resolve(function.dri, it.first.sourceSets()) ?: throw DokkaException("Cannot resolve path for ${function.dri}")
+ url = locationProvider.resolveOrThrow(function.dri, it.first.sourceSets())
)
}
}
@@ -116,7 +117,7 @@ class SearchScriptsCreator(private val locationProvider: JavadocLocationProvider
packageName = it.first.name,
classlikeName = it.second.name,
property,
- locationProvider.resolve(property.dri, it.first.sourceSets())?: throw DokkaException("Cannot resolve path for ${property.dri}")
+ locationProvider.resolveOrThrow(property.dri, it.first.sourceSets())
)
}
}
@@ -127,7 +128,7 @@ class SearchScriptsCreator(private val locationProvider: JavadocLocationProvider
packageName = it.first.name,
classlikeName = it.second.name,
entry,
- locationProvider.resolve(entry.dri, it.first.sourceSets()) ?: throw DokkaException("Cannot resolve path for ${entry.dri}")
+ locationProvider.resolveOrThrow(entry.dri, it.first.sourceSets())
)
}
}
@@ -187,7 +188,7 @@ class SearchScriptsCreator(private val locationProvider: JavadocLocationProvider
sourceSets: Set<DisplaySourceSet>,
label: String
): String =
- locationProvider.resolve(dri, sourceSets)!!.formatToEndWithHtml() + "#" + label
+ locationProvider.resolveOrThrow(dri, sourceSets).formatToEndWithHtml() + "#" + label
}
private data class SearchRecord(