all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Psionic K <psionik@positron.solutions>
To: Karthik Chikmagalur <karthikchikmagalur@gmail.com>,
	Ihor Radchenko <yantar92@posteo.net>
Cc: Psionic K <psionik@positron.solutions>,
	Emacs developers <emacs-devel@gnu.org>,
	 emacs-orgmode@gnu.org, emacs.transient@jonas.bernoulli.dev,
	juri@linkov.net,  justin@burkett.cc, omar@matem.unam.mx,
	tclaesson@gmail.com,  visuweshm@gmail.com
Subject: Re: [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?)
Date: Sun, 15 Dec 2024 12:01:34 +0900	[thread overview]
Message-ID: <CADQMGASiPAGPcyrxP18F_p_pcxTBcBTT0p7tQGK+GHM8N2VDYw@mail.gmail.com> (raw)
In-Reply-To: <87o71d25fb.fsf@gmail.com>

> Do you have an example of using buffer-local variables to store
> transient state?  Directing me to an appropriate section of the
> showcase should be plenty.

It's less magic than it sounds.  I basically bypassed the infix system
when making transients for Master of Ceremonies.
https://github.com/positron-solutions/moc

`moc-dispatch` is a kind of utility dashboard for screen casting.
Besides controls, it displays various states you might not see in the
minibuffer or elsewhere.  I used dynamic :description functions rather
than infixes to display these states.  It is much simpler to bring
Elisp states into the interface this way.  There's no need and there
can be no meaning of persisting the current state of Emacs.

> like the KEEP-PRED behavior of `set-transient-map'

There's more.  Calling (or declining to call) `setup-prefix' manually
in an interactive form or using the stack manipulation commands can
switch between menus and pure interactive flows.  It's possible to
construct flows that are more program-driven than simple KEEP-PRED or
repeat maps.  Obviously we can hack them both since they are functions
that can manipulate the downstream flow.  Transient's pre-commands are
a bit complex to understand when hacking in behavior but are related
to its menu stack, something transient maps don't need to express.

Instead of talking about Transient's second system behaviors, we can
identify and fix the worst ones.  Jonas is aware of them and generally
in favor of normalizing how transient meshes with interactive, as long
as it doesn't break magit and all the other dependents.

> > org-speed-keys
> May you please elaborate?

I discovered org speed keys because I was making my own speed-key
system and came across the shadowed bindings.  The bindings are always
shadowed, even when speed keys are off.  Unlike Lispy, where I
customize the shadowing using keymaps, org speed keys has
`org-speed-commands'.  From a discoverability standpoint, it breaks
some things.  The commands are opaque.  All I see is `org-self-insert'
whereas my own bindings have unique command names on every key,
another thing I copied from Lispy.  Even if they have DWIM or
situational behavior, it is easier to identify all behavior when
starting from an entry point that doesn't implement details of other
commands.



  reply	other threads:[~2024-12-15  3:01 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-14  0:37 [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?) Psionic K
2024-12-14  9:48 ` Ihor Radchenko
2024-12-14 10:12   ` [RFC] The best way to choose an "action" at point: context-menu-mode, transient, which-key or embark? Philip Kaludercic
2024-12-14 23:20 ` [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?) Karthik Chikmagalur
2024-12-14 23:47 ` Karthik Chikmagalur
2024-12-15  3:01   ` Psionic K [this message]
2024-12-15  9:13     ` org-speed-keys design (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
  -- strict thread matches above, loose matches on Subject: below --
2024-09-14 12:36 Org-cite: Replace basic follow-processor with transient menu? Tor-björn Claesson
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 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-14  1:16                                           ` 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-18 10:47                                                     ` Jonas Bernoulli

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=CADQMGASiPAGPcyrxP18F_p_pcxTBcBTT0p7tQGK+GHM8N2VDYw@mail.gmail.com \
    --to=psionik@positron.solutions \
    --cc=emacs-devel@gnu.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=emacs.transient@jonas.bernoulli.dev \
    --cc=juri@linkov.net \
    --cc=justin@burkett.cc \
    --cc=karthikchikmagalur@gmail.com \
    --cc=omar@matem.unam.mx \
    --cc=tclaesson@gmail.com \
    --cc=visuweshm@gmail.com \
    --cc=yantar92@posteo.net \
    /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.