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 } |