src/Pure/PIDE/protocol.scala
changeset 72874 2206502637e4
parent 72764 722c0d02ffab
child 72875 847c6fb05a21
equal deleted inserted replaced
72873:0ad513706a27 72874:2206502637e4
   114   }
   114   }
   115 
   115 
   116 
   116 
   117   /* result messages */
   117   /* result messages */
   118 
   118 
   119   def is_message(pred: XML.Elem => Boolean, body: XML.Body): Boolean =
       
   120     body match {
       
   121       case List(elem: XML.Elem) => pred(elem)
       
   122       case _ => false
       
   123     }
       
   124 
       
   125   def is_result(msg: XML.Tree): Boolean =
   119   def is_result(msg: XML.Tree): Boolean =
   126     msg match {
   120     msg match {
   127       case XML.Elem(Markup(Markup.RESULT, _), _) => true
   121       case XML.Elem(Markup(Markup.RESULT, _), _) => true
   128       case _ => false
   122       case _ => false
   129     }
   123     }
   181     !(is_result(msg) || is_tracing(msg) || is_state(msg))
   175     !(is_result(msg) || is_tracing(msg) || is_state(msg))
   182 
   176 
   183   def is_exported(msg: XML.Tree): Boolean =
   177   def is_exported(msg: XML.Tree): Boolean =
   184     is_writeln(msg) || is_warning(msg) || is_legacy(msg) || is_error(msg)
   178     is_writeln(msg) || is_warning(msg) || is_legacy(msg) || is_error(msg)
   185 
   179 
   186   def message_text(body: XML.Body,
   180   def message_text(elem: XML.Elem,
   187     margin: Double = Pretty.default_margin,
   181     margin: Double = Pretty.default_margin,
   188     breakgain: Double = Pretty.default_breakgain,
   182     breakgain: Double = Pretty.default_breakgain,
   189     metric: Pretty.Metric = Pretty.Default_Metric): String =
   183     metric: Pretty.Metric = Pretty.Default_Metric): String =
   190   {
   184   {
   191     val text =
   185     val text =
   192       Pretty.string_of(Protocol_Message.expose_no_reports(body),
   186       Pretty.string_of(Protocol_Message.expose_no_reports(List(elem)),
   193         margin = margin, breakgain = breakgain, metric = metric)
   187         margin = margin, breakgain = breakgain, metric = metric)
   194 
   188 
   195     if (is_message(is_warning, body) || is_message(is_legacy, body)) Output.warning_prefix(text)
   189     if (is_warning(elem) || is_legacy(elem)) Output.warning_prefix(text)
   196     else if (is_message(is_error, body)) Output.error_prefix(text)
   190     else if (is_error(elem)) Output.error_prefix(text)
   197     else text
   191     else text
   198   }
   192   }
   199 
   193 
   200 
   194 
   201   /* export */
   195   /* export */