diff --git a/scaladoc/src/dotty/tools/scaladoc/ExternalDocLink.scala b/scaladoc/src/dotty/tools/scaladoc/ExternalDocLink.scala index 6a7b84aec0e9..97e0d309d6b8 100644 --- a/scaladoc/src/dotty/tools/scaladoc/ExternalDocLink.scala +++ b/scaladoc/src/dotty/tools/scaladoc/ExternalDocLink.scala @@ -30,7 +30,7 @@ object ExternalDocLink: case path :: apiUrl :: Nil => for { url <- tryParse(mapping, "url")(URL(apiUrl)) } yield ExternalDocLink( - List(s"$path.*".r), + List(s"${Regex.quote(path)}.*".r), url, DocumentationKind.Scaladoc2, None @@ -65,4 +65,4 @@ object ExternalDocLink: packageList ) case _ => - fail(mapping, "Accepted format: `regexStr::docToolStr::urlStr[::rest]`") \ No newline at end of file + fail(mapping, "Accepted format: `regexStr::docToolStr::urlStr[::rest]`") diff --git a/scaladoc/test/dotty/tools/scaladoc/ExternalLocationProviderIntegrationTest.scala b/scaladoc/test/dotty/tools/scaladoc/ExternalLocationProviderIntegrationTest.scala index 4f4f8c972b4e..c1fc8f8cb044 100644 --- a/scaladoc/test/dotty/tools/scaladoc/ExternalLocationProviderIntegrationTest.scala +++ b/scaladoc/test/dotty/tools/scaladoc/ExternalLocationProviderIntegrationTest.scala @@ -55,9 +55,14 @@ class Scaladoc3ExternalLocationProviderIntegrationTest extends ExternalLocationP ) ) +def getScalaLibraryPath: String = { + val classpath: List[String] = System.getProperty("java.class.path").split(java.io.File.pathSeparatorChar).toList + classpath.find(_.contains("scala-library-2")).getOrElse("foobarbazz") // If we don't find the scala 2 library, the test will fail +} + class Scaladoc2LegacyExternalLocationProviderIntegrationTest extends LegacyExternalLocationProviderIntegrationTest( "externalScaladoc2", - List(".*scala.*#https://www.scala-lang.org/api/current/"), + List(s"${getScalaLibraryPath}#https://www.scala-lang.org/api/current/"), List( "https://www.scala-lang.org/api/current/scala/util/matching/Regex$$Match.html", "https://www.scala-lang.org/api/current/scala/Predef$.html#String",