I started working on implementing these properties for overlays in case I end up wanting to do something else with them. If these are properties of overlays and not just solving my specific case, should they be added to point-motion instead of cursor-motion? This shouldn't have any adverse effects, unless people have been adding point-entered and point-left properties to their overlays. I'd think that the hooks should be run only if in the window specified, if the window property is set. Another question should be whether to just use inhibit-point-motion-hooks or add a new variable to inhibit overlay hooks, but it seems logical to use inhibit-point-motion-hooks. Thanks, Nathan On Thu, Sep 10, 2009 at 9:08 PM, Nathaniel Flath wrote: > Using help-at-pt and setting the delay to 0 does end up doing what I want, > thanks. I agree that this is a globally useful feature, which is why I was > thinking of working to fix it at a lower level instead of just hacking > around the deficiencies. Help-at-pt isn't the most elegant of solutions > either, but as long as it's part of emacs I suppose I'm fine with it. > > > On Thu, Sep 10, 2009 at 8:04 PM, Stefan Monnier wrote: > >> > Essentially, I wanted to add echo-area messages to Flymake when the >> point >> > was in a section highlighted as an error. js2-mode does this using text >> > properties when it defines overlays, which is another option I could >> look >> > at, but it seems much better to be able to just have an overlay for all >> of >> > this related information. Flymake does use tooltips to display th error >> > message, but those seem to be only able to display when the mouse is >> over >> > the text, unless I'm missing something. >> >> This is a globally useful feature. You might like to take a look at >> help-at-pt.el. Notice that the feature you're trying to implement does >> not require hooking into the point-motion itself (like >> point-enter/point-leave/intangible properties) but only into the cursor >> movement (i.e. the position of point betwen commands). This is an >> important difference, since one is implemented at a very low level and >> affects all kinds of unrelated operations, whereas the other is >> implemented at a very high level and interacts with very little >> other code. >> >> >> Stefan >> >> >