select logic session names, not paths;
authorwenzelm
Wed, 05 Dec 2012 22:25:15 +0100
changeset 50380 b1cb76418760
parent 50379 a8b0d3729a69
child 50381 d9711842f1f9
select logic session names, not paths;
src/Tools/jEdit/src/isabelle_logic.scala
--- a/src/Tools/jEdit/src/isabelle_logic.scala	Wed Dec 05 21:13:50 2012 +0100
+++ b/src/Tools/jEdit/src/isabelle_logic.scala	Wed Dec 05 22:25:15 2012 +0100
@@ -35,7 +35,7 @@
 
     val entries =
       new Logic_Entry("", "default (" + default_logic() + ")") ::
-        Isabelle_System.find_logics().map(name => new Logic_Entry(name, name))
+        Isabelle_Logic.session_list().map(name => new Logic_Entry(name, name))
 
     val component = new ComboBox(entries) with Option_Component {
       name = option_name
@@ -56,7 +56,7 @@
       component.listenTo(component.selection)
       component.reactions += { case SelectionChanged(_) => component.save() }
     }
-    component.tooltip = PIDE.options.value.check_name(option_name).print_default
+    component.tooltip = "Logic session name (change requires restart)"
     component
   }
 
@@ -71,9 +71,17 @@
     modes ::: List(logic)
   }
 
+  def session_dirs(): List[Path] = Path.split(Isabelle_System.getenv("JEDIT_SESSION_DIRS"))
+
+  def session_list(): List[String] =
+  {
+    val dirs = session_dirs().map((false, _))
+    Build.find_sessions(PIDE.options.value, dirs).topological_order.map(_._1).sorted
+  }
+
   def session_content(inlined_files: Boolean): Build.Session_Content =
   {
-    val dirs = Path.split(Isabelle_System.getenv("JEDIT_SESSION_DIRS"))
+    val dirs = session_dirs()
     val name = session_args().last
     Build.session_content(inlined_files, dirs, name).check_errors
   }