src/Doc/JEdit/JEdit.thy
changeset 57316 134d3b6c135e
parent 57315 d0f34f328ffa
child 57317 7da91cd963f4
equal deleted inserted replaced
57315:d0f34f328ffa 57316:134d3b6c135e
   315   (\secref{sec:completion}): partial specifications are resolved via actual
   315   (\secref{sec:completion}): partial specifications are resolved via actual
   316   directory content and possible completions are offered in a popup.
   316   directory content and possible completions are offered in a popup.
   317 *}
   317 *}
   318 
   318 
   319 
   319 
       
   320 section {* Dockable Windows *}
       
   321 
       
   322 text {*
       
   323   In jEdit terminology, a \emph{view} is an editor window with one or more
       
   324   \emph{text areas} that show the content of one or more \emph{buffers}. A
       
   325   regular view may be surrounded by \emph{dockable windows} that show
       
   326   additional information in arbitrary format, not just text; a \emph{plain
       
   327   view} does not allow dockables. The \emph{dockable window manager} of jEdit
       
   328   organizes these dockable windows, either as \emph{floating} windows, or
       
   329   \emph{docked} panels within one of the four margins of the view. There may
       
   330   be any number of floating instances of some dockable window, but at most one
       
   331   docked instance; jEdit actions that address \emph{the} dockable window of a
       
   332   particular kind refer to the unique docked instance.
       
   333 
       
   334   Dockables are used routinely in jEdit for important functionality like
       
   335   \emph{HyperSearch Results} or the \emph{File System Browser}. Plugins often
       
   336   provide a central dockable to access their key functionality, which may be
       
   337   opened by the user on demand. The Isabelle/jEdit plugin takes this approach
       
   338   to the extreme: its main plugin menu merely provides entry-points to panels
       
   339   that are managed as dockable windows. Some important panels are docked by
       
   340   default, e.g.\ \emph{Documentation}, \emph{Output}, \emph{Query}, but the
       
   341   user can change this arrangement easily.
       
   342 
       
   343   Compared to plain jEdit, dockable window management in Isabelle/jEdit is
       
   344   slightly augmented according to the the following principles:
       
   345 
       
   346   \begin{itemize}
       
   347 
       
   348   \item Floating windows are dependent on the main window as \emph{dialog} in
       
   349   the sense of Java/AWT/Swing. Dialog windows always stay on top of the view,
       
   350   which is particularly important in full-screen mode. The desktop environment
       
   351   of the underlying platform may impose further policies on such dependent
       
   352   dialogs, in contrast to fully independent windows, e.g.\ some window
       
   353   management functions may be missing.
       
   354 
       
   355   \item Keyboard focus of the main view vs.\ a dockable window is carefully
       
   356   managed according to the intended semantics, as a panel mainly for output or
       
   357   input. For example, activating the \emph{Output} (\secref{sec:output}) panel
       
   358   via the dockable window manager returns keyboard focus to the main text
       
   359   area, but for \emph{Query} (\secref{sec:query}) the focus is given to the
       
   360   main input field of that panel.
       
   361 
       
   362   \item Panels that provide their own text area for output have an additional
       
   363   dockable menu item \emph{Detach}. This produces an independent copy of the
       
   364   current output as a floating \emph{Info} window, which displays that content
       
   365   independently of ongoing changes of the PIDE document-model. Note that
       
   366   Isabelle/jEdit popup windows (\secref{sec:tooltips-hyperlinks}) provide a
       
   367   similar \emph{Detach} operation as an icon.
       
   368 
       
   369   \end{itemize}
       
   370 *}
       
   371 
       
   372 
   320 chapter {* Prover IDE functionality *}
   373 chapter {* Prover IDE functionality *}
   321 
   374 
   322 section {* Text buffers and theories \label{sec:buffers-theories} *}
   375 section {* Text buffers and theories \label{sec:buffers-theories} *}
   323 
   376 
   324 text {* As regular text editor, jEdit maintains a collection of open
   377 text {* As regular text editor, jEdit maintains a collection of open
   373   the meaning of formal text, and to produce more text with some add-on tools
   426   the meaning of formal text, and to produce more text with some add-on tools
   374   (e.g.\ information messages with \emph{sendback} markup by automated provers
   427   (e.g.\ information messages with \emph{sendback} markup by automated provers
   375   or disprovers in the background). *}
   428   or disprovers in the background). *}
   376 
   429 
   377 
   430 
   378 section {* Output \label{sec:prover-output} *}
   431 section {* Output \label{sec:output} *}
   379 
   432 
   380 text {* Prover output consists of \emph{markup} and \emph{messages}.
   433 text {* Prover output consists of \emph{markup} and \emph{messages}.
   381   Both are directly attached to the corresponding positions in the
   434   Both are directly attached to the corresponding positions in the
   382   original source text, and visualized in the text area, e.g.\ as text
   435   original source text, and visualized in the text area, e.g.\ as text
   383   colours for free and bound variables, or as squiggly underline for
   436   colours for free and bound variables, or as squiggly underline for
   872   theorem}), independently of the state of the current proof attempt.
   925   theorem}), independently of the state of the current proof attempt.
   873   They work implicitly without any arguments.  Results are output as
   926   They work implicitly without any arguments.  Results are output as
   874   \emph{information messages}, which are indicated in the text area by
   927   \emph{information messages}, which are indicated in the text area by
   875   blue squiggles and a blue information sign in the gutter (see
   928   blue squiggles and a blue information sign in the gutter (see
   876   \figref{fig:auto-tools}).  The message content may be shown as for
   929   \figref{fig:auto-tools}).  The message content may be shown as for
   877   other output (see also \secref{sec:prover-output}).  Some tools
   930   other output (see also \secref{sec:output}).  Some tools
   878   produce output with \emph{sendback} markup, which means that
   931   produce output with \emph{sendback} markup, which means that
   879   clicking on certain parts of the output inserts that text into the
   932   clicking on certain parts of the output inserts that text into the
   880   source in the proper place.
   933   source in the proper place.
   881 
   934 
   882   \begin{figure}[htb]
   935   \begin{figure}[htb]
  1078 
  1131 
  1079 section {* Low-level output *}
  1132 section {* Low-level output *}
  1080 
  1133 
  1081 text {* Prover output is normally shown directly in the main text area
  1134 text {* Prover output is normally shown directly in the main text area
  1082   or secondary \emph{Output} panels, as explained in
  1135   or secondary \emph{Output} panels, as explained in
  1083   \secref{sec:prover-output}.
  1136   \secref{sec:output}.
  1084 
  1137 
  1085   Beyond this, it is occasionally useful to inspect low-level output
  1138   Beyond this, it is occasionally useful to inspect low-level output
  1086   channels via some of the following additional panels:
  1139   channels via some of the following additional panels:
  1087 
  1140 
  1088   \begin{itemize}
  1141   \begin{itemize}
  1108   problems with tools that are not PIDE compliant.
  1161   problems with tools that are not PIDE compliant.
  1109 
  1162 
  1110   Under normal circumstances, prover output always works via managed message
  1163   Under normal circumstances, prover output always works via managed message
  1111   channels (corresponding to @{ML writeln}, @{ML warning}, @{ML
  1164   channels (corresponding to @{ML writeln}, @{ML warning}, @{ML
  1112   Output.error_message} etc.\ in Isabelle/ML), which are displayed by regular
  1165   Output.error_message} etc.\ in Isabelle/ML), which are displayed by regular
  1113   means within the document model (\secref{sec:prover-output}).
  1166   means within the document model (\secref{sec:output}).
  1114 
  1167 
  1115   \item \emph{Syslog} shows system messages that might be relevant to
  1168   \item \emph{Syslog} shows system messages that might be relevant to
  1116   diagnose problems with the startup or shutdown phase of the prover
  1169   diagnose problems with the startup or shutdown phase of the prover
  1117   process; this also includes raw output on @{verbatim stderr}.
  1170   process; this also includes raw output on @{verbatim stderr}.
  1118 
  1171