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 |