# HG changeset patch # User wenzelm # Date 1582992977 -3600 # Node ID a80fa14bccb826f0a2b899035325caa4f406658d # Parent 5d62f797e40cb59a852aeb9826baa1a15d69c22d more Isabelle/jEdit actions; diff -r 5d62f797e40c -r a80fa14bccb8 NEWS --- a/NEWS Sat Feb 29 16:38:59 2020 +0100 +++ b/NEWS Sat Feb 29 17:16:17 2020 +0100 @@ -55,6 +55,10 @@ *** Isabelle/jEdit Prover IDE *** +* Actions isabelle.tooltip (CS+b) and isabelle.message (CS+m) display +tooltip message popups, corresponding to mouse hovering with/without the +CONTROL/COMMAND key pressed. + * Prover IDE startup is now much faster, because theory dependencies are no longer explored in advance. The overall session structure with its declarations of 'directories' is sufficient to locate theory files. Thus diff -r 5d62f797e40c -r a80fa14bccb8 src/Tools/jEdit/src/actions.xml --- a/src/Tools/jEdit/src/actions.xml Sat Feb 29 16:38:59 2020 +0100 +++ b/src/Tools/jEdit/src/actions.xml Sat Feb 29 17:16:17 2020 +0100 @@ -77,6 +77,16 @@ isabelle.jedit.Isabelle.complete(view, false); + + + isabelle.jedit.Isabelle.show_tooltip(view, true); + + + + + isabelle.jedit.Isabelle.show_tooltip(view, false); + + isabelle.jedit.Isabelle.complete(view, true); diff -r 5d62f797e40c -r a80fa14bccb8 src/Tools/jEdit/src/isabelle.scala --- a/src/Tools/jEdit/src/isabelle.scala Sat Feb 29 16:38:59 2020 +0100 +++ b/src/Tools/jEdit/src/isabelle.scala Sat Feb 29 17:16:17 2020 +0100 @@ -9,7 +9,7 @@ import isabelle._ -import java.awt.Frame +import java.awt.{Frame, Point} import scala.swing.CheckBox import scala.swing.event.ButtonClicked @@ -515,4 +515,26 @@ dismissed } + + + /* tooltips */ + + def show_tooltip(view: View, control: Boolean) + { + GUI_Thread.require {} + + val text_area = view.getTextArea + val painter = text_area.getPainter + val caret_range = JEdit_Lib.caret_range(text_area) + for { + doc_view <- Document_View.get(text_area) + rendering = doc_view.get_rendering() + tip <- rendering.tooltip(caret_range, control) + loc0 <- Option(text_area.offsetToXY(caret_range.start)) + } { + val loc = new Point(loc0.x, loc0.y + painter.getLineHeight / 2) + val results = rendering.snapshot.command_results(tip.range) + Pretty_Tooltip(view, painter, loc, rendering, results, tip) + } + } } diff -r 5d62f797e40c -r a80fa14bccb8 src/Tools/jEdit/src/jEdit.props --- a/src/Tools/jEdit/src/jEdit.props Sat Feb 29 16:38:59 2020 +0100 +++ b/src/Tools/jEdit/src/jEdit.props Sat Feb 29 17:16:17 2020 +0100 @@ -229,6 +229,8 @@ isabelle.increase-font-size.shortcut=C+PLUS isabelle.increase-font-size2.label=Increase font size (clone) isabelle.increase-font-size2.shortcut=C+EQUALS +isabelle.message.label=Show message +isabelle.message.shortcut=CS+m isabelle.newline.label=Newline with indentation of Isabelle keywords isabelle.newline.shortcut=ENTER isabelle.options.label=Isabelle options @@ -246,6 +248,8 @@ isabelle.toggle-continuous-checking.shortcut=C+e ENTER isabelle.toggle-node-required.label=Toggle node required isabelle.toggle-node-required.shortcut=C+e SPACE +isabelle.tooltip.label=Show tooltip +isabelle.tooltip.shortcut=CS+b isabelle.update-state.label=Update state output isabelle.update-state.shortcut=S+ENTER lang.usedefaultlocale=false