trait DiagramDirectiveParser extends AnyRef
This trait takes care of parsing @{inheritance, content}Diagram annotations
- Self Type
- ModelFactory with DiagramFactory with CommentFactory with TreeFactory
- Source
- DiagramDirectiveParser.scala
- Alphabetic
- By Inheritance
- DiagramDirectiveParser
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Type Members
-
case class
AnnotationDiagramFilter(hideDiagram: Boolean, hideIncomingImplicits: Boolean, hideOutgoingImplicits: Boolean, hideSuperclasses: Boolean, hideSubclasses: Boolean, hideInheritedNodes: Boolean, hideNodesFilter: List[Pattern], hideEdgesFilter: List[(Pattern, Pattern)]) extends (DiagramDirectiveParser.this)#DiagramFilter with Product with Serializable
The AnnotationDiagramFilter trait directs the diagram engine according to an annotation TODO: Should document the annotation, for now see parseDiagramAnnotation in ModelFactory.scala
-
trait
DiagramFilter extends AnyRef
The DiagramFilter trait directs the diagram engine about the way the diagram should be displayed
The DiagramFilter trait directs the diagram engine about the way the diagram should be displayed
Vlad: There's an explanation I owe to people using diagrams and not finding a way to hide a specific class from all diagrams at once. So why did I choose to allow you to only control the diagrams at class level? So, the reason is you would break the separate scaladoc compilation: If you have an "@diagram hideMyClass" annotation in class A and you run scaladoc on it along with its subclass B A will not appear in B's diagram. But if you scaladoc only on B, A's comment will not be parsed and the instructions to hide class A from all diagrams will not be available. Thus I prefer to force you to control the diagrams of each class locally. The problem does not appear with scalac, as scalac stores all its necessary information (like scala signatures) serialized in the .class file. But we couldn't store doc comments in the class file, could we? (Turns out we could, but that's another story)
Any flaming for this decision should go to scala-internals@googlegroups.com
Value Members
-
def
makeContentDiagramFilter(template: (DiagramDirectiveParser.this)#DocTemplateImpl): (DiagramDirectiveParser.this)#DiagramFilter
Main entry point into this trait: generate the filter for content diagrams
-
def
makeInheritanceDiagramFilter(template: (DiagramDirectiveParser.this)#DocTemplateImpl): (DiagramDirectiveParser.this)#DiagramFilter
Main entry point into this trait: generate the filter for inheritance diagrams
-
object
FullDiagram extends (DiagramDirectiveParser.this)#DiagramFilter with Product with Serializable
Show the entire diagram, no filtering
-
object
NoDiagramAtAll extends (DiagramDirectiveParser.this)#DiagramFilter with Product with Serializable
Hide the diagram completely, no need for special filtering
The Scala compiler and reflection APIs.