all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Philippe Vaucher <philippe.vaucher@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: tomas@tuxteam.de, Richard Stallman <rms@gnu.org>,
	Emacs developers <emacs-devel@gnu.org>
Subject: Re: [ELPA] New package: transient
Date: Sat, 2 May 2020 11:53:07 +0200	[thread overview]
Message-ID: <CAGK7Mr6F5LZxhf9Ksgy-iM29p=RLBSqaqbPiqkJ8MYbxkLx61g@mail.gmail.com> (raw)
In-Reply-To: <83sggiu2p9.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 5878 bytes --]

>
> >  It doesn't fail, but there are evidently users who want to have that
> >  information without using the documentation features of Emacs, so any
> >  solution based on C-h is not acceptable to them.
> >
> > While there might be some users who think that way, my workflow is
> mainly to use `C-h f` to find the help of
> > the function I'm interested in. This is where not properly namespaced
> libraries are hurting me.
> >
> > `C-h d` or `apropos` is plan B, and then I have to filter what is
> relevant and not, and also because the result
> > set of `C-h d` is so big scrolling inside my Emacs becomes sluggish,
> which is not pleasant. So usually a this
> > point I go online and search, and fall on Xah-Lee's page, EmacsWiki, or
> stackoverflow.
>
> If I may: your strategy is sub-optimal.  When looking for a function
> whose name you don't know, the first place to look is in the ELisp
> manual.  Thus, for finding functions that deal with alists, the first
> thing to try is "i alist RET" in the ELisp manual.  Here "alist" is
> not a part of a function's name, it's a topic which you are looking
> for.  That is much more efficient than the sequence you described
> above, because we take special care of having meaningful topics in the
> indices of the manual, precisely to help in such situations.  (And my
> advice is to always have the ELisp manual shown in some frame on your
> display, so that you don't even need to type "C-h i" etc. to get to
> it.)
>

Let's try again why this is not an optimal strategy for me:

Searching the manual lands me on
https://www.gnu.org/software/emacs/manual/html_node/elisp/Association-Lists.html.
This is all good, but most of the time I don't need all this introduction,
I just really need a curated list of the function names related to the
topic I'm searching. When learning this page is really useful but when
trying to quickly find what function you need, this page is 95% noise. What
happens is that I'll look at each "-- function" part and enter a loop of
"not that, skip paragraph" until I find the function I want.

If I take that entry manual and then toggle read only and then "M-x
keep-lines -- function" I end up with:

 -- Function: assoc key alist &optional testfn
 -- Function: rassoc value alist
 -- Function: assq key alist
 -- Function: alist-get key alist &optional default remove testfn
 -- Function: rassq value alist
 -- Function: assoc-default key alist &optional test default
 -- Function: copy-alist alist
 -- Function: assq-delete-all key alist
 -- Function: assoc-delete-all key alist
 -- Function: rassq-delete-all value alist

That's what I would like to get out of the manual easily. Note that if
these were properly namespaced I'd just use "C-h f alist" and be done with
it. But keep in mind "alist" is a poor example, regexp are a much better
example I think. Let me illustrate.

Over 95% of my documentation search is just that (quickly looking at a list
of functions). I'm fluent in many languages already, I don't need a
regexp (or whatever) introduction with detailed explanations. I just want
to find how to do a regexp match and extract the results. When I fall on
https://www.gnu.org/software/emacs/manual/html_node/elisp/Regexp-Search.html it
takes way too much reading to find `string-match`, and this page doesn't
even mention `match-string`! That means I have to do another search and
find
https://www.gnu.org/software/emacs/manual/html_node/elisp/Simple-Match-Data.html.
I'm sure that if you put yourself in my shoes you'd be able to understand
my frustration.

In the other languages I use (C++, Ruby) I never have that frustration. It
looks like that in Clojure or Scheme I'd be happy too. Maybe it's just me
and I have a problem with Emacs Lisp, but from looking at the s.el, f.el
and dash.el community I believe we are a significant minority.



