aboutsummaryrefslogtreecommitdiff
path: root/dottydoc
diff options
context:
space:
mode:
Diffstat (limited to 'dottydoc')
-rw-r--r--dottydoc/js/src/html/Member.scala10
-rw-r--r--dottydoc/js/src/model/entities.scala17
-rw-r--r--dottydoc/jvm/src/dotty/tools/dottydoc/core/Phases.scala2
-rw-r--r--dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala2
-rw-r--r--dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/entities.scala26
-rw-r--r--dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala7
-rw-r--r--dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/internal.scala2
7 files changed, 46 insertions, 20 deletions
diff --git a/dottydoc/js/src/html/Member.scala b/dottydoc/js/src/html/Member.scala
index c4989e762..8b6a85e59 100644
--- a/dottydoc/js/src/html/Member.scala
+++ b/dottydoc/js/src/html/Member.scala
@@ -48,7 +48,10 @@ trait MemberLayout {
onclick := { () => toggleBetween(shortComment, and = fullComment) },
div(
cls := "mdl-cell mdl-cell--12-col",
- span(cls := "member-name", m.modifiers.mkString(" ") + " " + m.kind + " " + m.name),
+ span(
+ cls := "member-name",
+ m.modifiers.mkString(" ") + " " + m.kind + " " + m.name + typeParams(m)
+ ),
returnValue(m, parent)
),
shortComment,
@@ -59,6 +62,11 @@ trait MemberLayout {
}
}
+ def typeParams(m: Entity): String = m match {
+ case d: Def if d.typeParams.nonEmpty => d.typeParams.mkString("[", ", ", "]")
+ case _ => ""
+ }
+
def returnValue(m: Entity with Modifiers, parent: Entity) = {
// shortens: "Option.this.A" => "A"
def shorten(s: String): String = s.split('.').toList match {
diff --git a/dottydoc/js/src/model/entities.scala b/dottydoc/js/src/model/entities.scala
index 4a4984a34..1d8c00b2c 100644
--- a/dottydoc/js/src/model/entities.scala
+++ b/dottydoc/js/src/model/entities.scala
@@ -21,9 +21,7 @@ import sjs.annotation.ScalaJSDefined
@ScalaJSDefined
trait Entity extends sjs.Object {
val kind: String
-
val name: String
-
val path: sjs.Array[String]
}
@@ -53,13 +51,15 @@ trait Object extends Class
trait Trait extends Class
@ScalaJSDefined
-trait Def extends Entity with Modifiers
+trait Def extends Entity with Modifiers {
+ val typeParams: sjs.Array[String]
+}
@ScalaJSDefined
-trait Val extends Def
+trait Val extends Entity with Modifiers
@ScalaJSDefined
-trait Var extends Def
+trait Var extends Entity with Modifiers
object ops {
val EntitiesWithMembers =
@@ -79,4 +79,11 @@ object ops {
val members = mbrs
}
}
+
+ implicit class EntityOps(val ent: Entity) {
+ def typeParams: sjs.Array[String] =
+ if (ent.kind == "def")
+ ent.asInstanceOf[Def].typeParams
+ else sjs.Array()
+ }
}
diff --git a/dottydoc/jvm/src/dotty/tools/dottydoc/core/Phases.scala b/dottydoc/jvm/src/dotty/tools/dottydoc/core/Phases.scala
index e4da0a971..f620c53c8 100644
--- a/dottydoc/jvm/src/dotty/tools/dottydoc/core/Phases.scala
+++ b/dottydoc/jvm/src/dotty/tools/dottydoc/core/Phases.scala
@@ -80,7 +80,7 @@ object Phases {
/** def */
case d: DefDef =>
- DefImpl(filteredName(d.name.toString), flags(d), path(d), returnType(d, d.tpt))
+ DefImpl(filteredName(d.name.toString), flags(d), path(d), returnType(d, d.tpt), typeParams(d), paramLists(d))
/** val */
case v: ValDef if !v.symbol.is(Flags.ModuleVal) =>
diff --git a/dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala b/dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala
index fef880351..4a33e5773 100644
--- a/dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala
+++ b/dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala
@@ -57,7 +57,7 @@ object json extends DefaultJsonProtocol {
}
implicit val valFormat: JsonFormat[ValImpl] = lazyFormat(jsonFormat(ValImpl, "name", "modifiers", "path", "returnValue", "comment"))
- implicit val defFormat: JsonFormat[DefImpl] = lazyFormat(jsonFormat(DefImpl, "name", "modifiers", "path", "returnValue", "comment"))
+ implicit val defFormat: JsonFormat[DefImpl] = lazyFormat(jsonFormat(DefImpl, "name", "modifiers", "path", "returnValue", "paramTypes", "paramLists", "comment"))
implicit val objFormat: JsonFormat[ObjectImpl] = lazyFormat(jsonFormat(ObjectImpl, "name", "members", "modifiers", "path", "comment"))
implicit val traitormat: JsonFormat[TraitImpl] = lazyFormat(jsonFormat(TraitImpl, "name", "members", "modifiers", "path", "comment"))
implicit val cclassFormat: JsonFormat[CaseClassImpl] = lazyFormat(jsonFormat(CaseClassImpl, "name", "members", "modifiers", "path", "comment"))
diff --git a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/entities.scala b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/entities.scala
index 0ecfd04be..f2f4d9eef 100644
--- a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/entities.scala
+++ b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/entities.scala
@@ -44,13 +44,13 @@ trait ReturnValue {
}
trait Package extends Entity with Members {
- override val kind = "package"
+ val kind = "package"
def children: List[Entity with Members]
}
trait Class extends Entity with Members with Modifiers {
- override val kind = "class"
+ val kind = "class"
}
trait CaseClass extends Class {
@@ -66,23 +66,25 @@ trait Object extends Class {
}
trait Def extends Entity with Modifiers with ReturnValue {
- override val kind = "def"
+ def typeParams: List[String]
+ def paramLists: List[List[(String, MaterializableLink)]]
+ val kind = "def"
}
-trait Val extends Def {
- override val kind = "val"
+trait Val extends Entity with Modifiers with ReturnValue {
+ val kind = "val"
}
-trait Var extends Def {
- override val kind = "var"
+trait Var extends Entity with Modifiers with ReturnValue {
+ val kind = "var"
}
trait NonEntity extends Entity {
- override val name = ""
- override val comment = None
- override val path = Nil
- override val kind = ""
- override val parent = NonEntity
+ val name = ""
+ val comment = None
+ val path = Nil
+ val kind = ""
+ val parent = NonEntity
}
final case object NonEntity extends NonEntity
diff --git a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala
index 3e5745a18..a97ee2bb5 100644
--- a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala
+++ b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/factories.scala
@@ -58,6 +58,13 @@ object factories {
UnsetLink(Text(cleanTitle(tpt.show)), cleanQuery(tpt.show))
}
+ def typeParams(t: DefDef)(implicit ctx: Context): List[String] =
+ t.tparams.map(_.symbol.name.toString)
+
+ def paramLists(t: DefDef)(implicit ctx: Context): List[List[(String, MaterializableLink)]] = {
+ Nil
+ }
+
def filteredName(str: String) = str
.replaceAll("\\$colon", ":")
.replaceAll("\\$plus", "+")
diff --git a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/internal.scala b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/internal.scala
index 7535504b6..5d431782e 100644
--- a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/internal.scala
+++ b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/internal.scala
@@ -56,6 +56,8 @@ object internal {
modifiers: List[String],
path: List[String],
var returnValue: MaterializableLink,
+ var typeParams: List[String] = Nil,
+ var paramLists: List[List[(String, MaterializableLink)]] = Nil,
var comment: Option[Comment] = None
) extends Def with Impl