src/Pure/PIDE/document.scala
changeset 56462 b64b0cb845fe
parent 56398 15d0821c8667
child 56468 30128d1acfbc
equal deleted inserted replaced
56461:ae33d153f6cc 56462:b64b0cb845fe
    43   }
    43   }
    44 
    44 
    45 
    45 
    46   /* document blobs: auxiliary files */
    46   /* document blobs: auxiliary files */
    47 
    47 
    48   sealed case class Blob(bytes: Bytes, file: Command.File, changed: Boolean)
    48   sealed case class Blob(bytes: Bytes, file: Command.Chunk.File, changed: Boolean)
    49   {
    49   {
    50     def unchanged: Blob = copy(changed = false)
    50     def unchanged: Blob = copy(changed = false)
    51   }
    51   }
    52 
    52 
    53   object Blobs
    53   object Blobs
   729           elements: Elements,
   729           elements: Elements,
   730           result: List[Command.State] => (A, Text.Markup) => Option[A],
   730           result: List[Command.State] => (A, Text.Markup) => Option[A],
   731           status: Boolean = false): List[Text.Info[A]] =
   731           status: Boolean = false): List[Text.Info[A]] =
   732         {
   732         {
   733           val former_range = revert(range)
   733           val former_range = revert(range)
   734           val (file_name, command_iterator) =
   734           val (chunk_name, command_iterator) =
   735             load_commands match {
   735             load_commands match {
   736               case command :: _ => (node_name.node, Iterator((command, 0)))
   736               case command :: _ => (Command.Chunk.File_Name(node_name.node), Iterator((command, 0)))
   737               case _ => ("", node.command_iterator(former_range))
   737               case _ => (Command.Chunk.Self, node.command_iterator(former_range))
   738             }
   738             }
   739           val markup_index = Command.Markup_Index(status, file_name)
   739           val markup_index = Command.Markup_Index(status, chunk_name)
   740           (for {
   740           (for {
   741             (command, command_start) <- command_iterator
   741             (command, command_start) <- command_iterator
   742             chunk <- command.chunks.get(file_name).iterator
   742             chunk <- command.chunks.get(chunk_name).iterator
   743             states = state.command_states(version, command)
   743             states = state.command_states(version, command)
   744             res = result(states)
   744             res = result(states)
   745             range = (former_range - command_start).restrict(chunk.range)
   745             range = (former_range - command_start).restrict(chunk.range)
   746             markup = Command.State.merge_markup(states, markup_index, range, elements)
   746             markup = Command.State.merge_markup(states, markup_index, range, elements)
   747             Text.Info(r0, a) <- markup.cumulate[A](range, info, elements,
   747             Text.Info(r0, a) <- markup.cumulate[A](range, info, elements,