> But at this point I'm completely confused about your central argument,
> because my original mentioning of "C-h d" was regarded as missing the
> point, and you objected to the very idea of searching the
> documentation.  Quote:
>
> >     I think "C-h d alist RET" is your friend.
> >
> > You miss the central point of my argument. The problem is not that the
> doc is hard to find, it's that I *have* to find it to know which are the
> related functions.
> >
> > It is much easier for the mind to think in terms of namespaces, here are
> examples from other languages:
>
> So now I'm no confused because my conclusion from the above was that
> you don't want to use the documentation features, but you now
> evidently disagreed with that conclusion.  Sorry.
>

What I said here is that I have to find that manual entry and read 300
lines of text when I could have had a list of 10 lines to start with. The
manual has the information I want, just way too verbose.

Also remember that you were talking about "C-h d alist", I think you missed
my further explanations of that point, allow me quote myself again:

On Wed, Apr 29, 2020 at 3:19 PM Philippe Vaucher <philippe.vaucher@gmail.com>
wrote:
>>
>> I think "C-h d alist RET" is your friend.
>
> To further illustrate my point, this doesn't lists `assq` or `assoc`,
both functions being indispensable when using alists.

My point is that "C-h d alist" is not sufficient to find assq or assoc,
thus while a useful tool it's not very efficient. There's also a lot of
noise on that listing when searching something as generic as "alist". I
simply want a mechanism where I'm close to 100% certain that I have the
whole list of functions related to a topic.

Maybe I'm asking for too much, or maybe my way of functionning is "wrong"
in the Emacs Lisp world. I'm curious, please tell me more about how you
function, maybe Emacs Lisp is your most used language so you know it all by
heart? How often do you popup the manual, and how often do you use "C-h f"?

Kind regards,
Philippe

