src/Pure/PIDE/change.scala
changeset 38153 469555615ec7
parent 38152 eab0d1c2e46e
child 38154 343cb5d4034a
equal deleted inserted replaced
38152:eab0d1c2e46e 38153:469555615ec7
    15   abstract class Snapshot
    15   abstract class Snapshot
    16   {
    16   {
    17     val document: Document
    17     val document: Document
    18     val node: Document.Node
    18     val node: Document.Node
    19     val is_outdated: Boolean
    19     val is_outdated: Boolean
    20     def from_current(offset: Int): Int
    20     def convert(offset: Int): Int
    21     def to_current(offset: Int): Int
    21     def revert(offset: Int): Int
    22   }
    22   }
    23 }
    23 }
    24 
    24 
    25 class Change(
    25 class Change(
    26   val id: Document.Version_ID,
    26   val id: Document.Version_ID,
    72 
    72 
    73     new Change.Snapshot {
    73     new Change.Snapshot {
    74       val document = stable.join_document
    74       val document = stable.join_document
    75       val node = document.nodes(name)
    75       val node = document.nodes(name)
    76       val is_outdated = !(extra_edits.isEmpty && latest == stable)
    76       val is_outdated = !(extra_edits.isEmpty && latest == stable)
    77       def from_current(offset: Int): Int =
    77       def convert(offset: Int): Int = (offset /: changes)((i, change) => change after i)
    78         (offset /: changes.reverse)((i, change) => change before i)  // FIXME fold_rev (!?)
    78       def revert(offset: Int): Int = (offset /: changes.reverse)((i, change) => change before i)  // FIXME fold_rev (!?)
    79       def to_current(offset: Int): Int =
       
    80         (offset /: changes)((i, change) => change after i)
       
    81     }
    79     }
    82   }
    80   }
    83 }
    81 }