equal
deleted
inserted
replaced
78 |
78 |
79 /* document changes */ |
79 /* document changes */ |
80 |
80 |
81 def handle_change(change: Change) |
81 def handle_change(change: Change) |
82 { |
82 { |
83 val old = document(change.parent.get.id).get |
83 require(change.parent.isDefined) |
84 val (doc, changes) = old.text_changed(this, change) |
84 |
85 |
85 val (doc, changes) = change.result() // FIXME clarify future vs. actor arrangement |
86 val id_changes = changes map { |
86 val id_changes = changes map { |
87 case (c1, c2) => |
87 case (c1, c2) => |
88 (c1.map(_.id).getOrElse(""), |
88 (c1.map(_.id).getOrElse(""), |
89 c2 match { |
89 c2 match { |
90 case None => None |
90 case None => None |
93 prover.define_command(command.id, system.symbols.encode(command.content)) |
93 prover.define_command(command.id, system.symbols.encode(command.content)) |
94 Some(command.id) |
94 Some(command.id) |
95 }) |
95 }) |
96 } |
96 } |
97 register(doc) |
97 register(doc) |
98 documents += (doc.id -> doc) |
98 documents += (doc.id -> doc) // FIXME remove |
99 prover.edit_document(old.id, doc.id, id_changes) |
99 prover.edit_document(change.parent.get.document.id, doc.id, id_changes) |
100 |
100 |
101 document_change.event(doc) |
101 document_change.event(doc) |
102 } |
102 } |
103 |
103 |
104 |
104 |
219 } |
219 } |
220 |
220 |
221 |
221 |
222 /* main methods */ |
222 /* main methods */ |
223 |
223 |
|
224 // FIXME private? |
224 def register_entity(entity: Session.Entity) { session_actor !? Register(entity) } |
225 def register_entity(entity: Session.Entity) { session_actor !? Register(entity) } |
225 |
226 |
226 def start(timeout: Int, args: List[String]): Option[String] = |
227 def start(timeout: Int, args: List[String]): Option[String] = |
227 (session_actor !? Start(timeout, args)).asInstanceOf[Option[String]] |
228 (session_actor !? Start(timeout, args)).asInstanceOf[Option[String]] |
228 |
229 |