trait DocComments extends AnyRef
- Alphabetic
- By Inheritance
- DocComments
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Type Members
- case class DocComment(raw: String, pos: Global.Position = NoPosition, codePos: Global.Position = NoPosition) extends Product with Serializable
- class ExpansionLimitExceeded extends Exception
- case class UseCase(comment: Global.DocComment, body: String, pos: Global.Position) extends Product with Serializable
Value Members
- def clearDocComments(): Unit
-
def
cookedDocComment(sym: Global.Symbol, docStr: String = ""): String
The raw doc comment of symbol
sym
, minus usecase and define sections, augmented by missing sections of an inherited doc comment.The raw doc comment of symbol
sym
, minus usecase and define sections, augmented by missing sections of an inherited doc comment. If a symbol does not have a doc comment but some overridden version of it does, the doc comment of the overridden version is copied instead. - val cookedDocComments: HashMap[Global.Symbol, String]
-
def
docCommentPos(sym: Global.Symbol): Global.Position
The position of the raw doc comment of symbol
sym
, or NoPosition if missing If a symbol does not have a doc comment but some overridden version of it does, the position of the doc comment of the overridden version is returned instead. -
val
docComments: WeakHashMap[Global.Symbol, Global.DocComment]
The raw doc comment map
The raw doc comment map
In IDE, background compilation runs get interrupted by reloading new sourcefiles. This is weak to avoid memleaks due to the doc of their cached symbols (e.g. in baseTypeSeq) between periodic doc reloads.
-
def
expandInheritdoc(parent: String, child: String, sym: Global.Symbol): String
Expand inheritdoc tags
Expand inheritdoc tags
- for the main comment we transform the inheritdoc into the super variable, and the variable expansion can expand it further
- for the param, tparam and throws sections we must replace comments on the spot
This is done separately, for two reasons: 1. It takes longer to run compared to merge 2. The inheritdoc annotation should not be used very often, as building the comment from pieces severely impacts performance
- parent
The source (or parent) comment
- child
The child (overriding member or usecase) comment
- sym
The child symbol
- returns
The child comment with the inheritdoc sections expanded
-
def
expandedDocComment(sym: Global.Symbol, site: Global.Symbol, docStr: String = ""): String
The cooked doc comment of symbol
sym
after variable expansion, or "" if missing.The cooked doc comment of symbol
sym
after variable expansion, or "" if missing.- sym
The symbol for which doc comment is returned
- site
The class for which doc comments are generated
- Exceptions thrown
ExpansionLimitExceeded
when more than 10 successive expansions of the same string are done, which is interpreted as a recursive variable definition.
- def fillDocComment(sym: Global.Symbol, comment: Global.DocComment): Unit
-
def
lookupVariable(vble: String, site: Global.Symbol): Option[String]
Lookup definition of variable.
Lookup definition of variable.
- vble
The variable for which a definition is searched
- site
The class for which doc comments are generated
-
def
merge(src: String, dst: String, sym: Global.Symbol, copyFirstPara: Boolean = false): String
Merge elements of doccomment
src
into doc commentdst
for symbolsym
.Merge elements of doccomment
src
into doc commentdst
for symbolsym
. In detail:- If
copyFirstPara
is true, copy first paragraph 2. For all parameters ofsym
if there is no @param section indst
for that parameter name, but there is one onsrc
, copy that section. 3. If there is no @return section indst
but there is one insrc
, copy it.
- If
-
def
rawDocComment(sym: Global.Symbol): String
The raw doc comment of symbol
sym
, as it appears in the source text, "" if missing. - def replaceInheritDocToInheritdoc(docStr: String): String
-
def
useCases(sym: Global.Symbol, site: Global.Symbol): List[(Global.Symbol, String, Global.Position)]
The list of use cases of doc comment of symbol
sym
seen as a member of classsite
.The list of use cases of doc comment of symbol
sym
seen as a member of classsite
. Each use case consists of a synthetic symbol (which is entered nowhere else), of an expanded doc comment string, and of its position.- sym
The symbol for which use cases are returned
- site
The class for which doc comments are generated
- Exceptions thrown
ExpansionLimitExceeded
when more than 10 successive expansions of the same string are done, which is interpreted as a recursive variable definition.
The Scala compiler and reflection APIs.