src/Pure/System/session.scala
changeset 44384 8f6054a63f96
parent 44383 f99906c2a1d3
child 44385 e7fdb008aa7d
equal deleted inserted replaced
44383:f99906c2a1d3 44384:8f6054a63f96
   181 
   181 
   182 
   182 
   183     /* incoming edits */
   183     /* incoming edits */
   184 
   184 
   185     def handle_edits(name: String, master_dir: String,
   185     def handle_edits(name: String, master_dir: String,
   186         header: Document.Node_Header, edits: List[Document.Node.Edit[Text.Edit]])
   186         header: Document.Node_Header, edits: List[Document.Node.Edit[Text.Edit, Text.Perspective]])
   187     //{{{
   187     //{{{
   188     {
   188     {
   189       val syntax = current_syntax()
   189       val syntax = current_syntax()
   190       val previous = global_state().history.tip.version
   190       val previous = global_state().history.tip.version
   191 
   191 
   194         val name = Thy_Header.base_name(s)
   194         val name = Thy_Header.base_name(s)
   195         if (thy_load.is_loaded(name)) name
   195         if (thy_load.is_loaded(name)) name
   196         else file_store.append(master_dir, Thy_Header.thy_path(Path.explode(s)))
   196         else file_store.append(master_dir, Thy_Header.thy_path(Path.explode(s)))
   197       }
   197       }
   198       def norm_use(s: String): String = file_store.append(master_dir, Path.explode(s))
   198       def norm_use(s: String): String = file_store.append(master_dir, Path.explode(s))
   199       val norm_header = Document.Node.norm_header[Text.Edit](norm_import, norm_use, header)
   199       val norm_header =
       
   200         Document.Node.norm_header[Text.Edit, Text.Perspective](norm_import, norm_use, header)
   200 
   201 
   201       val text_edits = (name, norm_header) :: edits.map(edit => (name, edit))
   202       val text_edits = (name, norm_header) :: edits.map(edit => (name, edit))
   202       val result = Future.fork { Thy_Syntax.text_edits(syntax, previous.join, text_edits) }
   203       val result = Future.fork { Thy_Syntax.text_edits(syntax, previous.join, text_edits) }
   203       val change =
   204       val change =
   204         global_state.change_yield(_.extend_history(previous, text_edits, result.map(_._2)))
   205         global_state.change_yield(_.extend_history(previous, text_edits, result.map(_._2)))