Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I display a prompt when the cursor enters an overlay in emacs?

Tags:

emacs

elisp

I'm writing a minor mode which dispenses writing advice. I am using overlays to highlight mistakes. When the point enters the overlay, I want to display more detail (with message for now, but maybe in a separate buffer.)

help-echo is almost what I want, but I use Gnu Emacs in the terminal, and help-echo is for the mouse pointer, not the point.

point-entered is also almost what I want, but point-entered doesn't have any effect in overlays, only text properties.

Overlays looked appealing in the first place because it is easy to obliterate them when I reparse the buffer (I'm cribbing from what re-builder does here.) Should I continue using overlays but use point motion hooks to find the overlays, extract the prompts, and display them? Should I be using text properties instead of overlays?

like image 529
Dominic Cooney Avatar asked Mar 09 '11 14:03

Dominic Cooney


1 Answers

You might like to try cursor-sensor-mode (which is new in Emacs-25) which lets you place actions on the cursor-sensor-functions text properties (including via overlays).

It is intended to replace the point-entered property and reacts to movements of the cursor rather than to movements of point (the two are closely related, yet different: a given command can move point many times internally, but the cursor will only be moved once, at the end when the display is updated).

like image 93
Stefan Avatar answered Nov 14 '22 19:11

Stefan