aboutsummaryrefslogtreecommitdiff
path: root/dottydoc/jvm/src/dotty/tools/dottydoc/model/CommentParsers.scala
blob: 08d9d4a5ad64a1850aad4d0ead7efdb91c123fc5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package dotty.tools
package dottydoc
package model

import dotc.core.Symbols.Symbol
import dotc.core.Contexts.Context

object CommentParsers {
  import comment._
  import BodyParsers._
  import Entities.{Entity, Package}

  sealed class WikiParser
  extends CommentCleaner with CommentParser with CommentExpander {
    def parseHtml(sym: Symbol, entity: Entity, packages: Map[String, Package])(implicit ctx: Context): Option[Comment] =
      ctx.base.docstring(sym).map { d =>
        val expanded = expand(sym)
        parse(entity, packages, clean(expanded), expanded, d.pos).toHtml(entity) match {
          case "" => None
          case x  => Some(Comment(x))
        }
      }.flatten
    }

  val wikiParser = new WikiParser
}