src/Pure/System/session.scala
changeset 44476 e8a87398f35d
parent 44475 709e1d671483
child 44477 086bb1083552
equal deleted inserted replaced
44475:709e1d671483 44476:e8a87398f35d
   215         global_state.change_yield(
   215         global_state.change_yield(
   216           _.continue_history(Future.value(previous), text_edits, Future.value(version)))
   216           _.continue_history(Future.value(previous), text_edits, Future.value(version)))
   217 
   217 
   218       val assignment = global_state().the_assignment(previous).get_finished
   218       val assignment = global_state().the_assignment(previous).get_finished
   219       global_state.change(_.define_version(version, assignment))
   219       global_state.change(_.define_version(version, assignment))
   220       global_state.change_yield(_.assign(version.id, Nil))
   220       global_state.change_yield(_.assign(version.id, Document.no_assign))
   221 
   221 
   222       prover.get.update_perspective(previous.id, version.id, name, perspective)
   222       prover.get.update_perspective(previous.id, version.id, name, perspective)
   223     }
   223     }
   224 
   224 
   225 
   225 
   246     //}}}
   246     //}}}
   247 
   247 
   248 
   248 
   249     /* exec state assignment */
   249     /* exec state assignment */
   250 
   250 
   251     def handle_assign(id: Document.Version_ID, edits: List[(Document.Command_ID, Document.Exec_ID)])
   251     def handle_assign(id: Document.Version_ID, assign: Document.Assign)
   252     //{{{
   252     //{{{
   253     {
   253     {
   254       val cmds = global_state.change_yield(_.assign(id, edits))
   254       val cmds = global_state.change_yield(_.assign(id, assign))
   255       for (cmd <- cmds) command_change_buffer ! cmd
   255       for (cmd <- cmds) command_change_buffer ! cmd
   256       assignments.event(Session.Assignment)
   256       assignments.event(Session.Assignment)
   257     }
   257     }
   258     //}}}
   258     //}}}
   259 
   259 
   334             else if (result.is_exit) phase = Session.Inactive
   334             else if (result.is_exit) phase = Session.Inactive
   335           }
   335           }
   336           else if (result.is_stdout) { }
   336           else if (result.is_stdout) { }
   337           else if (result.is_status) {
   337           else if (result.is_status) {
   338             result.body match {
   338             result.body match {
   339               case List(Isar_Document.Assign(id, edits)) =>
   339               case List(Isar_Document.Assign(id, assign)) =>
   340                 try { handle_assign(id, edits) }
   340                 try { handle_assign(id, assign) }
   341                 catch { case _: Document.State.Fail => bad_result(result) }
   341                 catch { case _: Document.State.Fail => bad_result(result) }
   342               case List(Keyword.Command_Decl(name, kind)) => syntax += (name, kind)
   342               case List(Keyword.Command_Decl(name, kind)) => syntax += (name, kind)
   343               case List(Keyword.Keyword_Decl(name)) => syntax += name
   343               case List(Keyword.Keyword_Decl(name)) => syntax += name
   344               case List(Thy_Info.Loaded_Theory(name)) => loaded_theories += name
   344               case List(Thy_Info.Loaded_Theory(name)) => loaded_theories += name
   345               case _ => bad_result(result)
   345               case _ => bad_result(result)