src/Pure/PIDE/document.scala
changeset 56301 1da7b4c33db9
parent 56300 8346b664fa7a
child 56309 5003ea266aef
--- a/src/Pure/PIDE/document.scala	Thu Mar 27 11:19:31 2014 +0100
+++ b/src/Pure/PIDE/document.scala	Thu Mar 27 12:11:32 2014 +0100
@@ -650,13 +650,15 @@
     def command_results(version: Version, command: Command): Command.Results =
       Command.State.merge_results(command_states(version, command))
 
-    def command_markup(version: Version, command: Command, index: Command.Markup_Index): Markup_Tree =
-      Command.State.merge_markup(command_states(version, command), index)
+    def command_markup(version: Version, command: Command, index: Command.Markup_Index,
+        range: Text.Range, elements: Elements): Markup_Tree =
+      Command.State.merge_markup(command_states(version, command), index, range, elements)
 
     def markup_to_XML(version: Version, node: Node, elements: Elements): XML.Body =
       (for {
         command <- node.commands.iterator
-        markup = command_markup(version, command, Command.Markup_Index.markup)
+        markup =
+          command_markup(version, command, Command.Markup_Index.markup, command.range, elements)
         tree <- markup.to_XML(command.range, command.source, elements)
       } yield tree).toList
 
@@ -734,8 +736,9 @@
                 chunk <- thy_load_command.chunks.get(file_name).iterator
                 states = state.command_states(version, thy_load_command)
                 res = result(Command.State.merge_results(states))
-                Text.Info(r0, a) <- Command.State.merge_markup(states, markup_index).cumulate[A](
-                  former_range.restrict(chunk.range), info, elements,
+                range = former_range.restrict(chunk.range)
+                markup = Command.State.merge_markup(states, markup_index, range, elements)
+                Text.Info(r0, a) <- markup.cumulate[A](range, info, elements,
                   { case (a, Text.Info(r0, b)) => res(a, Text.Info(convert(r0), b)) }
                 ).iterator
               } yield Text.Info(convert(r0), a)).toList
@@ -746,8 +749,9 @@
                 (command, command_start) <- node.command_range(former_range)
                 states = state.command_states(version, command)
                 res = result(Command.State.merge_results(states))
-                Text.Info(r0, a) <- Command.State.merge_markup(states, markup_index).cumulate[A](
-                  (former_range - command_start).restrict(command.range), info, elements,
+                range = (former_range - command_start).restrict(command.range)
+                markup = Command.State.merge_markup(states, markup_index, range, elements)
+                Text.Info(r0, a) <- markup.cumulate[A](range, info, elements,
                   {
                     case (a, Text.Info(r0, b)) => res(a, Text.Info(convert(r0 + command_start), b))
                   }).iterator