src/Tools/jEdit/src/jedit/TheoryView.scala
changeset 34554 7dc6c231da40
parent 34549 5be7a165a9b9
child 34555 7c001369956a
--- a/src/Tools/jEdit/src/jedit/TheoryView.scala	Mon Apr 20 20:28:45 2009 +0200
+++ b/src/Tools/jEdit/src/jedit/TheoryView.scala	Wed Apr 22 17:35:49 2009 +0200
@@ -66,8 +66,9 @@
 
   private val selected_state_controller = new CaretListener {
     override def caretUpdate(e: CaretEvent) = {
-      val cmd = prover.document.find_command_at(e.getDot)
-      if (cmd != null && cmd.start <= e.getDot &&
+      val doc = prover.document
+      val cmd = doc.find_command_at(e.getDot)
+      if (cmd != null && doc.token_start(cmd.tokens.first) <= e.getDot &&
           Isabelle.prover_setup(buffer).get.selected_state != cmd)
         Isabelle.prover_setup(buffer).get.selected_state = cmd
     }
@@ -141,8 +142,8 @@
   {
     val document = prover.document
     if (text_area != null) {
-      val start = text_area.getLineOfOffset(to_current(document.id, cmd.start))
-      val stop = text_area.getLineOfOffset(to_current(document.id, cmd.stop) - 1)
+      val start = text_area.getLineOfOffset(to_current(document.id, cmd.start(document)))
+      val stop = text_area.getLineOfOffset(to_current(document.id, cmd.stop(document)) - 1)
       text_area.invalidateLineRange(start, stop)
 
       if (Isabelle.prover_setup(buffer).get.selected_state == cmd)
@@ -189,18 +190,18 @@
 
     val metrics = text_area.getPainter.getFontMetrics
     var e = document.find_command_at(from_current(start))
-    val commands = document.commands.dropWhile(_.stop <= from_current(start)).
-      takeWhile(c => to_current(c.start) < end)
+    val commands = document.commands.dropWhile(_.stop(document) <= from_current(start)).
+      takeWhile(c => to_current(c.start(document)) < end)
     // encolor phase
     for (e <- commands) {
-      val begin = start max to_current(e.start)
-      val finish = end - 1 min to_current(e.stop)
+      val begin = start max to_current(e.start(document))
+      val finish = end - 1 min to_current(e.stop(document))
       encolor(gfx, y, metrics.getHeight, begin, finish, TheoryView.choose_color(e), true)
 
       // paint details of command
       for (node <- e.root_node.dfs) {
-        val begin = to_current(node.start + e.start)
-        val finish = to_current(node.stop + e.start)
+        val begin = to_current(node.abs_start(document))
+        val finish = to_current(node.abs_stop(document))
         if (finish > start && begin < end) {
           encolor(gfx, y + metrics.getHeight - 2, 1, begin max start, finish min end - 1,
             DynamicTokenMarker.choose_color(node.kind, text_area.getPainter.getStyles), true)