unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Yuri Khan <yuri.v.khan@gmail.com>
Cc: "Óscar Fuentes" <ofv@wanadoo.es>,
	"Emacs developers" <emacs-devel@gnu.org>
Subject: RE: Leaving out non-applicable commands on Mx
Date: Sat, 9 Jan 2016 11:27:47 -0800 (PST)	[thread overview]
Message-ID: <76360e2d-2408-49ef-85c0-e78f88bea596@default> (raw)
In-Reply-To: <CAP_d_8UNuOAr7Y3+9xCW0=rmmHbpfrN0oEgrg6fD9jhftK9jzg@mail.gmail.com>

> > And that's also a feature of some "advanced completion
> > systems".  But it should not (except by user option) be
> > the default behavior. The default behavior should be all
> > candidates matching the input patterns and the completion
> > predicate - no other "helpful" filtering unless requested
> > by the user.
> 
> Emacs already contains a feature that filters out many defined
> functions from M-x. It’s called (interactive). Functions that are not
> declared interactive are not offered as completion candidates, and in
> fact cannot be executed with M-x.

You are repeating what I said.  I said that it already filters
using the predicate appropriate for `M-x' (which is `commandp').

(And in the text you responded to I explicitly said "and the
completion predicate" - which for `M-x' is `commandp'.)

> This proposal takes (interactive) to a new level, by allowing authors
> to specify conditions under which a function should be considered
> interactive.

Authors can already do that for any command they author that
reads command names using completion.  They can restrict the
candidate commands to any set they like, using an appropriate
predicate.

That's different from saying that `M-x' should restrict
candidates to only commands that an Emacs developer has
decided, a priori, are the only ones appropriate for the
current context (e.g. mode, buffer, visibility spec, phase
of moon, ... whatever).

The predicate appropriate for `M-x', which can be used in
various ways by users and in many different contexts, is
`commandp'.

But nothing prevents an author from defining a different
command name-reading command that uses a different predicate.

And nothing prevents an author from defining a minibuffer
key that filters `M-x' candidates further (letting the user
decide whether to narrow choices that way).

And nothing prevents an author from binding
`minibuffer-completion-predicate' to a predicate of choice.
Or of binding a completion key (even `TAB') to a command
like `minibuffer-complete' but that uses a different
predicate or that binds `minibuffer-completion-predicate'.

There are all kinds of ways for an author to impose a
different set of command-name completion candidates.



  reply	other threads:[~2016-01-09 19:27 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 [this message]
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                   ` Making `interactive' conditional (was: Leaving out non-applicable commands on Mx) Drew Adams
2016-01-11  6:29                     ` Making `interactive' conditional 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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=76360e2d-2408-49ef-85c0-e78f88bea596@default \
    --to=drew.adams@oracle.com \
    --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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).