src/Pure/System/progress.scala
changeset 83280 a3c59c842625
parent 83271 93db1865ee0e
child 83282 4643bb10d188
equal deleted inserted replaced
83273:2cb50474958a 83280:a3c59c842625
    98 
    98 
    99 
    99 
   100   /* status lines (e.g. at bottom of output) */
   100   /* status lines (e.g. at bottom of output) */
   101 
   101 
   102   trait Status extends Progress {
   102   trait Status extends Progress {
   103     def status_enabled: Boolean = false
   103     def status_detailed: Boolean = false
   104     def status_hide(status: Progress.Output): Unit = ()
   104     def status_hide(status: Progress.Output): Unit = ()
   105 
   105 
   106     protected var _status: Progress.Output = Nil
   106     protected var _status: Progress.Output = Nil
   107 
   107 
   108     def status_clear(): Progress.Output = synchronized {
   108     def status_clear(): Progress.Output = synchronized {
   127     }
   127     }
   128 
   128 
   129     override def nodes_status(nodes_status: Progress.Nodes_Status): Unit = synchronized {
   129     override def nodes_status(nodes_status: Progress.Nodes_Status): Unit = synchronized {
   130       status_clear()
   130       status_clear()
   131       output(nodes_status.completed_theories)
   131       output(nodes_status.completed_theories)
   132       status_output(if (status_enabled) nodes_status.status_theories else Nil)
   132       status_output(if (status_detailed) nodes_status.status_theories else Nil)
   133     }
   133     }
   134   }
   134   }
   135 }
   135 }
   136 
   136 
   137 class Progress {
   137 class Progress {
   206 class Console_Progress(
   206 class Console_Progress(
   207   override val verbose: Boolean = false,
   207   override val verbose: Boolean = false,
   208   detailed: Boolean = false,
   208   detailed: Boolean = false,
   209   stderr: Boolean = false)
   209   stderr: Boolean = false)
   210 extends Progress with Progress.Status {
   210 extends Progress with Progress.Status {
   211   override def status_enabled: Boolean = detailed
   211   override def status_detailed: Boolean = detailed
   212   override def status_hide(status: Progress.Output): Unit = synchronized {
   212   override def status_hide(status: Progress.Output): Unit = synchronized {
   213     val txt = output_text(status, terminate = true)
   213     val txt = output_text(status, terminate = true)
   214     Output.delete_lines(Library.count_newlines(txt), stdout = !stderr)
   214     Output.delete_lines(Library.count_newlines(txt), stdout = !stderr)
   215   }
   215   }
   216 
   216