equal
deleted
inserted
replaced
209 |
209 |
210 val tooltip_message_elements = |
210 val tooltip_message_elements = |
211 Markup.Elements(Markup.WRITELN, Markup.INFORMATION, Markup.WARNING, Markup.LEGACY, Markup.ERROR, |
211 Markup.Elements(Markup.WRITELN, Markup.INFORMATION, Markup.WARNING, Markup.LEGACY, Markup.ERROR, |
212 Markup.BAD) |
212 Markup.BAD) |
213 |
213 |
|
214 val message_elements = Markup.Elements(message_pri.keySet) |
214 val warning_elements = Markup.Elements(Markup.WARNING, Markup.LEGACY) |
215 val warning_elements = Markup.Elements(Markup.WARNING, Markup.LEGACY) |
215 val error_elements = Markup.Elements(Markup.ERROR) |
216 val error_elements = Markup.Elements(Markup.ERROR) |
216 |
217 |
217 val caret_focus_elements = Markup.Elements(Markup.ENTITY) |
218 val caret_focus_elements = Markup.Elements(Markup.ENTITY) |
218 |
219 |
518 } |
519 } |
519 else Nil |
520 else Nil |
520 } |
521 } |
521 |
522 |
522 |
523 |
523 /* message underline color */ |
524 /* messages */ |
524 |
525 |
525 def message_underline_color(elements: Markup.Elements, range: Text.Range) |
526 def message_underline_color(elements: Markup.Elements, range: Text.Range) |
526 : List[Text.Info[Rendering.Color.Value]] = |
527 : List[Text.Info[Rendering.Color.Value]] = |
527 { |
528 { |
528 val results = |
529 val results = |
532 }) |
533 }) |
533 for { |
534 for { |
534 Text.Info(r, pri) <- results |
535 Text.Info(r, pri) <- results |
535 color <- Rendering.message_underline_color.get(pri) |
536 color <- Rendering.message_underline_color.get(pri) |
536 } yield Text.Info(r, color) |
537 } yield Text.Info(r, color) |
|
538 } |
|
539 |
|
540 def text_messages(range: Text.Range): List[Text.Info[XML.Tree]] = |
|
541 { |
|
542 val results = |
|
543 snapshot.cumulate[Vector[XML.Tree]](range, Vector.empty, Rendering.message_elements, |
|
544 states => |
|
545 { |
|
546 case (res, Text.Info(_, elem)) => |
|
547 elem.markup.properties match { |
|
548 case Markup.Serial(i) => |
|
549 states.collectFirst( |
|
550 { |
|
551 case st if st.results.get(i).isDefined => |
|
552 res :+ st.results.get(i).get |
|
553 }) |
|
554 case _ => None |
|
555 } |
|
556 case _ => None |
|
557 }) |
|
558 |
|
559 var seen_serials = Set.empty[Long] |
|
560 val seen: XML.Tree => Boolean = |
|
561 { |
|
562 case XML.Elem(Markup(_, Markup.Serial(i)), _) => |
|
563 val b = seen_serials(i); seen_serials += i; b |
|
564 case _ => false |
|
565 } |
|
566 for { |
|
567 Text.Info(range, trees) <- results |
|
568 tree <- trees |
|
569 if !seen(tree) |
|
570 } yield Text.Info(range, tree) |
537 } |
571 } |
538 |
572 |
539 |
573 |
540 /* tooltips */ |
574 /* tooltips */ |
541 |
575 |