diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2017-01-13 11:39:48 +0100 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2017-01-31 14:31:08 +0100 |
commit | 2c08c956d39d9a06b3c5aa7eddc3b8c903f807df (patch) | |
tree | e0440216f9c70a023491f0e1ef00a0154b5806ee /doc-tool/src/dotty/tools/dottydoc/model | |
parent | 64a13956d5611117c7ec4913a79363694f1e70c3 (diff) | |
download | dotty-2c08c956d39d9a06b3c5aa7eddc3b8c903f807df.tar.gz dotty-2c08c956d39d9a06b3c5aa7eddc3b8c903f807df.tar.bz2 dotty-2c08c956d39d9a06b3c5aa7eddc3b8c903f807df.zip |
Add annotations to doc AST
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/model')
4 files changed, 24 insertions, 5 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/entities.scala b/doc-tool/src/dotty/tools/dottydoc/model/entities.scala index 52379f9ad..aea09f745 100644 --- a/doc-tool/src/dotty/tools/dottydoc/model/entities.scala +++ b/doc-tool/src/dotty/tools/dottydoc/model/entities.scala @@ -19,6 +19,8 @@ trait Entity { def parent: Entity + def annotations: List[String] + /** All parents from package level i.e. Package to Object to Member etc */ def parents: List[Entity] = parent match { case NonEntity => Nil @@ -105,12 +107,13 @@ trait Var extends Entity with Modifiers with ReturnValue { } trait NonEntity extends Entity { - val name = "" - val symbol = NoSymbol + val annotations = Nil + val name = "" + val symbol = NoSymbol val comment = None - val path = Nil - val kind = "" - val parent = NonEntity + val path = Nil + val kind = "" + val parent = NonEntity } final case object NonEntity extends NonEntity diff --git a/doc-tool/src/dotty/tools/dottydoc/model/factories.scala b/doc-tool/src/dotty/tools/dottydoc/model/factories.scala index 2976c2f48..e47c683f3 100644 --- a/doc-tool/src/dotty/tools/dottydoc/model/factories.scala +++ b/doc-tool/src/dotty/tools/dottydoc/model/factories.scala @@ -32,6 +32,8 @@ object factories { case sym => path(sym.owner) :+ sym.name.show } + def annotations(sym: Symbol)(implicit ctx: Context): List[String] = + sym.annotations.map(_.symbol.showFullName) private val product = """Product[1-9][0-9]*""".r diff --git a/doc-tool/src/dotty/tools/dottydoc/model/internal.scala b/doc-tool/src/dotty/tools/dottydoc/model/internal.scala index 09f642d0b..9787da7ce 100644 --- a/doc-tool/src/dotty/tools/dottydoc/model/internal.scala +++ b/doc-tool/src/dotty/tools/dottydoc/model/internal.scala @@ -13,6 +13,7 @@ object internal { final case class PackageImpl( symbol: Symbol, + annotations: List[String], name: String, var members: List[Entity], path: List[String], @@ -24,6 +25,7 @@ object internal { final case class ClassImpl( symbol: Symbol, + annotations: List[String], name: String, members: List[Entity], modifiers: List[String], @@ -36,6 +38,7 @@ object internal { final case class CaseClassImpl( symbol: Symbol, + annotations: List[String], name: String, members: List[Entity], modifiers: List[String], @@ -48,6 +51,7 @@ object internal { final case class TraitImpl( symbol: Symbol, + annotations: List[String], name: String, members: List[Entity], modifiers: List[String], @@ -60,6 +64,7 @@ object internal { final case class ObjectImpl( symbol: Symbol, + annotations: List[String], name: String, members: List[Entity], modifiers: List[String], @@ -70,6 +75,7 @@ object internal { final case class DefImpl( symbol: Symbol, + annotations: List[String], name: String, modifiers: List[String], path: List[String], @@ -82,6 +88,7 @@ object internal { final case class ValImpl( symbol: Symbol, + annotations: List[String], name: String, modifiers: List[String], path: List[String], diff --git a/doc-tool/src/dotty/tools/dottydoc/model/java.scala b/doc-tool/src/dotty/tools/dottydoc/model/java.scala index 01dac2685..6ec35875f 100644 --- a/doc-tool/src/dotty/tools/dottydoc/model/java.scala +++ b/doc-tool/src/dotty/tools/dottydoc/model/java.scala @@ -47,6 +47,7 @@ object java { implicit class JavaPackage(val ent: Package) extends AnyVal { def asJava(extras: Map[String, _] = Map.empty): JMap[String, _] = (Map( "kind" -> ent.kind, + "annotations" -> ent.annotations.asJava, "name" -> ent.name, "path" -> ent.path.asJava, "members" -> ent.members.map(_.asJava()).asJava, @@ -57,6 +58,7 @@ object java { implicit class JavaCaseClass(val ent: CaseClass) extends AnyVal { def asJava(extras: Map[String, _] = Map.empty): JMap[String, _] = (Map( "kind" -> ent.kind, + "annotations" -> ent.annotations.asJava, "name" -> ent.name, "members" -> ent.members.map(_.asJava()).asJava, "modifiers" -> ent.modifiers.asJava, @@ -70,6 +72,7 @@ object java { implicit class JavaClass(val ent: Class) extends AnyVal { def asJava(extras: Map[String, _] = Map.empty): JMap[String, _] = (Map( "kind" -> ent.kind, + "annotations" -> ent.annotations.asJava, "name" -> ent.name, "members" -> ent.members.map(_.asJava()).asJava, "modifiers" -> ent.modifiers.asJava, @@ -83,6 +86,7 @@ object java { implicit class JavaTrait(val ent: Trait) extends AnyVal { def asJava(extras: Map[String, _] = Map.empty): JMap[String, _] = (Map( "kind" -> ent.kind, + "annotations" -> ent.annotations.asJava, "name" -> ent.name, "members" -> ent.members.map(_.asJava()).asJava, "modifiers" -> ent.modifiers.asJava, @@ -96,6 +100,7 @@ object java { implicit class JavaObject(val ent: Object) extends AnyVal { def asJava(extras: Map[String, _] = Map.empty): JMap[String, _] = (Map( "kind" -> ent.kind, + "annotations" -> ent.annotations.asJava, "name" -> ent.name, "members" -> ent.members.map(_.asJava()).asJava, "modifiers" -> ent.modifiers.asJava, @@ -108,6 +113,7 @@ object java { implicit class JavaDef(val ent: Def) extends AnyVal { def asJava: JMap[String, _] = Map( "kind" -> ent.kind, + "annotations" -> ent.annotations.asJava, "name" -> ent.name, "modifiers" -> ent.modifiers.asJava, "path" -> ent.path.asJava, @@ -122,6 +128,7 @@ object java { implicit class JavaVal(val ent: Val) extends AnyVal { def asJava: JMap[String, _] = Map( "kind" -> ent.kind, + "annotations" -> ent.annotations.asJava, "name" -> ent.name, "modifiers" -> ent.modifiers.asJava, "path" -> ent.path.asJava, |