--- a/src/Pure/PIDE/markup.scala Tue Apr 09 15:59:02 2013 +0200
+++ b/src/Pure/PIDE/markup.scala Tue Apr 09 20:16:52 2013 +0200
@@ -193,6 +193,7 @@
{
def apply(timing: isabelle.Timing): Properties.T =
Elapsed(timing.elapsed.seconds) ::: CPU(timing.cpu.seconds) ::: GC(timing.gc.seconds)
+
def unapply(props: Properties.T): Option[isabelle.Timing] =
(props, props, props) match {
case (Elapsed(elapsed), CPU(cpu), GC(gc)) =>
@@ -206,6 +207,7 @@
object Timing
{
def apply(timing: isabelle.Timing): Markup = Markup(TIMING, Timing_Properties(timing))
+
def unapply(markup: Markup): Option[isabelle.Timing] =
markup match {
case Markup(TIMING, Timing_Properties(timing)) => Some(timing)
@@ -214,6 +216,22 @@
}
+ /* command timing */
+
+ object Command_Timing
+ {
+ def unapply(props: Properties.T): Option[(Document.ID, isabelle.Timing)] =
+ props match {
+ case (FUNCTION, "command_timing") :: args =>
+ (args, args) match {
+ case (Position.Id(id), Timing_Properties(timing)) => Some((id, timing))
+ case _ => None
+ }
+ case _ => None
+ }
+ }
+
+
/* toplevel */
val SUBGOALS = "subgoals"