[-- Attachment #2: Type: text/html, Size: 7356 bytes --]

  parent reply	other threads:[~2020-05-02  9:53 UTC|newest]

Thread overview: 238+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-28 13:01 [ELPA] New package: transient Jonas Bernoulli
     [not found] ` <jwv4kt3d1r8.fsf-monnier+emacs@gnu.org>
     [not found]   ` <87v9ljo5d0.fsf@bernoul.li>
     [not found]     ` <jwvh7x3bfoe.fsf-monnier+emacs@gnu.org>
     [not found]       ` <87ftcnxu5m.fsf@bernoul.li>
2020-04-29  8:29         ` Philippe Vaucher
2020-04-29  9:26           ` Eli Zaretskii
2020-04-29  9:50             ` Philippe Vaucher
2020-04-29 10:05               ` Eli Zaretskii
2020-04-29 10:17                 ` tomas
2020-04-29 10:33                   ` Eli Zaretskii
2020-04-29 10:52                     ` tomas
2020-04-30 12:44                       ` Arthur Miller
2020-04-30 13:28                         ` tomas
2020-04-30 14:26                           ` Namespacing Emacs's core (was: [ELPA] New package: transient) Stefan Monnier
2020-04-30 15:08                             ` tomas
2020-04-30 18:23                             ` Philippe Vaucher
2020-04-30 18:56                               ` Philippe Vaucher
2020-04-30 19:02                                 ` tomas
2020-04-30  2:30                   ` [ELPA] New package: transient Richard Stallman
2020-05-01  2:49                     ` Richard Stallman
2020-05-01  6:33                       ` Eli Zaretskii
2020-05-02  2:24                         ` Richard Stallman
2020-05-02  7:04                           ` Eli Zaretskii
2020-05-02  8:09                             ` Philippe Vaucher
2020-05-02  9:05                               ` Eli Zaretskii
2020-05-02  9:19                                 ` Eli Zaretskii
2020-05-02 10:11                                   ` Philippe Vaucher
2020-05-02 10:33                                     ` Eli Zaretskii
2020-05-02 10:56                                       ` Philippe Vaucher
2020-05-02 10:59                                         ` Philippe Vaucher
2020-05-02 11:09                                         ` Use elisp--xref-backend in *Apropos* and *Help* (Was Re: [ELPA] New package: transient) João Távora
2020-05-02 14:03                                           ` Stefan Monnier
2020-05-03  2:08                                           ` Dmitry Gutov
2020-05-02 11:22                                         ` [ELPA] New package: transient Eli Zaretskii
2020-05-02 11:52                                           ` Philippe Vaucher
2020-05-02 12:08                                             ` Eli Zaretskii
2020-05-02 12:09                                           ` 조성빈
2020-05-02 12:14                                             ` Eli Zaretskii
2020-05-02 12:22                                               ` 조성빈
2020-05-02 12:54                                                 ` Eli Zaretskii
2020-05-02 17:33                                     ` Drew Adams
2020-05-04  3:07                                       ` Richard Stallman
2020-05-04 16:04                                         ` Drew Adams
2020-05-02  9:53                                 ` Philippe Vaucher [this message]
2020-05-02 10:39                                   ` João Távora
2020-05-02 11:10                                     ` Philippe Vaucher
2020-05-02 11:17                                       ` João Távora
2020-05-02 11:39                                         ` Philippe Vaucher
2020-05-02 12:02                                           ` João Távora
2020-05-02 12:11                                             ` 조성빈
2020-05-02 12:20                                               ` João Távora
2020-05-02 12:36                                                 ` 조성빈
2020-05-02 12:59                                                   ` João Távora
2020-05-02 13:02                                                   ` Eli Zaretskii
2020-05-02 13:12                                                     ` João Távora
2020-05-02 12:28                                               ` tomas
2020-05-02 12:22                                           ` tomas
2020-05-03  3:43                                           ` Richard Stallman
2020-05-03  4:24                                             ` Stefan Monnier
2020-05-04  3:08                                               ` Richard Stallman
2020-05-02 17:48                                         ` Drew Adams
2020-05-02 14:50                                     ` Dmitry Gutov
2020-05-02 14:57                                       ` João Távora
2020-05-02 17:42                                     ` Drew Adams
2020-05-02 10:54                                   ` Eli Zaretskii
2020-05-02 11:47                                     ` Philippe Vaucher
2020-05-02 12:04                                       ` Eli Zaretskii
2020-05-02 14:56                                     ` Dmitry Gutov
2020-05-02 15:37                                       ` Eli Zaretskii
2020-05-02 15:51                                         ` Dmitry Gutov
2020-05-02 16:09                                           ` Eli Zaretskii
2020-05-02 13:59                                 ` Stefan Monnier
2020-05-02 14:10                                   ` Philippe Vaucher
2020-05-02 14:12                                   ` Eli Zaretskii
2020-05-02 14:26                                     ` Philippe Vaucher
2020-05-02 15:29                                       ` Eli Zaretskii
2020-05-02 15:43                                         ` Philippe Vaucher
2020-05-02 16:05                                           ` Eli Zaretskii
2020-05-02 16:12                                             ` Philippe Vaucher
2020-05-02 16:26                                               ` Eli Zaretskii
2020-05-02 16:42                                                 ` Philippe Vaucher
2020-05-02 18:27                                       ` Drew Adams
2020-05-03  3:43                                       ` Richard Stallman
2020-05-03  7:47                                         ` Philippe Vaucher
2020-05-03 19:46                                           ` Drew Adams
2020-05-03 21:18                                             ` Stefan Monnier
2020-05-03 22:04                                               ` João Távora
2020-05-04  0:41                                               ` Drew Adams
2020-05-04  3:09                                           ` Richard Stallman
2020-05-02 16:48                                     ` Stefan Monnier
2020-05-02 17:17                                       ` Eli Zaretskii
2020-05-02 18:10                                         ` 조성빈
2020-05-02 18:30                                           ` Eli Zaretskii
2020-05-02 18:37                                             ` 조성빈
2020-05-02 18:45                                               ` Eli Zaretskii
2020-05-02 19:12                                                 ` 조성빈
2020-05-02 19:44                                               ` Drew Adams
2020-05-02 18:32                                           ` Yuan Fu
2020-05-02 20:41                                             ` Stefan Monnier
2020-05-02 20:39                                         ` Stefan Monnier
2020-05-02 21:00                                           ` João Távora
2020-05-02 21:53                                             ` Drew Adams
2020-05-02 22:13                                               ` João Távora
2020-05-04  3:07                                             ` Richard Stallman
2020-05-02 21:27                                           ` Philippe Vaucher
2020-05-03 14:45                                           ` Eli Zaretskii
2020-05-03 15:03                                             ` João Távora
2020-05-03 15:11                                               ` Joost Kremers
2020-05-03 15:28                                               ` C-h f and C-h v (was: [ELPA] New package: transient) Stefan Monnier
2020-05-03 17:41                                                 ` João Távora
2020-05-03 17:44                                                   ` João Távora
2020-05-03 16:21                                               ` [ELPA] New package: transient Eli Zaretskii
2020-05-03 15:17                                             ` Stefan Monnier
2020-05-03 16:32                                               ` Eli Zaretskii
2020-05-03 21:13                                                 ` Stefan Monnier
2020-05-04 13:52                                                   ` Eli Zaretskii
2020-05-04 15:14                                                     ` Stefan Monnier
2020-05-04 15:55                                                       ` Eli Zaretskii
2020-05-04 18:41                                                         ` Stefan Monnier
2020-05-04 18:58                                                           ` Eli Zaretskii
2020-05-03 16:23                                             ` Dmitry Gutov
2020-05-03 16:47                                               ` Eli Zaretskii
2020-05-03 17:04                                                 ` Dmitry Gutov
2020-05-03 17:29                                                   ` Eli Zaretskii
2020-05-03 17:42                                                     ` Dmitry Gutov
2020-05-03 18:58                                                       ` Eli Zaretskii
2020-05-04  0:04                                                         ` Dmitry Gutov
2020-05-03 19:49                                                       ` João Távora
2020-05-03 23:47                                                         ` Dmitry Gutov
2020-05-04  1:01                                                           ` João Távora
2020-05-04  1:28                                                             ` Dmitry Gutov
2020-05-04 18:05                                                               ` João Távora
2020-05-04 14:24                                                             ` Eli Zaretskii
2020-05-04 15:23                                                               ` Stefan Monnier
2020-05-04 16:00                                                                 ` Eli Zaretskii
2020-05-04 17:31                                                               ` Drew Adams
2020-05-04  1:13                                                     ` Jean-Christophe Helary
2020-05-04 14:22                                                       ` Eli Zaretskii
2020-05-05  8:23                                                         ` Jean-Christophe Helary
2020-05-05 14:48                                                           ` Eli Zaretskii
2020-05-05 15:39                                                             ` Jean-Christophe Helary
2020-05-05 16:13                                                               ` Eli Zaretskii
2020-05-05 16:33                                                                 ` Jean-Christophe Helary
2020-05-05 15:44                                                             ` Jean-Christophe Helary
2020-05-05 16:15                                                               ` Eli Zaretskii
2020-05-05 16:40                                                                 ` Jean-Christophe Helary
2020-05-05  8:27                                                         ` Jean-Christophe Helary
2020-05-03 21:04                                                 ` Stefan Monnier
2020-05-04 13:51                                                   ` Eli Zaretskii
2020-05-03 16:50                                               ` João Távora
2020-05-03 16:54                                                 ` Eli Zaretskii
2020-05-03 17:43                                                   ` João Távora
2020-05-04  3:08                                                 ` Richard Stallman
2020-05-02 18:57                                       ` Drew Adams
2020-05-02 19:15                                         ` 조성빈
2020-05-02 19:59                                           ` Drew Adams
2020-05-02 20:47                                         ` Stefan Monnier
2020-05-02 14:22                                   ` João Távora
2020-04-29 13:12                 ` Philippe Vaucher
2020-04-29 13:42                   ` tomas
2020-04-29 13:50                     ` Philippe Vaucher
2020-04-29 17:03                       ` Robert Pluim
2020-04-29 19:25                         ` Philippe Vaucher
2020-04-29 17:51                       ` Clément Pit-Claudel
2020-04-29 19:24                         ` Philippe Vaucher
2020-04-29 13:53                     ` Stefan Kangas
2020-04-29 14:01                       ` tomas
2020-04-29 14:20                   ` Eli Zaretskii
2020-04-29 15:25                     ` Philippe Vaucher
2020-04-30 18:13                       ` Dmitry Gutov
2020-04-30 18:19                         ` Philippe Vaucher
2020-04-30 18:41                           ` Dmitry Gutov
2020-04-30 19:26                             ` Philippe Vaucher
2020-04-30 19:34                               ` Philippe Vaucher
2020-04-30 22:47                                 ` Dmitry Gutov
2020-04-30 22:20                               ` Dmitry Gutov
2020-05-01  3:13                                 ` Stefan Monnier
2020-05-01  3:15                                 ` Stefan Monnier
2020-05-01 15:36                                   ` Dmitry Gutov
2020-05-01 16:05                                     ` Philippe Vaucher
2020-05-02  2:27                               ` Richard Stallman
2020-05-02  7:07                                 ` Eli Zaretskii
2020-05-02  8:06                                 ` Philippe Vaucher
2020-05-02 17:08                                   ` Drew Adams
2020-04-30 19:31                             ` Stefan Monnier
2020-04-29 17:27                   ` Alan Mackenzie
2020-04-29 19:01                     ` tomas
2020-04-29 19:31                     ` Philippe Vaucher
2020-04-30 11:51                       ` Alan Mackenzie
2020-04-30 12:38                         ` tomas
2020-04-30 17:30                           ` Dmitry Gutov
2020-04-30 17:53                             ` Philippe Vaucher
2020-04-30 18:42                               ` tomas
2020-04-30 18:41                             ` tomas
2020-04-30 18:14                           ` Philippe Vaucher
2020-04-30 18:58                             ` tomas
2020-04-30 19:13                               ` Philippe Vaucher
2020-04-30 19:33                                 ` tomas
2020-04-30 20:54                                 ` Alan Mackenzie
2020-04-30 22:46                                   ` chad
2020-05-02  2:27                                     ` Richard Stallman
2020-05-01  8:23                                   ` Philippe Vaucher
2020-05-02  2:24                                   ` Richard Stallman
2020-04-30 22:04                               ` Keeping it kind Clément Pit-Claudel
2020-05-01  7:17                                 ` tomas
2020-05-01  8:31                                 ` Philippe Vaucher
2020-05-02  2:24                                   ` Richard Stallman
2020-05-02  2:27                                 ` Richard Stallman
2020-05-01  2:51                       ` [ELPA] New package: transient Richard Stallman
2020-04-29 20:02                     ` Clément Pit-Claudel
2020-04-30  1:08                     ` Stefan Monnier
2020-04-29 13:19                 ` Philippe Vaucher
2020-04-29 14:28                   ` Eli Zaretskii
2020-04-29 14:51                     ` Eli Zaretskii
2020-04-30  2:28                   ` Richard Stallman
2020-04-29 13:32               ` Stefan Monnier
2020-04-29 13:43                 ` Philippe Vaucher
2020-04-29 14:17                 ` Yuan Fu
2020-04-29 14:19                   ` Yuan Fu
2020-04-30  2:28                   ` Richard Stallman
2020-04-29 15:31                 ` Eli Zaretskii
2020-04-29 15:48                   ` Stefan Monnier
2020-04-29 16:05                     ` Drew Adams
2020-05-01 17:38                 ` João Távora
2020-05-01 18:03                   ` Stefan Monnier
2020-04-30  2:30               ` Richard Stallman
2020-04-29 14:56           ` Drew Adams
2020-04-29 12:52         ` Adam Porter
2020-04-30  2:29 ` Richard Stallman
2020-04-30 10:50   ` Phil Sainty
2020-05-01  2:52     ` Richard Stallman
2020-05-01  5:36       ` Phil Sainty
2020-05-02  2:25         ` Richard Stallman
2020-05-02  2:30           ` T.V Raman
2020-05-01 10:40       ` Kévin Le Gouguec
2020-05-01 15:16         ` Clément Pit-Claudel
2020-05-02  2:24           ` Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2020-04-30 11:43 Zhu Zihao
     [not found] <<87368npxw4.fsf@bernoul.li>
     [not found] ` <<jwv4kt3d1r8.fsf-monnier+emacs@gnu.org>
     [not found]   ` <<87v9ljo5d0.fsf@bernoul.li>
     [not found]     ` <<jwvh7x3bfoe.fsf-monnier+emacs@gnu.org>
     [not found]       ` <<87ftcnxu5m.fsf@bernoul.li>
     [not found]         ` <<CAGK7Mr52_xBMYnPTO4XZ5EqvMji0pKD_YmqKHQzVo2HMCXd0KA@mail.gmail.com>
     [not found]           ` <<83y2qezlpd.fsf@gnu.org>
     [not found]             ` <<CAGK7Mr57NeMeXk5kT4fqPUGP_C1y9g8XfL8S4oXN=w=Hy8MJEA@mail.gmail.com>
     [not found]               ` <<83tv12zjx1.fsf@gnu.org>
     [not found]                 ` <<CAGK7Mr7i6uMH1JRnj2E1hY5vSwiGkVwQARLHq0Q_wMn7aBKP9Q@mail.gmail.com>
     [not found]                   ` <<837dxyz83p.fsf@gnu.org>
     [not found]                     ` <<CAGK7Mr50tQ+DeWvxT7O6E7Pm0jg7TFCxhS-iMeW03pgBcp8Lhw@mail.gmail.com>
     [not found]                       ` <<978f970b-b5c2-bd83-39da-f632d069d7d5@yandex.ru>
     [not found]                         ` <<CAGK7Mr5-sYDJBWxeSE6VoAJkYxLgffDkJPRv9g7cd9qME0nLEw@mail.gmail.com>
     [not found]                           ` <<98ab19cf-680b-9cd2-7c42-89dd0b2f470a@yandex.ru>
     [not found]                             ` <<CAGK7Mr5Qu-4iKvZuWmA0uswUrmZYgQmv4Dw=CibRjwUk1PggUw@mail.gmail.com>
     [not found]                               ` <<E1jUhsZ-0006mV-Rb@fencepost.gnu.org>
     [not found]                                 ` <<83y2qau86i.fsf@gnu.org>
2020-05-02 16:51                                   ` Drew Adams
     [not found]                 ` <<20200429101755.GF24737@tuxteam.de>
     [not found]                   ` <<E1jTyxu-0008FM-LM@fencepost.gnu.org>
     [not found]                     ` <<E1jULk7-0007ZA-OQ@fencepost.gnu.org>
     [not found]                       ` <<838sicw4do.fsf@gnu.org>
     [not found]                         ` <<E1jUhpj-00064u-VY@fencepost.gnu.org>
     [not found]                           ` <<83zhaqu89z.fsf@gnu.org>
     [not found]                             ` <<CAGK7Mr48xznD4uc0zxDRqUrYGbsWU4dg2t_CfnpKipzV7_-xbg@mail.gmail.com>
     [not found]                               ` <<83sggiu2p9.fsf@gnu.org>
2020-05-02 17:16                                 ` Drew Adams
     [not found]                                 ` <<83r1w2u20y.fsf@gnu.org>
     [not found]                                   ` <<CAGK7Mr7z+L+1Ziptjvc8wBmZDooLfonuL3VOC8OGex+z1d7Oqg@mail.gmail.com>
     [not found]                                     ` <<83lfmatym6.fsf@gnu.org>
2020-05-02 17:36                                       ` Drew Adams

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='CAGK7Mr6F5LZxhf9Ksgy-iM29p=RLBSqaqbPiqkJ8MYbxkLx61g@mail.gmail.com' \
    --to=philippe.vaucher@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    --cc=tomas@tuxteam.de \
    /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.