src/Pure/System/session.scala
changeset 46737 09ab89658a5d
parent 46687 7e47ae85e161
child 46739 6024353549ca
equal deleted inserted replaced
46736:4dc7ddb47350 46737:09ab89658a5d
    33   case object Shutdown extends Phase  // transient
    33   case object Shutdown extends Phase  // transient
    34   //}}}
    34   //}}}
    35 }
    35 }
    36 
    36 
    37 
    37 
    38 class Session(thy_load: Thy_Load = new Thy_Load)
    38 class Session(val thy_load: Thy_Load = new Thy_Load)
    39 {
    39 {
    40   /* real time parameters */  // FIXME properties or settings (!?)
    40   /* real time parameters */  // FIXME properties or settings (!?)
    41 
    41 
    42   val message_delay = Time.seconds(0.01)  // prover messages
    42   val message_delay = Time.seconds(0.01)  // prover messages
    43   val input_delay = Time.seconds(0.3)  // user input (e.g. text edits, cursor movement)
    43   val input_delay = Time.seconds(0.3)  // user input (e.g. text edits, cursor movement)
   141 
   141 
   142   /* theory files */
   142   /* theory files */
   143 
   143 
   144   def header_edit(name: Document.Node.Name, header: Document.Node_Header): Document.Edit_Text =
   144   def header_edit(name: Document.Node.Name, header: Document.Node_Header): Document.Edit_Text =
   145   {
   145   {
   146     def norm_import(s: String): String =
       
   147     {
       
   148       val thy_name = Thy_Header.base_name(s)
       
   149       if (thy_load.is_loaded(thy_name)) thy_name
       
   150       else thy_load.append(name.dir, Thy_Header.thy_path(Path.explode(s)))
       
   151     }
       
   152     def norm_use(s: String): String = thy_load.append(name.dir, Path.explode(s))
       
   153 
       
   154     val header1: Document.Node_Header =
   146     val header1: Document.Node_Header =
   155       header match {
   147       header match {
   156         case Exn.Res(Thy_Header(thy_name, _, _))
   148         case Exn.Res(_) if (thy_load.is_loaded(name.theory)) =>
   157         if (thy_load.is_loaded(thy_name)) =>
   149           Exn.Exn(ERROR("Attempt to update loaded theory " + quote(name.theory)))
   158           Exn.Exn(ERROR("Attempt to update loaded theory " + quote(thy_name)))
   150         case _ => header
   159         case _ => Document.Node.norm_header(norm_import, norm_use, header)
       
   160       }
   151       }
   161     (name, Document.Node.Header(header1))
   152     (name, Document.Node.Header(header1))
   162   }
   153   }
   163 
   154 
   164 
   155