From: Ihor Radchenko <yantar92@posteo.net>
To: Jonas Bernoulli <jonas@bernoul.li>
Cc: "Tor-björn Claesson" <tclaesson@gmail.com>, emacs-orgmode@gnu.org
Subject: Re: Org-cite: Replace basic follow-processor with transient menu?
Date: Thu, 24 Oct 2024 17:32:55 +0000 [thread overview]
Message-ID: <87bjz9o188.fsf@localhost> (raw)
In-Reply-To: <87r085vb1s.fsf@bernoul.li>
Jonas Bernoulli <jonas@bernoul.li> writes:
>> :set (lambda (option-name new-value)
>> (eval
>> `(transient-define-prefix org-cite-basic-follow (citation &optional prefix)
>> "Follow a citation reference.
> ...
>
> (transient-define-prefix org-cite-basic-follow (citation &optional prefix)
> [org-cite-basic-follow-actions]
> ...
This is more compact indeed. Thanks!
> I use something similar in Forge (forge--lists-group et al.), but
> there the purpose is to share groups between different prefixes, not
> to make them customizable.
And this is the problem. See the above :set we have to add in order to
re-evaluate the prefix definition.
It would be nice if the layout could be calculated dynamically rather
than frozen in place in the "defun".
> To let users choose what commands to offer in the menu, I would
> recommend directing users towards Transient's "layer" mechanism instead
> of adding an option.
>
> See [[info:transient#Enabling and Disabling Suffixes]]. To try it enter
> any prefix (magit-diff would do) and type "C-x l". Usage information is
> displayed after that.
This will indeed help with customizing *pre-existing suffixes*. However,
what we really want here is different - we want a minimal set of
suffixes to be provided by Org mode, and more suffixes to be contributed
by individual packages or by users themselves.
In other words, we need some way to add new suffixes to the
org-cite-basic-follow prefix menu.
>> :scope (list citation prefix)
>
> Shouldn't that be just be
> :scope citation
> and then
> (interactive (list (magit-scope)))
> to access it?
We want the [suffix] commands to have information about the prefix argument used
to call `org-cite-basic-follow'.
> Yes, obviously you have to call transient-scope somewhere.
>
> I haven't seen enough of the commands you want to add as suffixes to
> know whether it would make sense, and is even possible, to add an
> abstraction, and the few examples I have seen already contain
> non-commands and "find as pdf" doesn't even exist as a named function.
>
> That being said, if there are multiple commands like
>
> (defun do-something-with-citation (citation)
> (interactive (list (read-citation "Do something with citation: ")))
> ...)
>
> it might make sense to change read-citation like this
>
> (defun read-citation (prompt)
> (if (eq transient-current-prefix 'org-cite-basic-follow)
> (org-element-property :key (transient-scope))
> ...old body here...))
This is precisely what I want to avoid.
What we want is having normal commands/functions and then allowing to
add them as suffixes without having to change their interactive spec or
source code in general.
Currently, if we want suffix that is calling a function not specially
designed with transient support in mind, we need to do the ugly juggle
like
(transient-append-suffix 'org-cite-basic-follow "b"
'("g" "goto"
(lambda (citation prefix)
(interactive (transient-scope))
(org-cite-basic-goto citation prefix))))
It would be so much nicer to write something simpler like
(transient-define-prefix org-cite-basic-follow (citation &optional prefix)
"Follow a citation reference.
The contents of this transient menu is set in org-cite-basic-follow-actions."
[["Open"
("b" "bibliography entry" org-cite-basic-goto :args (transient-args))]]
(interactive)
(if (or org-cite-basic-follow-ask prefix)
;; Imaginary :args slot
(transient-setup 'org-cite-basic-follow nil nil :args (list citation prefix))
(org-cite-basic-goto citation prefix)))
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
next prev parent reply other threads:[~2024-10-24 17:32 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-14 12:36 Org-cite: Replace basic follow-processor with transient menu? Tor-björn Claesson
2024-09-15 14:36 ` Ihor Radchenko
2024-09-17 12:18 ` Tor-björn Claesson
2024-09-22 12:50 ` Ihor Radchenko
2024-09-24 10:07 ` Tor-björn Claesson
2024-10-12 17:31 ` Ihor Radchenko
2024-10-22 7:23 ` Tor-björn Claesson
2024-10-22 17:58 ` Ihor Radchenko
2024-10-24 14:18 ` Jonas Bernoulli
2024-10-24 17:32 ` Ihor Radchenko [this message]
2024-10-26 11:45 ` Jonas Bernoulli
2024-10-27 8:09 ` Ihor Radchenko
2024-10-27 9:17 ` Tor-björn Claesson
2024-10-29 4:58 ` Tor-björn Claesson
2024-10-29 18:55 ` Ihor Radchenko
2024-10-30 5:37 ` Tor-björn Claesson
2024-10-30 18:43 ` Ihor Radchenko
2024-10-31 18:55 ` Tor-björn Claesson
2024-10-31 19:05 ` Ihor Radchenko
2024-10-31 20:47 ` Tor-björn Claesson
2024-11-01 8:27 ` Tor-björn Claesson
2024-11-01 17:08 ` Ihor Radchenko
2024-11-02 19:04 ` Tor-björn Claesson
2024-11-02 19:21 ` Ihor Radchenko
2024-11-02 21:37 ` Tor-björn Claesson
2024-11-03 7:40 ` Ihor Radchenko
2024-11-05 10:07 ` Tor-björn Claesson
2024-11-09 14:08 ` Ihor Radchenko
2024-11-10 16:33 ` Tor-björn Claesson
2024-11-10 16:41 ` Ihor Radchenko
2024-11-11 10:03 ` Tor-björn Claesson
2024-11-11 15:52 ` Ihor Radchenko
2024-11-12 9:26 ` Tor-björn Claesson
2024-11-12 18:03 ` Ihor Radchenko
[not found] ` <CAO0k703a5SCv4Eaogjs-14zgmTi-pK5qqG=8VzB8+7h-kcC8yg@mail.gmail.com>
[not found] ` <87wmh8s358.fsf@localhost>
[not found] ` <87y11nwp9z.fsf@gmail.com>
2024-11-17 9:30 ` Fwd: " Tor-björn Claesson
2024-11-23 16:41 ` Ihor Radchenko
2024-11-25 17:49 ` Tor-björn Claesson
2024-12-10 19:11 ` Ihor Radchenko
2024-12-11 9:57 ` Tor-björn Claesson
2024-12-11 10:05 ` Tor-björn Claesson
2024-12-13 18:41 ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?) Ihor Radchenko
2024-12-13 22:09 ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? Gabriel Santos
2024-12-14 9:57 ` Ihor Radchenko
2024-12-14 10:59 ` Gabriel Santos
2024-12-14 13:10 ` Ihor Radchenko
2024-12-13 22:57 ` Suhail Singh
2024-12-14 9:59 ` Ihor Radchenko
2024-12-14 14:30 ` Suhail Singh
2024-12-14 1:16 ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?) Panayotis Manganaris
2024-12-14 10:08 ` Ihor Radchenko
2024-12-15 21:20 ` Samuel Wales
2024-12-16 17:54 ` Ihor Radchenko
2024-12-17 2:08 ` Samuel Wales
2024-12-17 2:24 ` Samuel Wales
2024-12-17 18:04 ` Transient: accessibility problems for users who need to use large fonts (was: [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?)) Ihor Radchenko
2024-12-18 7:19 ` Samuel Wales
2024-12-18 10:52 ` Jonas Bernoulli
2024-12-19 1:42 ` Samuel Wales
2024-12-19 1:50 ` Samuel Wales
2024-12-18 17:59 ` Ihor Radchenko
2024-12-19 1:48 ` Samuel Wales
2024-12-19 18:04 ` [FR] Allow SPC to scroll todo/tag selection menu - for users with huge accessible fonts (was: Transient: accessibility problems for users who need to use large fonts (was: [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?))) Ihor Radchenko
2024-12-20 6:55 ` Samuel Wales
2024-12-18 10:47 ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?) Jonas Bernoulli
2024-12-19 17:42 ` Internal variables and symbols in transient (was: [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? (was: Fwd: Org-cite: Replace basic follow-processor with transient menu?)) Ihor Radchenko
2024-12-19 18:11 ` Alternative defaults for visually impaired users? " Ihor Radchenko
2024-12-14 10:50 ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? indieterminacy
2024-12-14 17:53 ` Juri Linkov
2024-12-15 9:07 ` Ihor Radchenko
2024-12-16 7:46 ` Juri Linkov
2024-12-16 18:06 ` Ihor Radchenko
2024-12-15 18:23 ` Kierin Bell
2024-12-17 17:23 ` Ihor Radchenko
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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bjz9o188.fsf@localhost \
--to=yantar92@posteo.net \
--cc=emacs-orgmode@gnu.org \
--cc=jonas@bernoul.li \
--cc=tclaesson@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* 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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.