src/Tools/jEdit/src/document_model.scala
changeset 66101 0f0f294e314f
parent 66082 2d12a730a380
child 66114 c137a9f038a6
equal deleted inserted replaced
66100:d1ad5a7458c2 66101:0f0f294e314f
    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 =