From: Drew Adams <drew.adams@oracle.com>
To: "Alan Mackenzie" <acm@muc.de>,
"Yuri Khan" <yuri.v.khan@gmail.com>,
"Óscar Fuentes" <ofv@wanadoo.es>,
"Emacs developers" <emacs-devel@gnu.org>
Subject: RE: Making `interactive' conditional (was: Leaving out non-applicable commands on Mx)
Date: Sun, 10 Jan 2016 10:22:28 -0800 (PST) [thread overview]
Message-ID: <6e3b5001-3d9f-4993-8e79-94fff1c13780@default> (raw)
In-Reply-To: <20160110152710.GB3580@acm.fritz.box>
> This might be OK if the only reason you every use M-x is to execute a
> command. But it's not. People (in particular, me) use it to discover
> Emacs, to find the exact name of a command which has only vaguely
> embedded itself in the memory, to get this name into the kill ring to be
> yanked into another source file or into documentation, and so on. Try
> M-x <tab> <prior> sometime, and explore the wealth of Emacs commands.
> :-)
Precisely.
(It sounds to me like those who now want to remake/cripple
`M-x' might not even be using it to its ordinary potential.)
> What do we gain that would offset this loss? What is this
> feature for?
Indeed, there has been no spec of what it is for, what
requirement/need it is hoping to satisfy.
> People have suggested filtering by mode, by read-onliness, and so on.
> Somebody (I think it was Artur M.) even suggested removing initial
> checks from commands, on the grounds that M-x filtering would render it
> unneeded. I don't think that could ever be the case.
Indeed. It seems like some people do not see why we raise
an argument error in the function body, and not just in the
`interactive' spec.
> > writing code to automatically consider every interactive function
> > *without an autoload token* as being conditional on any modes
> > defined in the same package (likely determined by prefix matching).
>
> At which point I see the complexity rapidly increasing, unforeseen Bad
> Things happening, and generally a lot of pain.
Ditto. And not only because of corner cases or things that
are not obvious. Mainly because it is a coarse rule - a
hammer, not tweezers or a needle. One size does not fit all.
> > Thus, proper UI behavior for M-x falls out by design, and we
> > get to make use of conditionality for other purposes, such as
> > better errors when command functions are called outside their
> > expected environment.
>
> Any chance of an example of such an improvement? How are we to
> improve on, for example, "Can't execute - not in Foo mode"?
IOW, please specify the dreamt-of feature in some detail.
Hand-waving solicits only "Great idea!" or "Hell no!" -
more noise than light.
> > I'm open to a feature branch implementing such conditionality,
> > as a candidate for merging to master...
Before calling immediately for a pilot implementation,
how about a bit more of a spec of just what is intended?
> Again, what is this feature for?
Yup.
> Is it going to make editing easier for experienced users?
> Is it really going to attract new users, ones who would be
> very happy in Emacs but for the huge number of commands
> presented to them in an M-x?
>
> I'm sceptical on both counts.
And are there perhaps better ways, even perhaps existing
ways, to accomplish the goals? But first, just what are
those goals?
next prev parent reply other threads:[~2016-01-10 18:22 UTC|newest]
Thread overview: 141+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-25 6:21 4K Bugs Lars Ingebrigtsen
2015-12-25 7:46 ` Eli Zaretskii
2015-12-25 17:00 ` John Wiegley
2015-12-25 17:30 ` Lars Ingebrigtsen
2015-12-25 17:51 ` John Wiegley
2015-12-25 17:53 ` Lars Ingebrigtsen
2015-12-25 17:59 ` John Wiegley
2015-12-25 18:27 ` jpff
2015-12-25 18:35 ` Lars Ingebrigtsen
2015-12-25 18:33 ` Dmitry Gutov
2015-12-25 18:40 ` Lars Ingebrigtsen
2015-12-25 18:54 ` Lars Ingebrigtsen
2015-12-25 19:46 ` Dmitry Gutov
2015-12-25 20:06 ` Lars Ingebrigtsen
2015-12-25 19:36 ` John Wiegley
2015-12-25 19:56 ` Dmitry Gutov
2015-12-25 20:05 ` Eli Zaretskii
2015-12-25 20:26 ` Lars Ingebrigtsen
2015-12-26 13:16 ` Michael Albinus
2015-12-26 8:07 ` Andreas Röhler
2015-12-26 10:29 ` Eli Zaretskii
2015-12-26 15:14 ` Andreas Röhler
2015-12-26 16:34 ` Eli Zaretskii
2015-12-26 16:41 ` Lars Ingebrigtsen
2015-12-26 16:52 ` Eli Zaretskii
2015-12-26 16:59 ` Lars Ingebrigtsen
2015-12-26 17:55 ` Ivan Shmakov
2015-12-26 17:58 ` Lars Ingebrigtsen
2015-12-26 18:12 ` Ivan Shmakov
2015-12-26 18:21 ` Lars Ingebrigtsen
2015-12-26 18:42 ` Ivan Shmakov
2015-12-26 18:48 ` Lars Ingebrigtsen
2015-12-27 22:41 ` Per Starbäck
2015-12-28 9:44 ` Andreas Röhler
2015-12-28 20:18 ` John Wiegley
2015-12-26 16:59 ` Paul Eggert
2015-12-26 17:48 ` Lars Ingebrigtsen
2015-12-28 20:15 ` John Wiegley
2015-12-26 14:55 ` Lars Ingebrigtsen
2015-12-27 2:52 ` Richard Stallman
2015-12-27 6:07 ` Lars Ingebrigtsen
2016-01-07 20:10 ` Phillip Lord
2016-01-07 22:38 ` Phillip Lord
2016-01-09 4:26 ` Andrew Hyatt
2016-01-09 9:20 ` Michael Albinus
2016-01-07 23:32 ` John Wiegley
2016-01-08 0:17 ` Xue Fuqiao
2016-01-08 12:49 ` Phillip Lord
2016-01-08 1:41 ` Alexis
2016-01-08 1:50 ` Richard Copley
2016-01-08 2:41 ` Alexis
2016-01-09 1:51 ` John Wiegley
2016-01-08 12:48 ` Phillip Lord
2016-01-08 13:06 ` Michael Albinus
2016-01-08 13:59 ` Phillip Lord
2016-01-08 14:12 ` Michael Albinus
2016-01-09 2:52 ` Alexis
2016-01-10 15:58 ` Michael Albinus
2016-01-11 8:05 ` Alexis
2016-01-08 8:28 ` Lars Magne Ingebrigtsen
2016-01-08 12:57 ` Phillip Lord
2016-01-08 13:37 ` Michael Albinus
2016-01-08 13:52 ` Lars Magne Ingebrigtsen
2016-01-11 13:52 ` Phillip Lord
2016-01-11 16:18 ` Lars Magne Ingebrigtsen
2016-01-08 15:05 ` Stefan Monnier
2016-01-08 23:16 ` Leaving out non-applicable commands on Mx (was: 4K Bugs) Óscar Fuentes
2016-01-09 0:22 ` Leaving out non-applicable commands on Mx John Wiegley
2016-01-09 0:55 ` Óscar Fuentes
2016-01-09 1:46 ` John Wiegley
2016-01-09 1:54 ` Spencer Boucher
2016-01-09 3:09 ` Drew Adams
2016-01-09 3:37 ` Óscar Fuentes
2016-01-09 2:15 ` Óscar Fuentes
2016-01-09 3:09 ` Drew Adams
2016-01-09 3:49 ` Óscar Fuentes
2016-01-09 4:14 ` Stefan Monnier
2016-01-09 3:09 ` Drew Adams
2016-01-09 3:08 ` Drew Adams
2016-01-09 3:33 ` Óscar Fuentes
2016-01-09 9:05 ` Yuri Khan
2016-01-09 19:27 ` Drew Adams
2016-01-09 20:55 ` Making `interactive' conditional (was: Leaving out non-applicable commands on Mx) John Wiegley
2016-01-09 21:53 ` Drew Adams
2016-01-11 12:02 ` Drew Adams
2016-01-10 9:02 ` Making `interactive' conditional Lars Magne Ingebrigtsen
2016-01-10 10:09 ` Clément Pit--Claudel
2016-01-10 17:55 ` Drew Adams
[not found] ` <CAAdUY-Kfm-0JbOLpi4KE5wkmp6hfG+-y3V-_vTExaFkmF5RmEg@mail.gmail.com>
2016-01-10 12:36 ` Artur Malabarba
2016-01-11 3:46 ` Richard Stallman
2016-01-11 15:13 ` Lars Magne Ingebrigtsen
2016-01-11 6:13 ` Stefan Monnier
2016-01-11 6:48 ` Óscar Fuentes
2016-01-11 14:08 ` Herring, Davis
2016-01-11 16:34 ` Óscar Fuentes
2016-01-12 4:46 ` Herring, Davis
2016-01-12 4:59 ` Óscar Fuentes
2016-01-11 15:15 ` Lars Magne Ingebrigtsen
2016-01-12 2:14 ` Clément Pit--Claudel
2016-01-10 15:27 ` Making `interactive' conditional (was: Leaving out non-applicable commands on Mx) Alan Mackenzie
2016-01-10 16:47 ` Making `interactive' conditional Óscar Fuentes
2016-01-10 18:23 ` Drew Adams
2016-01-10 19:31 ` Óscar Fuentes
2016-01-10 22:40 ` Drew Adams
2016-01-10 23:19 ` Óscar Fuentes
2016-01-10 18:22 ` Drew Adams [this message]
2016-01-11 6:29 ` Stefan Monnier
2016-01-11 11:48 ` Drew Adams
2016-01-10 18:33 ` Clément Pit--Claudel
2016-01-10 22:28 ` Making `interactive' conditional (was: Leaving out non-applicable commands on Mx) Marcin Borkowski
2016-01-11 6:19 ` Making `interactive' conditional Stefan Monnier
2016-01-19 6:24 ` John Wiegley
2016-01-19 10:11 ` Lars Magne Ingebrigtsen
2016-01-19 11:17 ` Lars Magne Ingebrigtsen
2016-01-19 13:31 ` Stefan Monnier
2016-01-19 16:52 ` Drew Adams
2016-01-19 15:28 ` Óscar Fuentes
2016-01-19 16:07 ` Lars Magne Ingebrigtsen
2016-01-19 20:24 ` Óscar Fuentes
2016-01-19 16:20 ` John Wiegley
2016-01-19 17:55 ` Lars Magne Ingebrigtsen
2016-01-19 18:39 ` John Wiegley
2016-01-19 19:02 ` Lars Magne Ingebrigtsen
2016-01-19 20:23 ` Óscar Fuentes
2016-01-09 8:06 ` Leaving out non-applicable commands on Mx Lars Magne Ingebrigtsen
2016-01-09 14:50 ` Óscar Fuentes
2016-01-09 17:32 ` Stefan Monnier
2016-01-10 8:53 ` Lars Magne Ingebrigtsen
2016-01-10 16:05 ` Stefan Monnier
2016-02-04 3:19 ` Lars Ingebrigtsen
2016-01-10 16:07 ` Stefan Monnier
2016-01-10 16:14 ` Óscar Fuentes
2016-01-08 10:50 ` 4K Bugs Michael Albinus
2016-01-08 13:21 ` Phillip Lord
2016-01-08 13:33 ` Michael Albinus
2016-01-08 14:08 ` Phillip Lord
2016-01-09 4:21 ` Andrew Hyatt
2016-01-09 8:42 ` Michael Albinus
2016-01-11 13:54 ` Phillip Lord
2016-01-08 19:27 ` Stephen Leake
2016-01-08 20:52 ` Michael Albinus
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=6e3b5001-3d9f-4993-8e79-94fff1c13780@default \
--to=drew.adams@oracle.com \
--cc=acm@muc.de \
--cc=emacs-devel@gnu.org \
--cc=ofv@wanadoo.es \
--cc=yuri.v.khan@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.