src/Tools/jEdit/src/jedit/plugin.scala
changeset 38221 e0f00f0945b4
parent 37557 1ae272fd4082
child 38222 dac5fa0ac971
equal deleted inserted replaced
38220:b30aa2dbedca 38221:e0f00f0945b4
     1 /*  Title:      Tools/jEdit/src/jedit/plugin.scala
     1 /*  Title:      Tools/jEdit/src/jedit/plugin.scala
     2     Author:     Johannes Hölzl, TU Munich
       
     3     Author:     Fabian Immler, TU Munich
       
     4     Author:     Makarius
     2     Author:     Makarius
     5 
     3 
     6 Main Isabelle/jEdit plugin setup.
     4 Main Isabelle/jEdit plugin setup.
     7 */
     5 */
     8 
     6 
    28 {
    26 {
    29   /* plugin instance */
    27   /* plugin instance */
    30 
    28 
    31   var system: Isabelle_System = null
    29   var system: Isabelle_System = null
    32   var session: Session = null
    30   var session: Session = null
    33 
       
    34 
       
    35   /* name */
       
    36 
       
    37   val NAME = "Isabelle"
       
    38 
    31 
    39 
    32 
    40   /* properties */
    33   /* properties */
    41 
    34 
    42   val OPTION_PREFIX = "options.isabelle."
    35   val OPTION_PREFIX = "options.isabelle."
   108     }
   101     }
   109     modes ++ List(logic)
   102     modes ++ List(logic)
   110   }
   103   }
   111 
   104 
   112 
   105 
   113   /* main jEdit components */  // FIXME ownership!?
   106   /* main jEdit components */
   114 
   107 
   115   def jedit_buffers(): Iterator[Buffer] = jEdit.getBuffers().iterator
   108   def jedit_buffers(): Iterator[Buffer] = jEdit.getBuffers().iterator
   116 
   109 
   117   def jedit_views(): Iterator[View] = jEdit.getViews().iterator
   110   def jedit_views(): Iterator[View] = jEdit.getViews().iterator
   118 
   111 
   147       case dockable: Protocol_Dockable => Some(dockable)
   140       case dockable: Protocol_Dockable => Some(dockable)
   148       case _ => None
   141       case _ => None
   149     }
   142     }
   150 
   143 
   151 
   144 
   152   /* manage prover */
   145   /* manage prover */  // FIXME async!?
   153 
   146 
   154   private def prover_started(view: View): Boolean =
   147   private def prover_started(view: View): Boolean =
   155   {
   148   {
   156     val timeout = Int_Property("startup-timeout") max 1000
   149     val timeout = Int_Property("startup-timeout") max 1000
   157     session.start(timeout, Isabelle.isabelle_args()) match {
   150     session.started(timeout, Isabelle.isabelle_args()) match {
   158       case Some(err) =>
   151       case Some(err) =>
   159         val text = new JTextArea(err); text.setEditable(false)
   152         val text = new JTextArea(err); text.setEditable(false)
   160         Library.error_dialog(view, null, "Failed to start Isabelle process", text)
   153         Library.error_dialog(view, null, "Failed to start Isabelle process", text)
   161         false
   154         false
   162       case None => true
   155       case None => true