Packages

t

scala.tools.nsc.doc.model.diagram

DiagramDirectiveParser

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
Linear Supertypes
AnyRef, Any
Known Subclasses
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DiagramDirectiveParser
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. 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

  2. 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

  1. def makeContentDiagramFilter(template: (DiagramDirectiveParser.this)#DocTemplateImpl): (DiagramDirectiveParser.this)#DiagramFilter

    Main entry point into this trait: generate the filter for content diagrams

  2. def makeInheritanceDiagramFilter(template: (DiagramDirectiveParser.this)#DocTemplateImpl): (DiagramDirectiveParser.this)#DiagramFilter

    Main entry point into this trait: generate the filter for inheritance diagrams

  3. object FullDiagram extends (DiagramDirectiveParser.this)#DiagramFilter with Product with Serializable

    Show the entire diagram, no filtering

  4. object NoDiagramAtAll extends (DiagramDirectiveParser.this)#DiagramFilter with Product with Serializable

    Hide the diagram completely, no need for special filtering