equal
deleted
inserted
replaced
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 } |