Skip to content

Commit 213e275

Browse files
committed
Fix malformed URI issues in Inkuire in Scaladoc
1 parent ca35a82 commit 213e275

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

scaladoc-js/main/src/searchbar/SearchbarComponent.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,14 @@ class SearchbarComponent(engine: SearchbarEngine, inkuireEngine: InkuireJSSearch
6262
icon.classList.add(m.entryType.take(2))
6363

6464
val resultA = document.createElement("a").asInstanceOf[html.Anchor]
65+
// Inkuire pageLocation should start with e (external)
66+
// or i (internal). The rest of the string is an absolute
67+
// or relative URL
6568
resultA.href =
66-
if(new URI(m.pageLocation).isAbsolute()) {
67-
m.pageLocation
69+
if (m.pageLocation(0) == 'e') {
70+
m.pageLocation.substring(1)
6871
} else {
69-
Globals.pathToRoot + m.pageLocation
72+
Globals.pathToRoot + m.pageLocation.substring(1)
7073
}
7174
resultA.text = m.functionName
7275
resultA.onclick = (event: Event) =>

scaladoc/src/dotty/tools/scaladoc/Inkuire.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ object Inkuire {
114114
name: String,
115115
packageName: String,
116116
uri: String,
117+
isLocationExternal: Boolean,
117118
entryType: String
118119
)
119120

@@ -333,7 +334,7 @@ object Inkuire {
333334
("signature", serialize(e.signature)),
334335
("name", serialize(e.name)),
335336
("packageName", serialize(e.packageName)),
336-
("uri", serialize(e.uri)),
337+
("uri", serialize((if e.isLocationExternal then "e" else "i") + e.uri)),
337338
("entryType", serialize(e.entryType))
338339
)
339340
}

scaladoc/src/dotty/tools/scaladoc/tasty/InkuireSupport.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ trait InkuireSupport(using DocContext) extends Resources:
115115
name = name,
116116
packageName = ownerName,
117117
uri = methodSymbol.dri.externalLink.getOrElse(escapedAbsolutePathWithAnchor(methodSymbol.dri)),
118+
isLocationExternal = methodSymbol.dri.externalLink.isDefined,
118119
entryType = "def"
119120
)
120121
val curriedSgn = sgn.copy(signature = Inkuire.curry(sgn.signature))
@@ -143,6 +144,7 @@ trait InkuireSupport(using DocContext) extends Resources:
143144
name = name,
144145
packageName = ownerName,
145146
uri = valSymbol.dri.externalLink.getOrElse(escapedAbsolutePathWithAnchor(valSymbol.dri)),
147+
isLocationExternal = valSymbol.dri.externalLink.isDefined,
146148
entryType = "val"
147149
)
148150
val curriedSgn = sgn.copy(signature = Inkuire.curry(sgn.signature))

0 commit comments

Comments
 (0)