From 7d8dadeffe73ebe6bbf094c7e2ca3ee9d18528fd Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Mon, 11 Jul 2016 13:30:53 +0200 Subject: Implement by name in parameter lists --- dottydoc/js/src/html/Member.scala | 2 +- dottydoc/js/src/model/references.scala | 1 + dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala | 2 +- dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala | 6 +++++- .../scala/dotty/tools/dottydoc/model/comment/BodyEntities.scala | 2 +- .../src/main/scala/dotty/tools/dottydoc/model/factories.scala | 2 +- 6 files changed, 10 insertions(+), 5 deletions(-) (limited to 'dottydoc') diff --git a/dottydoc/js/src/html/Member.scala b/dottydoc/js/src/html/Member.scala index 1786f745a..772a1ed23 100644 --- a/dottydoc/js/src/html/Member.scala +++ b/dottydoc/js/src/html/Member.scala @@ -86,7 +86,7 @@ trait MemberLayout { xs.flatMap { tr => Seq( span(cls := "param-name", tr.title).render, - span(cls := "type-separator no-left-margin", ":").render, + span(cls := "type-separator no-left-margin", if (tr.isByName) ": =>" else ":").render, span(referenceToLinks(tr.ref)).render, span(cls := "type-separator no-left-margin", ",").render ) diff --git a/dottydoc/js/src/model/references.scala b/dottydoc/js/src/model/references.scala index 8e725b5d9..3fab228af 100644 --- a/dottydoc/js/src/model/references.scala +++ b/dottydoc/js/src/model/references.scala @@ -35,6 +35,7 @@ trait AndTypeReference extends Reference { trait NamedReference extends Reference { val title: String val ref: Reference + val isByName: Boolean } @ScalaJSDefined diff --git a/dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala b/dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala index 105aeaef6..c1ad520ff 100644 --- a/dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala +++ b/dottydoc/jvm/src/dotty/tools/dottydoc/core/TypeLinkingPhases.scala @@ -63,7 +63,7 @@ trait TypeLinker extends MemberLookup { rv.copy(left = linkReference(ent, left, packs), right = linkReference(ent, right, packs)) case rv @ AndTypeReference(left, right) => rv.copy(left = linkReference(ent, left, packs), right = linkReference(ent, right, packs)) - case rv @ NamedReference(_, ref) => rv.copy(ref = linkReference(ent, ref, packs)) + case rv @ NamedReference(_, ref, _) => rv.copy(ref = linkReference(ent, ref, packs)) case _ => rv } } diff --git a/dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala b/dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala index da6e4d909..621ab0868 100644 --- a/dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala +++ b/dottydoc/jvm/src/dotty/tools/dottydoc/model/json.scala @@ -20,6 +20,10 @@ object json { } } + implicit class JsonBoolean(val boo: Boolean) extends AnyVal { + def json: String = if (boo) "true" else "false" + } + implicit class JsonComment(val cmt: Comment) extends AnyVal { def json: String = s"""{"body":${cmt.body.json},"short":${cmt.short.json}}""" } @@ -43,7 +47,7 @@ object json { case ref: OrTypeReference => s"""{"left":${refToJson(ref.left)},"right":${refToJson(ref.right)},"kind":"OrTypeReference"}""" case ref: NamedReference => - s"""{"title":${ref.title.json},"ref":${refToJson(ref.ref)},"kind":"NamedReference"}""" + s"""{"title":${ref.title.json},"ref":${refToJson(ref.ref)},"isByName":${ref.isByName.json},"kind":"NamedReference"}""" case ref: ConstantReference => s"""{"title":${ref.title.json},"kind": "ConstantReference"}""" } diff --git a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/comment/BodyEntities.scala b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/comment/BodyEntities.scala index 526eff50c..d7ad4de71 100644 --- a/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/comment/BodyEntities.scala +++ b/dottydoc/shared/src/main/scala/dotty/tools/dottydoc/model/comment/BodyEntities.scala @@ -103,5 +103,5 @@ sealed trait Reference final case class TypeReference(title: String, tpeLink: MaterializableLink, paramLinks: List[MaterializableLink]) extends Reference final case class OrTypeReference(left: Reference, right: Reference) extends Reference final case class AndTypeReference(left: Reference, right: Reference) extends Reference -final case class NamedReference(title: String, ref: Reference) extends Reference +final case class NamedReference(title: String, ref: Reference, isByName: Boolean = false) extends Reference final case class ConstantReference(title: String) extends Reference 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 452c1a3b4..72e52a96f 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 @@ -113,7 +113,7 @@ object factories { case mt: MethodType => mt.paramNames.zip(mt.paramTypes).map { case (name, tpe) => - NamedReference(name.decode.toString, returnType(tpe)) + NamedReference(name.decode.toString, returnType(tpe), tpe.isInstanceOf[ExprType]) } :: paramLists(mt.resultType) case annot: AnnotatedType => paramLists(annot.tpe) -- cgit v1.2.3