src/Pure/PIDE/editor.scala
author wenzelm
Fri, 10 Jan 2014 21:37:28 +0100
changeset 54984 da70ab8531f4
parent 54702 3daeba5130f0
child 55876 142139457653
permissions -rw-r--r--
more elementary management of declared hyps, below structure Assumption; Goal.prove: insist in declared hyps; Simplifier: declare hyps via Thm.assume_hyps; more accurate tool context in some boundary cases;

/*  Title:      Pure/PIDE/editor.scala
    Author:     Makarius

General editor operations.
*/

package isabelle


abstract class Editor[Context]
{
  def session: Session
  def flush(): Unit
  def invoke(): Unit
  def current_context: Context
  def current_node(context: Context): Option[Document.Node.Name]
  def current_node_snapshot(context: Context): Option[Document.Snapshot]
  def node_snapshot(name: Document.Node.Name): Document.Snapshot
  def current_command(context: Context, snapshot: Document.Snapshot): Option[Command]

  def node_overlays(name: Document.Node.Name): Document.Node.Overlays
  def insert_overlay(command: Command, fn: String, args: List[String]): Unit
  def remove_overlay(command: Command, fn: String, args: List[String]): Unit

  abstract class Hyperlink { def follow(context: Context): Unit }
  def hyperlink_url(name: String): Hyperlink
  def hyperlink_file(file_name: String, line: Int = 0, column: Int = 0): Hyperlink
  def hyperlink_command(
    snapshot: Document.Snapshot, command: Command, offset: Text.Offset = 0): Option[Hyperlink]
}