aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/model/references.scala
diff options
context:
space:
mode:
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/model/references.scala')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/references.scala11
1 files changed, 10 insertions, 1 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/references.scala b/doc-tool/src/dotty/tools/dottydoc/model/references.scala
index 02304b302..a103347c1 100644
--- a/doc-tool/src/dotty/tools/dottydoc/model/references.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/model/references.scala
@@ -16,7 +16,16 @@ object references {
/** Use MaterializableLink for entities that need be picklable */
sealed trait MaterializableLink { def title: String }
final case class UnsetLink(title: String, query: String) extends MaterializableLink
- final case class MaterializedLink(title: String, target: String) extends MaterializableLink
+ final case class MaterializedLink(title: String, target: String) extends MaterializableLink {
+ def this(title: String, target: Entity) = this(title, target match {
+ case target: Package =>
+ target.path.mkString("/") + "/index.html"
+ case _: TypeAlias | _: Def | _: Val =>
+ target.parent.path.mkString("/") + ".html#" + target.signature
+ case _ =>
+ target.path.mkString("/") + ".html"
+ })
+ }
final case class NoLink(title: String, target: String) extends MaterializableLink
object AndOrTypeReference {