src/Tools/VSCode/src/document_model.scala
changeset 65191 4c9c83311cad
parent 65161 6af056380d0b
child 65196 e8760a98db78
equal deleted inserted replaced
65190:0dd2ad9dbfc2 65191:4c9c83311cad
   156     (changed_diagnostics, changed_decorations,
   156     (changed_diagnostics, changed_decorations,
   157       copy(published_diagnostics = diagnostics, published_decorations = decorations))
   157       copy(published_diagnostics = diagnostics, published_decorations = decorations))
   158   }
   158   }
   159 
   159 
   160 
   160 
       
   161   /* current command */
       
   162 
       
   163   def current_command(snapshot: Document.Snapshot, current_offset: Text.Offset): Option[Command] =
       
   164   {
       
   165     if (is_theory) {
       
   166       val node = snapshot.version.nodes(node_name)
       
   167       val caret = snapshot.revert(current_offset)
       
   168       val caret_command_iterator = node.command_iterator(caret)
       
   169       if (caret_command_iterator.hasNext) {
       
   170         val (cmd0, _) = caret_command_iterator.next
       
   171         node.commands.reverse.iterator(cmd0).find(cmd => !cmd.is_ignored)
       
   172       }
       
   173       else None
       
   174     }
       
   175     else snapshot.version.nodes.commands_loading(node_name).headOption
       
   176   }
       
   177 
       
   178 
   161   /* prover session */
   179   /* prover session */
   162 
   180 
   163   def resources: VSCode_Resources = session.resources.asInstanceOf[VSCode_Resources]
   181   def resources: VSCode_Resources = session.resources.asInstanceOf[VSCode_Resources]
   164 
   182 
   165   def is_stable: Boolean = pending_edits.isEmpty
   183   def is_stable: Boolean = pending_edits.isEmpty
   166   def snapshot(): Document.Snapshot = session.snapshot(node_name, pending_edits)
   184   def snapshot(): Document.Snapshot = session.snapshot(node_name, pending_edits)
   167 
   185 
   168   def rendering(): VSCode_Rendering = new VSCode_Rendering(this, snapshot(), resources)
   186   def rendering(snapshot: Document.Snapshot): VSCode_Rendering =
       
   187     new VSCode_Rendering(this, snapshot, resources)
       
   188   def rendering(): VSCode_Rendering = rendering(snapshot())
   169 }
   189 }