src/Tools/jEdit/src/isabelle_sidekick.scala
changeset 48718 73e6c22e2d94
parent 48717 622251b2b0f1
child 48826 b19ba23e70c5
--- a/src/Tools/jEdit/src/isabelle_sidekick.scala	Tue Aug 07 21:38:24 2012 +0200
+++ b/src/Tools/jEdit/src/isabelle_sidekick.scala	Tue Aug 07 22:25:17 2012 +0200
@@ -132,8 +132,11 @@
 }
 
 
-class Isabelle_Sidekick_Default
-  extends Isabelle_Sidekick("isabelle", Isabelle.session.get_recent_syntax)
+class Isabelle_Sidekick_Structure(
+    name: String,
+    get_syntax: => Option[Outer_Syntax],
+    node_name: Buffer => Option[Document.Node.Name])
+  extends Isabelle_Sidekick(name, get_syntax)
 {
   import Thy_Syntax.Structure
 
@@ -160,10 +163,10 @@
         case _ => Nil
       }
 
-    Isabelle.buffer_node_name(buffer) match {
-      case Some(node_name) =>
+    node_name(buffer) match {
+      case Some(name) =>
         val text = Isabelle.buffer_text(buffer)
-        val structure = Structure.parse(syntax, node_name, text)
+        val structure = Structure.parse(syntax, name, text)
         make_tree(0, structure) foreach (node => data.root.add(node))
         true
       case None => false
@@ -172,12 +175,16 @@
 }
 
 
-class Isabelle_Sidekick_Options
-  extends Isabelle_Sidekick("isabelle-options", Some(Options.options_syntax))
+class Isabelle_Sidekick_Default extends Isabelle_Sidekick_Structure(
+  "isabelle", Isabelle.session.get_recent_syntax, Isabelle.buffer_node_name)
 
 
-class Isabelle_Sidekick_Root
-  extends Isabelle_Sidekick("isabelle-root", Some(Build.root_syntax))
+class Isabelle_Sidekick_Options extends Isabelle_Sidekick_Structure(
+  "isabelle-options", Some(Options.options_syntax), Isabelle.buffer_node_dummy)
+
+
+class Isabelle_Sidekick_Root extends Isabelle_Sidekick_Structure(
+  "isabelle-root", Some(Build.root_syntax), Isabelle.buffer_node_dummy)
 
 
 class Isabelle_Sidekick_Raw