[isabelle-dev] Isabelle/jEdit output panel
Makarius
makarius at sketis.net
Fri Oct 5 17:07:36 CEST 2012
On Fri, 5 Oct 2012, Christian Sternagel wrote:
> - Now that the output panel is based on the same technology as the main
> buffer, would it be feasible to include also the output panel when a
> search on "all buffers" is done.
I am not as ambitious at the moment. A plain Firefox-style search box
like a regular jEdit buffer would be the next step, but I don't know yet
how it needs to be wired up.
Rich_Text_Area shares the larger part of the display engine and buffer
content management with regular jEdit buffers, but the latter is a bit
more than that. My approach imitates existing jEdit plugins like Minimap
or FoldViewer, and it shares few similar limitations with them.
Concerning the collection of official jEdit buffers and the nodes in the
formal document model of PIDE, there are some further conceptual issues
still waiting. For example, when you hypersearch over the all buffers,
you get an order according to file names. It would be more practical to
get a topological order according to the logical structure, especially
when doing systematic replacements while continous checking happens.
So instead of injecting output panels into the jEdit buffer collection, it
might be better to hijack jEdit's hypersearch and let it operate on the
formal document model instead, with some nodes having also an actual jEdit
buffer by accident. This would also avoid the problem of "swamping" the
jEdit buffer space with lots of imported theory files when opening some
file in a large application or library.
> - An old story (but maybe now it's easier to realize?): It would also be
> great if copy/paste would work the same as for the main buffer (e.g., on
> linuxen: select with mouse to copy and press middle mouse button to
> paste); currently only C+c/C+v works
That is just a cheap imitation of the Lobo keyhandler, while using the
proper jEdit clipboard now (with its additional history and registers).
See
http://isabelle.in.tum.de/repos/isabelle/annotate/21f77309d93a/src/Tools/jEdit/src/pretty_text_area.scala#l138
Anything beyond that requires more understanding how jEdit maps key/mouse
events to its actions that operate on a buffer/textarea. There is rather
complex infrastructure for that in jEdit.
BTW, the Unix/X11-style middle-mouse-button copy/paste is a special
mechanism of jEdit implemented on top of regular Java/Swing concepts.
More basic Java applications don't have that, and users of Windows / Mac
OS probably won't know that it could be convenient for them.
Makarius
More information about the isabelle-dev
mailing list