equal
deleted
inserted
replaced
25 { |
25 { |
26 /* document models */ |
26 /* document models */ |
27 |
27 |
28 sealed case class State( |
28 sealed case class State( |
29 models: Map[Document.Node.Name, Document_Model] = Map.empty, |
29 models: Map[Document.Node.Name, Document_Model] = Map.empty, |
30 buffer_models: Map[JEditBuffer, Buffer_Model] = Map.empty) |
30 buffer_models: Map[JEditBuffer, Buffer_Model] = Map.empty, |
|
31 overlays: Document.Overlays = Document.Overlays.empty) |
31 { |
32 { |
32 def file_models_iterator: Iterator[(Document.Node.Name, File_Model)] = |
33 def file_models_iterator: Iterator[(Document.Node.Name, File_Model)] = |
33 for { |
34 for { |
34 (node_name, model) <- models.iterator |
35 (node_name, model) <- models.iterator |
35 if model.isInstanceOf[File_Model] |
36 if model.isInstanceOf[File_Model] |
79 def bibtex_entries_iterator(): Iterator[Text.Info[(String, Document_Model)]] = |
80 def bibtex_entries_iterator(): Iterator[Text.Info[(String, Document_Model)]] = |
80 for { |
81 for { |
81 (_, model) <- state.value.models.iterator |
82 (_, model) <- state.value.models.iterator |
82 info <- model.bibtex_entries.iterator |
83 info <- model.bibtex_entries.iterator |
83 } yield info.map((_, model)) |
84 } yield info.map((_, model)) |
|
85 |
|
86 |
|
87 /* overlays */ |
|
88 |
|
89 def node_overlays(name: Document.Node.Name): Document.Node.Overlays = |
|
90 state.value.overlays(name) |
|
91 |
|
92 def insert_overlay(command: Command, fn: String, args: List[String]): Unit = |
|
93 state.change(st => st.copy(overlays = st.overlays.insert(command, fn, args))) |
|
94 |
|
95 def remove_overlay(command: Command, fn: String, args: List[String]): Unit = |
|
96 state.change(st => st.copy(overlays = st.overlays.remove(command, fn, args))) |
84 |
97 |
85 |
98 |
86 /* sync external files */ |
99 /* sync external files */ |
87 |
100 |
88 def sync_files(changed_files: Set[JFile]): Boolean = |
101 def sync_files(changed_files: Set[JFile]): Boolean = |