| author | wenzelm | 
| Sat, 09 Apr 2022 15:28:55 +0200 | |
| changeset 75436 | 40630fec3b5d | 
| parent 75393 | 87ebf5a50283 | 
| child 76609 | cc9ddf373bd2 | 
| permissions | -rw-r--r-- | 
| 
52971
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
1  | 
/* Title: Pure/PIDE/editor.scala  | 
| 
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
2  | 
Author: Makarius  | 
| 
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
3  | 
|
| 
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
4  | 
General editor operations.  | 
| 
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
5  | 
*/  | 
| 
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
6  | 
|
| 
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
7  | 
package isabelle  | 
| 
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
8  | 
|
| 
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
9  | 
|
| 75393 | 10  | 
abstract class Editor[Context] {
 | 
| 66082 | 11  | 
/* session */  | 
12  | 
||
| 
52971
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
13  | 
def session: Session  | 
| 66084 | 14  | 
def flush(): Unit  | 
| 54461 | 15  | 
def invoke(): Unit  | 
| 
66101
 
0f0f294e314f
maintain overlays within main state of document models;
 
wenzelm 
parents: 
66094 
diff
changeset
 | 
16  | 
|
| 
 
0f0f294e314f
maintain overlays within main state of document models;
 
wenzelm 
parents: 
66094 
diff
changeset
 | 
17  | 
|
| 
 
0f0f294e314f
maintain overlays within main state of document models;
 
wenzelm 
parents: 
66094 
diff
changeset
 | 
18  | 
/* current situation */  | 
| 
 
0f0f294e314f
maintain overlays within main state of document models;
 
wenzelm 
parents: 
66094 
diff
changeset
 | 
19  | 
|
| 
52971
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
20  | 
def current_node(context: Context): Option[Document.Node.Name]  | 
| 52978 | 21  | 
def current_node_snapshot(context: Context): Option[Document.Snapshot]  | 
| 52974 | 22  | 
def node_snapshot(name: Document.Node.Name): Document.Snapshot  | 
| 
53844
 
71f103629327
skip ignored commands, similar to former proper_command_at (see d68ea01d5084) -- relevant to Output, Query_Operation etc.;
 
wenzelm 
parents: 
52980 
diff
changeset
 | 
23  | 
def current_command(context: Context, snapshot: Document.Snapshot): Option[Command]  | 
| 
52977
 
15254e32d299
central management of Document.Overlays, independent of Document_Model;
 
wenzelm 
parents: 
52974 
diff
changeset
 | 
24  | 
|
| 66082 | 25  | 
|
26  | 
/* overlays */  | 
|
27  | 
||
| 
66101
 
0f0f294e314f
maintain overlays within main state of document models;
 
wenzelm 
parents: 
66094 
diff
changeset
 | 
28  | 
def node_overlays(name: Document.Node.Name): Document.Node.Overlays  | 
| 73340 | 29  | 
def insert_overlay(command: Command, fn: String, args: List[String]): Unit  | 
30  | 
def remove_overlay(command: Command, fn: String, args: List[String]): Unit  | 
|
| 66082 | 31  | 
|
32  | 
||
33  | 
/* hyperlinks */  | 
|
| 52980 | 34  | 
|
| 75393 | 35  | 
  abstract class Hyperlink {
 | 
| 64663 | 36  | 
def external: Boolean = false  | 
| 
56494
 
1b74abf064e1
avoid confusion about pointless cursor movement with external links;
 
wenzelm 
parents: 
55884 
diff
changeset
 | 
37  | 
def follow(context: Context): Unit  | 
| 
 
1b74abf064e1
avoid confusion about pointless cursor movement with external links;
 
wenzelm 
parents: 
55884 
diff
changeset
 | 
38  | 
}  | 
| 66084 | 39  | 
|
| 52980 | 40  | 
def hyperlink_command(  | 
| 64664 | 41  | 
focus: Boolean, snapshot: Document.Snapshot, id: Document_ID.Generic, offset: Symbol.Offset = 0)  | 
| 60893 | 42  | 
: Option[Hyperlink]  | 
| 66094 | 43  | 
|
44  | 
||
45  | 
/* dispatcher thread */  | 
|
46  | 
||
47  | 
def assert_dispatcher[A](body: => A): A  | 
|
48  | 
def require_dispatcher[A](body: => A): A  | 
|
49  | 
def send_dispatcher(body: => Unit): Unit  | 
|
50  | 
def send_wait_dispatcher(body: => Unit): Unit  | 
|
| 
52971
 
31926d2c04ee
tuned signature -- more abstract PIDE editor operations;
 
wenzelm 
parents:  
diff
changeset
 | 
51  | 
}  |