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 |