I am trying to debug a function called when hovering with the mouse over an org link. For example, I instrumented bibtex-completion-apa-get-value with edebug-defun. However, when I hover over an org-ref's citation link, the help echo appears (showing the entry produced using bibtex-completion-apa-get-value) without going into an edebug session. So, how can I debug what's going on when I hover over an org link?

  • 1
    I would examine the text properties underneath -- (text-properties-at (point)) and/or set the point and then C-u C-x = -- and see what makes the link tick, and then move forwards with debugging from there. I don't use edebug, so I have no suggestion on using that utility. – lawlist Jul 12 '17 at 14:06

I just found a solution to something like this. It appears to me the help-echo function call is somehow shrouded so edebug does not get to it. The trick is to call the help-echo function while point is on the link in a regular (i.e. interactive) way so it does trigger edebug things.

The help-echo function on cite links is defined by a lambda function. It isn't a big deal in the end, we can get the lambda function from a text property at point, and then call it with the help-echo arguments. So, define this interactive function:

(defun orc ()
  (interactive)
  (funcall
   (get-text-property (point) 'help-echo) nil nil (point)))

instrument the function you want to look at. Then put point on the link, and run M-x orc. That should trigger an edebug on your instrumented function so you can trace through it.

This worked for me. Hopefully it will help you too.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.