From 396f99311c2db1545212c82463e559ac4b856d1f Mon Sep 17 00:00:00 2001 From: Aleksander Boruch-Gruszecki Date: Tue, 15 Dec 2020 21:53:35 +0100 Subject: [PATCH] Scala3doc: fix rendering source links on Windows --- scala3doc/src/dotty/dokka/SourceLinks.scala | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scala3doc/src/dotty/dokka/SourceLinks.scala b/scala3doc/src/dotty/dokka/SourceLinks.scala index 470b22deddf4..894ed9346636 100644 --- a/scala3doc/src/dotty/dokka/SourceLinks.scala +++ b/scala3doc/src/dotty/dokka/SourceLinks.scala @@ -6,7 +6,10 @@ import liqp.Template import dotty.dokka.model.api._ import dotty.tools.dotc.core.Contexts.Context -def pathToString(p: Path) = p.toString.replace('\\', '/') +def pathToString(p: Path) = + import scala.jdk.CollectionConverters._ + // !!! gives wrong result for absolute paths! + p.iterator.asScala.mkString("/") trait SourceLink: val path: Option[Path] = None @@ -34,7 +37,7 @@ case class WebBasedSourceLink(prefix: String, revision: String, subPath: String) override def render(path: Path, operation: String, line: Option[Int]): String = val action = if operation == "view" then "blob" else operation val linePart = line.fold("")(l => s"#L$l") - s"$prefix/$action/$revision$subPath/$path$linePart" + s"$prefix/$action/$revision$subPath/${pathToString(path)}$linePart" object SourceLink: val SubPath = "([^=]+)=(.+)".r @@ -173,4 +176,4 @@ object SourceLinks: ctx.args.revision, // TODO (https://github.com/lampepfl/scala3doc/issues/240): configure source root Paths.get("").toAbsolutePath - ) \ No newline at end of file + )