src/Pure/PIDE/command.scala
changeset 38564 a6e2715fac5f
parent 38480 e5eed57913d0
child 38572 0fe2c01ef7da
equal deleted inserted replaced
38563:f6c9a4f9f66f 38564:a6e2715fac5f
    35 
    35 
    36     lazy val results = reverse_results.reverse
    36     lazy val results = reverse_results.reverse
    37 
    37 
    38     def add_result(result: XML.Tree): State = copy(reverse_results = result :: reverse_results)
    38     def add_result(result: XML.Tree): State = copy(reverse_results = result :: reverse_results)
    39 
    39 
    40     def add_markup(node: Markup_Tree.Node): State = copy(markup = markup + node)
    40     def add_markup(node: Markup_Tree.Node[Any]): State = copy(markup = markup + node)
    41 
    41 
    42     def markup_root_node: Markup_Tree.Node =
    42     def markup_root_node: Markup_Tree.Node[Any] =
    43       new Markup_Tree.Node(command.range, XML.Elem(Markup(Markup.STATUS, Nil), status))
    43       new Markup_Tree.Node(command.range, XML.Elem(Markup(Markup.STATUS, Nil), status))
    44     def markup_root: Markup_Tree = markup + markup_root_node
    44     def markup_root: Markup_Tree = markup + markup_root_node
    45 
    45 
    46 
    46 
    47     /* markup */
    47     /* markup */
    48 
    48 
    49     lazy val highlight: List[Markup_Tree.Node] =
    49     lazy val highlight: List[Markup_Tree.Node[Any]] =
    50     {
    50     {
    51       markup.filter(_.info match {
    51       markup.filter(_.info match {
    52         case Command.HighlightInfo(_, _) => true
    52         case Command.HighlightInfo(_, _) => true
    53         case _ => false
    53         case _ => false
    54       }).flatten(markup_root_node)
    54       }).flatten(markup_root_node)
    55     }
    55     }
    56 
    56 
    57     private lazy val types: List[Markup_Tree.Node] =
    57     private lazy val types: List[Markup_Tree.Node[Any]] =
    58       markup.filter(_.info match {
    58       markup.filter(_.info match {
    59         case Command.TypeInfo(_) => true
    59         case Command.TypeInfo(_) => true
    60         case _ => false }).flatten(markup_root_node)
    60         case _ => false }).flatten(markup_root_node)
    61 
    61 
    62     def type_at(pos: Text.Offset): Option[String] =
    62     def type_at(pos: Text.Offset): Option[String] =
    69           }
    69           }
    70         case None => None
    70         case None => None
    71       }
    71       }
    72     }
    72     }
    73 
    73 
    74     private lazy val refs: List[Markup_Tree.Node] =
    74     private lazy val refs: List[Markup_Tree.Node[Any]] =
    75       markup.filter(_.info match {
    75       markup.filter(_.info match {
    76         case Command.RefInfo(_, _, _, _) => true
    76         case Command.RefInfo(_, _, _, _) => true
    77         case _ => false }).flatten(markup_root_node)
    77         case _ => false }).flatten(markup_root_node)
    78 
    78 
    79     def ref_at(pos: Text.Offset): Option[Markup_Tree.Node] =
    79     def ref_at(pos: Text.Offset): Option[Markup_Tree.Node[Any]] =
    80       refs.find(_.range.contains(pos))
    80       refs.find(_.range.contains(pos))
    81 
    81 
    82 
    82 
    83     /* message dispatch */
    83     /* message dispatch */
    84 
    84 
   157   lazy val symbol_index = new Symbol.Index(source)
   157   lazy val symbol_index = new Symbol.Index(source)
   158 
   158 
   159 
   159 
   160   /* markup */
   160   /* markup */
   161 
   161 
   162   def decode_range(range: Text.Range, info: Any): Markup_Tree.Node =
   162   def decode_range(range: Text.Range, info: Any): Markup_Tree.Node[Any] =
   163     new Markup_Tree.Node(symbol_index.decode(range), info)
   163     new Markup_Tree.Node(symbol_index.decode(range), info)
   164 
   164 
   165 
   165 
   166   /* accumulated results */
   166   /* accumulated results */
   167 
   167