tuned;
authorwenzelm
Tue, 29 Oct 2013 18:20:20 +0100
changeset 55236923690bfb818
parent 55235 d5589530f3ba
child 55237 fd5ddf2bce76
tuned;
src/Doc/JEdit/JEdit.thy
     1.1 --- a/src/Doc/JEdit/JEdit.thy	Tue Oct 29 16:52:25 2013 +0100
     1.2 +++ b/src/Doc/JEdit/JEdit.thy	Tue Oct 29 18:20:20 2013 +0100
     1.3 @@ -37,7 +37,7 @@
     1.4    Isabelle. It extends the pure logical environment of Isabelle/ML
     1.5    towards the ``real world'' of graphical user interfaces, text
     1.6    editors, IDE frameworks, web services etc.  Special infrastructure
     1.7 -  allows to transfer algebraic datatypes values and formatted text
     1.8 +  allows to transfer algebraic datatype values and formatted text
     1.9    easily between ML and Scala, using asynchronous protocol commands.
    1.10  
    1.11    \item [jEdit] is a sophisticated text editor implemented in
    1.12 @@ -78,15 +78,15 @@
    1.13    \begin{itemize}
    1.14  
    1.15    \item The original jEdit look-and-feel is generally preserved,
    1.16 -  although some default properties have been changed to accommodate
    1.17 -  Isabelle (e.g.\ the text area font).
    1.18 +  although some default properties are changed to accommodate Isabelle
    1.19 +  (e.g.\ the text area font).
    1.20  
    1.21    \item Formal Isabelle/Isar text is checked asynchronously while
    1.22    editing.  The user is in full command of the editor, and the prover
    1.23    refrains from locking portions of the buffer.
    1.24  
    1.25    \item Prover feedback works via colors, boxes, squiggly underline,
    1.26 -  hyperlinks, popup windows, icons, clickable output, all based on
    1.27 +  hyperlinks, popup windows, icons, clickable output --- all based on
    1.28    semantic markup produced by Isabelle in the background.
    1.29  
    1.30    \item Using the mouse together with the modifier key @{verbatim
    1.31 @@ -102,16 +102,16 @@
    1.32  
    1.33    \item The prover process and source files are managed on the editor
    1.34    side.  The prover operates on timeless and stateless document
    1.35 -  content via Isabelle/Scala.
    1.36 +  content as provided via Isabelle/Scala.
    1.37  
    1.38    \item Plugin options of jEdit (for the \emph{Isabelle} plugin) give
    1.39 -  access to a selection of Isabelle/Scala options and its persistence
    1.40 +  access to a selection of Isabelle/Scala options and its persistent
    1.41    preferences, usually with immediate effect on the prover back-end or
    1.42    editor front-end.
    1.43  
    1.44    \item The logic image of the prover session may be specified within
    1.45 -  Isabelle/jEdit, but this requires restart. The new image is provided
    1.46 -  automatically by the Isabelle build tool.
    1.47 +  Isabelle/jEdit.  The new image is provided automatically by the
    1.48 +  Isabelle build tool after restart of the application.
    1.49  
    1.50    \end{itemize}
    1.51  *}
    1.52 @@ -135,70 +135,74 @@
    1.53  
    1.54  text {* The \emph{Plugin Manager} of jEdit allows to augment editor
    1.55    functionality by JVM modules (jars) that are provided by the central
    1.56 -  plugin repository, or one of various mirror sites. The main
    1.57 -  \emph{Isabelle} plugin is an integral part of Isabelle/jEdit needs
    1.58 -  to remain active at all times! A few additional plugins are bundled
    1.59 -  with Isabelle/jEdit for convenience or out of necessity, notably
    1.60 -  \emph{Console} with its Isabelle/Scala sub-plugin and
    1.61 -  \emph{SideKick} with some Isabelle-specific parsers for document
    1.62 -  tree structure.
    1.63 +  plugin repository, which is accessible by various mirror sites.
    1.64  
    1.65    Connecting to the plugin server infrastructure of the jEdit project
    1.66 -  allows to update bundled plugins or to add further
    1.67 -  functionality. This needs to be done with the usual care for such an
    1.68 -  open bazaar, with contributions of very mixed quality. Arbitrary
    1.69 -  combinations of add-on features are apt to cause problems.
    1.70 +  allows to update bundled plugins or to add further functionality.
    1.71 +  This needs to be done with the usual care for such an open bazaar of
    1.72 +  contributions. Arbitrary combinations of add-on features are apt to
    1.73 +  cause problems.  It is advisable to start with the default
    1.74 +  configuration of Isabelle/jEdit and develop some understanding how
    1.75 +  it is supposed to work, before loading additional plugins at a grand
    1.76 +  scale.
    1.77  
    1.78 -  It is advisable to start with the default configuration of
    1.79 -  Isabelle/jEdit and develop some understanding how it is supposed to
    1.80 -  work, before loading additional plugins at a grand scale.
    1.81 -*}
    1.82 +  \medskip The main \emph{Isabelle} plugin is an integral part of
    1.83 +  Isabelle/jEdit and needs to remain active at all times! A few
    1.84 +  additional plugins are bundled with Isabelle/jEdit for convenience
    1.85 +  or out of necessity, notably \emph{Console} with its Isabelle/Scala
    1.86 +  sub-plugin and \emph{SideKick} with some Isabelle-specific parsers
    1.87 +  for document tree structure.  The \emph{ErrorList} plugin is
    1.88 +  required by \emph{SideKick}, but not used specifically in
    1.89 +  Isabelle/jEdit. *}
    1.90  
    1.91  
    1.92  subsection {* Options *}
    1.93  
    1.94  text {* Both jEdit and Isabelle have distinctive management of
    1.95 -  persistent options.  Regular jEdit options are accessible via the
    1.96 -  dialogs for \emph{Global Options} and \emph{Plugin Options}.  This
    1.97 -  results in an environment of properties that is stored within the
    1.98 -  \emph{settings directory} of jEdit; see also the menu
    1.99 -  \emph{Utilities / Settings Directory}.
   1.100 +  persistent options.
   1.101  
   1.102 -  Isabelle system options are managed by Isabelle/Scala; see also
   1.103 -  \cite{isabelle-sys}, especially the coverage of sessions and
   1.104 -  command-line tools like @{tool build} or @{tool options}.  Isabelle
   1.105 -  options that are declared as \textbf{public} are exposed to the
   1.106 -  jEdit \emph{Plugin Options} dialog, section \emph{Isabelle /
   1.107 -  General}.  This provides a view on Isabelle options with persistent
   1.108 -  preferences in @{verbatim "$ISABELLE_HOME_USER/etc/preferences"},
   1.109 -  independently of the jEdit properties in its settings directory.
   1.110 +  Regular jEdit options are accessible via the dialogs for
   1.111 +  \emph{Global Options} and \emph{Plugin Options}.  Changed properties
   1.112 +  are stored eventually in @{verbatim
   1.113 +  "$ISABELLE_HOME_USER/jedit/properties"}.  In contrast, Isabelle
   1.114 +  system options are managed by Isabelle/Scala and changes stored in
   1.115 +  @{verbatim "$ISABELLE_HOME_USER/etc/preferences"}, independently of
   1.116 +  the jEdit properties.  See also \cite{isabelle-sys}, especially the
   1.117 +  coverage of sessions and command-line tools like @{tool build} or
   1.118 +  @{tool options}.
   1.119  
   1.120 -  Some Isabelle options that are accessible in the Isabelle/jEdit
   1.121 -  Plugin Options dialog affect general parameters that are relevant
   1.122 -  outside Isabelle/jEdit as well, e.g.\ @{system_option threads} or
   1.123 +  Those Isabelle options that are declared as \textbf{public} are
   1.124 +  configurable in jEdit via \emph{Plugin Options / Isabelle /
   1.125 +  General}.  Moreover, there are various options for rendering of
   1.126 +  document content, which are configurable via \emph{Plugin Options /
   1.127 +  Isabelle / Rendering}.  Thus \emph{Plugin Options / Isabelle} in
   1.128 +  jEdit provides a view on certain Isabelle options.  Note that some
   1.129 +  of these options affect general parameters that are relevant outside
   1.130 +  Isabelle/jEdit as well, e.g.\ @{system_option threads} or
   1.131    @{system_option parallel_proofs} for the Isabelle build tool
   1.132    \cite{isabelle-sys}.
   1.133  
   1.134 -  \medskip Options are loaded on startup and saved on shutdown of
   1.135 +  \medskip All options are loaded on startup and saved on shutdown of
   1.136    Isabelle/jEdit.  Editing the machine-generated files @{verbatim
   1.137    "$ISABELLE_HOME_USER/jedit/properties"} or @{verbatim
   1.138    "$ISABELLE_HOME_USER/etc/preferences"} manually while the
   1.139 -  application is running is likely to cause a lost update!  *}
   1.140 +  application is running is likely to cause surprise due to lost
   1.141 +  update!  *}
   1.142  
   1.143  
   1.144  subsection {* Keymaps *}
   1.145  
   1.146  text {* Keyboard shortcuts used to be managed as jEdit properties in
   1.147    the past, but recent versions (2013) have a separate concept of
   1.148 -  \emph{keymap}.  The @{verbatim imported} keymap is derived from the
   1.149 +  \emph{keymap} that is configurable via \emph{Global Options /
   1.150 +  Shortcuts}.  The @{verbatim imported} keymap is derived from the
   1.151    initial environment of properties that is available at the first
   1.152 -  start of the editor.
   1.153 +  start of the editor; afterwards the keymap file takes precedence.
   1.154  
   1.155    This is relevant for Isabelle/jEdit due to various fine-tuning of
   1.156    default properties, and additional keyboard shortcuts for Isabelle
   1.157 -  specific functionality. Users may change their keymap later on, but
   1.158 -  may need to copy Isabelle-specific key bindings manually.
   1.159 -*}
   1.160 +  specific functionality. Users may change their keymap, but need to
   1.161 +  copy Isabelle-specific key bindings manually.  *}
   1.162  
   1.163  
   1.164  subsection {* Look-and-feel *}
   1.165 @@ -216,12 +220,15 @@
   1.166    \item[Linux] The platform-independent \emph{Nimbus} is used by
   1.167    default, but the classic \emph{Metal} also works.  \emph{GTK+} works
   1.168    under the side-condition that the overall GTK theme is selected in a
   1.169 -  Swing-friendly way.
   1.170 +  Swing-friendly way.\footnote{GTK support in Java/Swing was once
   1.171 +  marketed aggressively by Sun, but never quite finished, and is today
   1.172 +  (2013) lagging a bit behind further development of Swing and GTK.}
   1.173  
   1.174    \item[Windows] Regular \emph{Windows} is used by default, but
   1.175    platform-independent \emph{Nimbus} and \emph{Metal} also work.
   1.176  
   1.177 -  \item[Mac OS X] Standard \emph{Apple Aqua} is used by default.
   1.178 +  \item[Mac OS X] Regular \emph{Mac OS X} is used by default, but
   1.179 +  platform-independent \emph{Nimbus} and \emph{Metal} also work.
   1.180    Moreover the bundled \emph{MacOSX} plugin provides various functions
   1.181    that are expected from applications on that particular platform:
   1.182    quit from menu or dock, preferences menu, drag-and-drop of text
   1.183 @@ -232,13 +239,10 @@
   1.184  
   1.185    Users may experiment with different look-and-feels, but need to keep
   1.186    in mind that this extra variance of GUI functionality is unlikely to
   1.187 -  work in arbitrary combinations.  The \emph{GTK+} look-and-feel is
   1.188 -  particularly critical due to its additional dimension of ``themes''.
   1.189 -
   1.190 -  After changing the look-and-feel in \emph{Global Options /
   1.191 -  Appearance}, it is advisable to restart Isabelle/jEdit in order to
   1.192 -  take full effect.
   1.193 -*}
   1.194 +  work in arbitrary combinations.  The historic \emph{CDE/Motif} is
   1.195 +  better avoided.  After changing the look-and-feel in \emph{Global
   1.196 +  Options / Appearance}, it is advisable to restart Isabelle/jEdit in
   1.197 +  order to take full effect.  *}
   1.198  
   1.199  
   1.200  chapter {* Prover IDE functionality *}