aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/model
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-01-13 11:39:48 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-01-31 14:31:08 +0100
commit2c08c956d39d9a06b3c5aa7eddc3b8c903f807df (patch)
treee0440216f9c70a023491f0e1ef00a0154b5806ee /doc-tool/src/dotty/tools/dottydoc/model
parent64a13956d5611117c7ec4913a79363694f1e70c3 (diff)
downloaddotty-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')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/entities.scala13
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/factories.scala2
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/internal.scala7
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/java.scala7
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,