src/Doc/JEdit/JEdit.thy
changeset 72894 bd2269b6cd99
parent 72251 a6587b40399d
child 72896 4e63acc435bd
equal deleted inserted replaced
72893:fbdadf5760c2 72894:bd2269b6cd99
    47     \<^descr>[Isabelle/jEdit] is the main application of the PIDE framework and the
    47     \<^descr>[Isabelle/jEdit] is the main application of the PIDE framework and the
    48     default user-interface for Isabelle. It targets both beginners and
    48     default user-interface for Isabelle. It targets both beginners and
    49     experts. Technically, Isabelle/jEdit consists of the original jEdit code
    49     experts. Technically, Isabelle/jEdit consists of the original jEdit code
    50     base with minimal patches and a special plugin for Isabelle. This is
    50     base with minimal patches and a special plugin for Isabelle. This is
    51     integrated as a desktop application for the main operating system
    51     integrated as a desktop application for the main operating system
    52     families: Linux, Windows, Mac OS X.
    52     families: Linux, Windows, macOS.
    53 
    53 
    54   End-users of Isabelle download and run a standalone application that exposes
    54   End-users of Isabelle download and run a standalone application that exposes
    55   jEdit as a text editor on the surface. Thus there is occasionally a tendency
    55   jEdit as a text editor on the surface. Thus there is occasionally a tendency
    56   to apply the name ``jEdit'' to any of the Isabelle Prover IDE aspects,
    56   to apply the name ``jEdit'' to any of the Isabelle Prover IDE aspects,
    57   without proper differentiation. When discussing these PIDE building blocks
    57   without proper differentiation. When discussing these PIDE building blocks
    96   of the formal text in parallel on multiple cores, and provides feedback via
    96   of the formal text in parallel on multiple cores, and provides feedback via
    97   markup, which is rendered in the editor via colors, boxes, squiggly
    97   markup, which is rendered in the editor via colors, boxes, squiggly
    98   underlines, hyperlinks, popup windows, icons, clickable output etc.
    98   underlines, hyperlinks, popup windows, icons, clickable output etc.
    99 
    99 
   100   Using the mouse together with the modifier key \<^verbatim>\<open>CONTROL\<close> (Linux, Windows)
   100   Using the mouse together with the modifier key \<^verbatim>\<open>CONTROL\<close> (Linux, Windows)
   101   or \<^verbatim>\<open>COMMAND\<close> (Mac OS X) exposes formal content via tooltips and/or
   101   or \<^verbatim>\<open>COMMAND\<close> (macOS) exposes formal content via tooltips and/or
   102   hyperlinks (see also \secref{sec:tooltips-hyperlinks}). Output (in popups
   102   hyperlinks (see also \secref{sec:tooltips-hyperlinks}). Output (in popups
   103   etc.) may be explored recursively, using the same techniques as in the
   103   etc.) may be explored recursively, using the same techniques as in the
   104   editor source buffer.
   104   editor source buffer.
   105 
   105 
   106   Thus the Prover IDE gives an impression of direct access to formal content
   106   Thus the Prover IDE gives an impression of direct access to formal content
   217 
   217 
   218 section \<open>Command-line invocation \label{sec:command-line}\<close>
   218 section \<open>Command-line invocation \label{sec:command-line}\<close>
   219 
   219 
   220 text \<open>
   220 text \<open>
   221   Isabelle/jEdit is normally invoked as a single-instance desktop application,
   221   Isabelle/jEdit is normally invoked as a single-instance desktop application,
   222   based on platform-specific executables for Linux, Windows, Mac OS X.
   222   based on platform-specific executables for Linux, Windows, macOS.
   223 
   223 
   224   It is also possible to invoke the Prover IDE on the command-line, with some
   224   It is also possible to invoke the Prover IDE on the command-line, with some
   225   extra options and environment settings. The command-line usage of @{tool_def
   225   extra options and environment settings. The command-line usage of @{tool_def
   226   jedit} is as follows:
   226   jedit} is as follows:
   227   @{verbatim [display]
   227   @{verbatim [display]
   336     options need to be selected to suite Java/AWT/Swing. Note that the Java
   336     options need to be selected to suite Java/AWT/Swing. Note that the Java
   337     Virtual Machine has no direct influence of GTK rendering.
   337     Virtual Machine has no direct influence of GTK rendering.
   338 
   338 
   339     \<^descr>[Windows:] Regular \<^emph>\<open>Windows\<close> is used by default.
   339     \<^descr>[Windows:] Regular \<^emph>\<open>Windows\<close> is used by default.
   340 
   340 
   341     \<^descr>[Mac OS X:] Regular \<^emph>\<open>Mac OS X\<close> is used by default.
   341     \<^descr>[macOS:] Regular \<^emph>\<open>Mac OS X\<close> is used by default.
   342 
   342 
   343     The bundled \<^emph>\<open>MacOSX\<close> plugin provides various functions that are expected
   343     The bundled \<^emph>\<open>MacOSX\<close> plugin provides various functions that are expected
   344     from applications on that particular platform: quit from menu or dock,
   344     from applications on that particular platform: quit from menu or dock,
   345     preferences menu, drag-and-drop of text files on the application,
   345     preferences menu, drag-and-drop of text files on the application,
   346     full-screen mode for main editor windows. It is advisable to have the
   346     full-screen mode for main editor windows. It is advisable to have the
  1239 section \<open>Tooltips and hyperlinks \label{sec:tooltips-hyperlinks}\<close>
  1239 section \<open>Tooltips and hyperlinks \label{sec:tooltips-hyperlinks}\<close>
  1240 
  1240 
  1241 text \<open>
  1241 text \<open>
  1242   Formally processed text (prover input or output) contains rich markup that
  1242   Formally processed text (prover input or output) contains rich markup that
  1243   can be explored by using the \<^verbatim>\<open>CONTROL\<close> modifier key on Linux and Windows,
  1243   can be explored by using the \<^verbatim>\<open>CONTROL\<close> modifier key on Linux and Windows,
  1244   or \<^verbatim>\<open>COMMAND\<close> on Mac OS X. Hovering with the mouse while the modifier is
  1244   or \<^verbatim>\<open>COMMAND\<close> on macOS. Hovering with the mouse while the modifier is
  1245   pressed reveals a \<^emph>\<open>tooltip\<close> (grey box over the text with a yellow popup)
  1245   pressed reveals a \<^emph>\<open>tooltip\<close> (grey box over the text with a yellow popup)
  1246   and/or a \<^emph>\<open>hyperlink\<close> (black rectangle over the text with change of mouse
  1246   and/or a \<^emph>\<open>hyperlink\<close> (black rectangle over the text with change of mouse
  1247   pointer); see also \figref{fig:tooltip}.
  1247   pointer); see also \figref{fig:tooltip}.
  1248 
  1248 
  1249   \begin{figure}[!htb]
  1249   \begin{figure}[!htb]
  2176   \<^item> \<^bold>\<open>Problem:\<close> Keyboard shortcuts \<^verbatim>\<open>C+PLUS\<close> and \<^verbatim>\<open>C+MINUS\<close> for adjusting the
  2176   \<^item> \<^bold>\<open>Problem:\<close> Keyboard shortcuts \<^verbatim>\<open>C+PLUS\<close> and \<^verbatim>\<open>C+MINUS\<close> for adjusting the
  2177   editor font size depend on platform details and national keyboards.
  2177   editor font size depend on platform details and national keyboards.
  2178 
  2178 
  2179   \<^bold>\<open>Workaround:\<close> Rebind keys via \<^emph>\<open>Global Options~/ Shortcuts\<close>.
  2179   \<^bold>\<open>Workaround:\<close> Rebind keys via \<^emph>\<open>Global Options~/ Shortcuts\<close>.
  2180 
  2180 
  2181   \<^item> \<^bold>\<open>Problem:\<close> The Mac OS X key sequence \<^verbatim>\<open>COMMAND+COMMA\<close> for application
  2181   \<^item> \<^bold>\<open>Problem:\<close> The macOS key sequence \<^verbatim>\<open>COMMAND+COMMA\<close> for application
  2182   \<^emph>\<open>Preferences\<close> is in conflict with the jEdit default keyboard shortcut for
  2182   \<^emph>\<open>Preferences\<close> is in conflict with the jEdit default keyboard shortcut for
  2183   \<^emph>\<open>Incremental Search Bar\<close> (action @{action_ref "quick-search"}).
  2183   \<^emph>\<open>Incremental Search Bar\<close> (action @{action_ref "quick-search"}).
  2184 
  2184 
  2185   \<^bold>\<open>Workaround:\<close> Rebind key via \<^emph>\<open>Global Options~/ Shortcuts\<close> according to the
  2185   \<^bold>\<open>Workaround:\<close> Rebind key via \<^emph>\<open>Global Options~/ Shortcuts\<close> according to the
  2186   national keyboard layout, e.g.\ \<^verbatim>\<open>COMMAND+SLASH\<close> on English ones.
  2186   national keyboard layout, e.g.\ \<^verbatim>\<open>COMMAND+SLASH\<close> on English ones.
  2187 
  2187 
  2188   \<^item> \<^bold>\<open>Problem:\<close> On Mac OS X with native Apple look-and-feel, some exotic
  2188   \<^item> \<^bold>\<open>Problem:\<close> On macOS with native Apple look-and-feel, some exotic
  2189   national keyboards may cause a conflict of menu accelerator keys with
  2189   national keyboards may cause a conflict of menu accelerator keys with
  2190   regular jEdit key bindings. This leads to duplicate execution of the
  2190   regular jEdit key bindings. This leads to duplicate execution of the
  2191   corresponding jEdit action.
  2191   corresponding jEdit action.
  2192 
  2192 
  2193   \<^bold>\<open>Workaround:\<close> Disable the native Apple menu bar via Java runtime option
  2193   \<^bold>\<open>Workaround:\<close> Disable the native Apple menu bar via Java runtime option
  2194   \<^verbatim>\<open>-Dapple.laf.useScreenMenuBar=false\<close>.
  2194   \<^verbatim>\<open>-Dapple.laf.useScreenMenuBar=false\<close>.
  2195 
  2195 
  2196   \<^item> \<^bold>\<open>Problem:\<close> Mac OS X system fonts sometimes lead to character drop-outs in
  2196   \<^item> \<^bold>\<open>Problem:\<close> macOS system fonts sometimes lead to character drop-outs in
  2197   the main text area.
  2197   the main text area.
  2198 
  2198 
  2199   \<^bold>\<open>Workaround:\<close> Use the default \<^verbatim>\<open>Isabelle DejaVu\<close> fonts.
  2199   \<^bold>\<open>Workaround:\<close> Use the default \<^verbatim>\<open>Isabelle DejaVu\<close> fonts.
  2200 
  2200 
  2201   \<^item> \<^bold>\<open>Problem:\<close> On Mac OS X the Java printer dialog sometimes does not work.
  2201   \<^item> \<^bold>\<open>Problem:\<close> On macOS the Java printer dialog sometimes does not work.
  2202 
  2202 
  2203   \<^bold>\<open>Workaround:\<close> Use action @{action isabelle.draft} and print via the Web
  2203   \<^bold>\<open>Workaround:\<close> Use action @{action isabelle.draft} and print via the Web
  2204   browser.
  2204   browser.
  2205 
  2205 
  2206   \<^item> \<^bold>\<open>Problem:\<close> Antialiased text rendering may show bad performance or bad
  2206   \<^item> \<^bold>\<open>Problem:\<close> Antialiased text rendering may show bad performance or bad
  2239 
  2239 
  2240   \<^bold>\<open>Workaround:\<close> Use suitable version of Linux desktops.
  2240   \<^bold>\<open>Workaround:\<close> Use suitable version of Linux desktops.
  2241 
  2241 
  2242   \<^item> \<^bold>\<open>Problem:\<close> Full-screen mode via jEdit action @{action_ref
  2242   \<^item> \<^bold>\<open>Problem:\<close> Full-screen mode via jEdit action @{action_ref
  2243   "toggle-full-screen"} (default keyboard shortcut \<^verbatim>\<open>F11\<close>) works on Windows,
  2243   "toggle-full-screen"} (default keyboard shortcut \<^verbatim>\<open>F11\<close>) works on Windows,
  2244   but not on Mac OS X or various Linux/X11 window managers.
  2244   but not on macOS or various Linux/X11 window managers.
  2245 
  2245 
  2246   \<^bold>\<open>Workaround:\<close> Use native full-screen control of the window manager (notably
  2246   \<^bold>\<open>Workaround:\<close> Use native full-screen control of the window manager (notably
  2247   on Mac OS X).
  2247   on macOS).
  2248 
  2248 
  2249   \<^item> \<^bold>\<open>Problem:\<close> Heap space of the JVM may fill up and render the Prover IDE
  2249   \<^item> \<^bold>\<open>Problem:\<close> Heap space of the JVM may fill up and render the Prover IDE
  2250   unresponsive, e.g.\ when editing big Isabelle sessions with many theories.
  2250   unresponsive, e.g.\ when editing big Isabelle sessions with many theories.
  2251 
  2251 
  2252   \<^bold>\<open>Workaround:\<close> Increase JVM heap parameters by editing platform-specific
  2252   \<^bold>\<open>Workaround:\<close> Increase JVM heap parameters by editing platform-specific