aboutsummaryrefslogtreecommitdiff
path: root/dottydoc/js
diff options
context:
space:
mode:
Diffstat (limited to 'dottydoc/js')
-rw-r--r--dottydoc/js/src/html/Member.scala50
-rw-r--r--dottydoc/js/src/model/references.scala12
2 files changed, 60 insertions, 2 deletions
diff --git a/dottydoc/js/src/html/Member.scala b/dottydoc/js/src/html/Member.scala
index 271885753..1d84e7831 100644
--- a/dottydoc/js/src/html/Member.scala
+++ b/dottydoc/js/src/html/Member.scala
@@ -119,7 +119,7 @@ trait MemberLayout {
"[",
tref
.paramLinks
- .map(linkToAnchor)
+ .map(referenceToLinks)
.flatMap(link => Seq(link, span(cls := "type-separator no-left-margin", ",").render))
.toList.dropRight(1),
"]"
@@ -141,6 +141,30 @@ trait MemberLayout {
span(cls := "type-separator", "&"),
referenceToLinks(right)
).render
+
+ case "BoundsReference" =>
+ val (low, high) = (ref.asInstanceOf[BoundsReference].low, ref.asInstanceOf[BoundsReference].high)
+ span(
+ referenceToLinks(low),
+ span(cls := "type-separator", "<:"),
+ referenceToLinks(high)
+ ).render
+
+ case "FunctionReference" => {
+ val func = ref.asInstanceOf[FunctionReference]
+ span(
+ cls := "no-left-margin",
+ if (func.args.length > 1) "(" else "",
+ if (func.args.isEmpty)
+ span("()")
+ else func
+ .args
+ .map(referenceToLinks)
+ .flatMap(link => Seq(link, span(cls := "type-separator no-left-margin", ",").render)).init.toList,
+ if (func.args.length > 1) ") => " else " => ",
+ referenceToLinks(func.returnValue)
+ ).render
+ }
}
}
@@ -183,7 +207,7 @@ trait MemberLayout {
returnValue,
"[",
trv.paramLinks
- .map(decodeTpeLink)
+ .map(link)
.flatMap { sp =>
Seq(sp, span(cls := "type-separator no-left-margin", ",").render)
}
@@ -208,6 +232,28 @@ trait MemberLayout {
span(cls := "type-separator", "&"),
link(right)
).render
+
+ case "BoundsReference" =>
+ val (low, high) = (rv.asInstanceOf[BoundsReference].low, rv.asInstanceOf[BoundsReference].high)
+ span(
+ link(low),
+ span(cls := "type-separator", "<:"),
+ link(high)
+ ).render
+ case "FunctionReference" =>
+ val func = rv.asInstanceOf[FunctionReference]
+ span(
+ cls := "no-left-margin",
+ if (func.args.length > 1) "(" else "",
+ if (func.args.isEmpty)
+ span("()")
+ else func
+ .args
+ .map(link)
+ .flatMap(link => Seq(link, span(cls := "type-separator no-left-margin", ",").render)).init.toList,
+ if (func.args.length > 1) ") => " else " => ",
+ link(func.returnValue)
+ ).render
}
}
diff --git a/dottydoc/js/src/model/references.scala b/dottydoc/js/src/model/references.scala
index b0e8a8674..7cd396e94 100644
--- a/dottydoc/js/src/model/references.scala
+++ b/dottydoc/js/src/model/references.scala
@@ -32,6 +32,12 @@ trait AndTypeReference extends Reference {
}
@ScalaJSDefined
+trait BoundsReference extends Reference {
+ val low: Reference
+ val high: Reference
+}
+
+@ScalaJSDefined
trait NamedReference extends Reference {
val title: String
val ref: Reference
@@ -43,6 +49,12 @@ trait ConstantReference extends Reference {
val title: String
}
+@ScalaJSDefined
+trait FunctionReference extends Reference {
+ val args: sjs.Array[Reference]
+ val returnValue: Reference
+}
+
/** Materializable links */
@ScalaJSDefined
sealed trait MaterializableLink extends sjs.Object {