emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Juan Manuel Macías" <maciaschain@posteo.net>
To: John Kitchin <johnrkitchin@gmail.com>
Cc: orgmode <emacs-orgmode@gnu.org>
Subject: Re: Footnote tooltips (an attempt)
Date: Thu, 24 Feb 2022 02:04:10 +0000	[thread overview]
Message-ID: <87pmndrpet.fsf@posteo.net> (raw)
In-Reply-To: <CAJ51ETq=MQz5iUeeXQg4w85FiwP7p_QaUnAoL6OhhWU8R0Hp=A@mail.gmail.com> (John Kitchin's message of "Wed, 23 Feb 2022 17:05:05 -0500")

Hi John,

John Kitchin writes:

> I think this might be a simpler approach. what you want (I think) is
> to leverage font-lock on tooltips to set a help-echo function instead
> of a string. You can override org-activate-footnote-links with an
> advice (which makes it easy to undo of you need). The tooltip function
> then looks up the tooltip when you ask for it. The 3 pieces are below.
> the first function looks up and returns a tooltip. the second is a
> lightly modified version of org-activate-footnote-links which just
> replaces the footnote reference string with the first function. the
> last piece is the override advice. you could use a minor mode to
> toggle the advice on and off.

Thank you very much for your comment and code, which has helped me to
clarify my ideas. Your approach is in a certain way similar to the last
version of my attempt, which I attached in the previous message: through
a first function I get the definition of each note, which is returned as
a text string. And I also override via `advice-add'
'org-activate-footnonte-links' with a new function, which is also
slightly modified, including a variable that gets the tooltip from the
first function. The problem is that with my approach the tooltip does
not appear on the fly, but when the next note is added. I think what my
first function (the one that gets the footnote definition) was missing
was the three arguments of your first function: `_win _obj position' and
the (goto-char position), and pass it as a symbol (not as a variable) to
the second function that overrides org-activate-footnote-links, as you
do in your code. Modifying my function from your code, it would look
something like this:

(defun my-org-fn-get-def (_win _obj position)
    (goto-char position)
    (let* ((el (org-element-context))
           (label (org-element-property :label el))
           (def (nth 3 (org-footnote-get-definition label))))
      (when def (concat "Footnonte: " def)))))

And it seems that now the tooltips appear instantly, and are updated in
real time.

Best regards,

Juan Manuel 

  reply	other threads:[~2022-02-24  2:07 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.57.1645549224.6185.emacs-orgmode@gnu.org>
2022-02-22 22:30 ` Footnote tooltips (an attempt) Ypo
2022-02-23  2:26   ` Juan Manuel Macías
     [not found]     ` <CAJcAo8tsK5o+789Wv=i6ddiSrM4fDyX8HCvjAgDLXGyLXWRWmQ@mail.gmail.com>
2022-02-23 19:52       ` Juan Manuel Macías
2022-02-23 22:05         ` John Kitchin
2022-02-24  2:04           ` Juan Manuel Macías [this message]
2022-02-24 13:01             ` John Kitchin
2022-02-24 16:25               ` Juan Manuel Macías
2022-02-22  4:32 Juan Manuel Macías
2022-02-22 22:15 ` Juan Manuel Macías

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pmndrpet.fsf@posteo.net \
    --to=maciaschain@posteo.net \
    --cc=emacs-orgmode@gnu.org \
    --cc=johnrkitchin@gmail.com \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).