From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Philippe Vaucher Newsgroups: gmane.emacs.devel Subject: Re: [ELPA] New package: transient Date: Sat, 2 May 2020 13:47:35 +0200 Message-ID: References: <87368npxw4.fsf@bernoul.li> <87v9ljo5d0.fsf@bernoul.li> <87ftcnxu5m.fsf@bernoul.li> <83y2qezlpd.fsf@gnu.org> <83tv12zjx1.fsf@gnu.org> <20200429101755.GF24737@tuxteam.de> <838sicw4do.fsf@gnu.org> <83zhaqu89z.fsf@gnu.org> <83sggiu2p9.fsf@gnu.org> <83k11utxn7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000bcf37e05a4a8de98" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="30115"; mail-complaints-to="usenet@ciao.gmane.io" Cc: tomas@tuxteam.de, Richard Stallman , Emacs developers To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat May 02 13:52:41 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jUqhF-0007kq-Fm for ged-emacs-devel@m.gmane-mx.org; Sat, 02 May 2020 13:52:41 +0200 Original-Received: from localhost ([::1]:46386 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUqhE-00034Y-J6 for ged-emacs-devel@m.gmane-mx.org; Sat, 02 May 2020 07:52:40 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49960) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jUqgf-0002TN-TA for emacs-devel@gnu.org; Sat, 02 May 2020 07:52:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jUqge-0001bm-VQ for emacs-devel@gnu.org; Sat, 02 May 2020 07:52:05 -0400 Original-Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]:36955) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jUqcm-0001M4-M6; Sat, 02 May 2020 07:48:04 -0400 Original-Received: by mail-lj1-x236.google.com with SMTP id b2so4993074ljp.4; Sat, 02 May 2020 04:48:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7AOeFHr/oSyYGacPQ1i80ueMkGA2CMsB4s5Wg3U5Fo4=; b=GdWW87i4v5kiPietn1kQ8VJyc69h34UO2VkNzamBA7aB1dZCkpBOyr02SrKBBJhyAs h1sf97/0F9RLJq9xDbK2InQd8aTRL6Raxy3P7/Xw1OX7x/xeMQsSJG5g6X45ZLrou6w5 n4ip1ydQ8aFSsVuVfWB5xsjozK/JrAnNq0c9zO9yv4g+SoXFcTk9UUC3mh2Uc2OzTUBR Hl5D1O33egyGSUFmdYLXM7wjgl4Z38Q7/b65eMTMw2xh8NojnZ8m6TtzDBcHZLjnUG49 if80I7LGVUOSvBk0cgqgZ6K/0aWIg3o+MUE5e9cQ0eQCRmubEgFndNtTy8djam1+G9FG Um/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7AOeFHr/oSyYGacPQ1i80ueMkGA2CMsB4s5Wg3U5Fo4=; b=jeqOp0zn/QuPh7FZPuAPpUqBwhOGt1TjCM0C4lr4aMbNSKB4kiVtH46aZg4HZ2ee2J i638wk0KcoC8e6Q1RYWm8GOfF2xMMLhi1RiNVM8CkujwzZigWhwihTVF+cmleqiIOjI0 fUU+hhyYzoWY2Euf0JO69kcgnNNWT4Oysr/rgm0VI08l4v5OIuCALMjmhkBR+OHnLUf2 qHvgALp+/eb0Fr6ZXjDoNYuMdsW3rV3KxJSymSVRvEzMarJjJ2uRxNKFgmnq+iTWFLbh CkqVid4y8mFWDVNfN1WC1maMeltjDBS599P85na+uLyeS9uVWDNL6THhnMB9EgIF7CZI LNjQ== X-Gm-Message-State: AGi0PuYvldP/kIlXuDzWEbXQk5e1CN3PvIFtD4itnbQaxNAzvepa/IXP O2zqzrh70Cra6I9sxp2lpLqG7vdOBbD2ToOGleSGEfU7 X-Google-Smtp-Source: APiQypKtf4GPTsqSNioI2XEOU5NnJBSjatx8UJ/aSx8XePDegH/2ykzO8Dr0BBpt1Mm4qDMGzKcGyNsjuvRZIRff7H8= X-Received: by 2002:a2e:8e8a:: with SMTP id z10mr4775136ljk.107.1588420081938; Sat, 02 May 2020 04:48:01 -0700 (PDT) In-Reply-To: <83k11utxn7.fsf@gnu.org> Received-SPF: pass client-ip=2a00:1450:4864:20::236; envelope-from=philippe.vaucher@gmail.com; helo=mail-lj1-x236.google.com X-detected-operating-system: by eggs.gnu.org: Error: [-] PROGRAM ABORT : Malformed IPv6 address (bad octet value). Location : parse_addr6(), p0f-client.c:67 X-Received-From: 2a00:1450:4864:20::236 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:248408 Archived-At: --000000000000bcf37e05a4a8de98 Content-Type: text/plain; charset="UTF-8" > > > 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. > > I fail to see how will the above list be useful, if you know nothing > about the function's name. E.g., a newbie that has no previous Lisp > baggage will never be able to guess that assq should have anything to > do with association lists. They will need the text keep-lines removes. > But I'm not a newbie! I don't use Emacs lisp enough to remember all the details all the time, but I know what I'm looking for when I see it. > So maybe you should make your argument more concrete by saying what > you did know in this case. My proposal to use Info-index was based on > the assumption that you knew nothing except that the function was > about alists. In another message you said that you actually knew the > function will include "copy" and "alist" somewhere in its name, so I > suggested a different command that is better for that use case. > Yes, there is a lot of different use cases. Sorry for that. > IOW, for each use case there's the best tool, and there are others > which are good, but not the best. For example, even if you did go to > the above manual section, why would you need to generate the list of > functions? "C-s copy" finds copy-alist as the first hit. So even > being presented with a relatively long (290 lines) section in the > manual, finding what you want in that section is a matter of seconds. > I fail to see the problem. > That's for the case where you search for "copy", yes. That does not cover the "overview" aspect. > > 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. > > I cannot put myself in your shoes unless you describe the situation > more completely. Specifically, what _did_ you know about string-match > and match-string, and which topics relevant to these would be in your > opinion relevant for looking up those functions? Then we could > continue having a useful discussion, one where the results are that we > improve Emacs, including in ways other than those you thought about. > > E.g., based on what _I_ have in mind in the above situation, I'd first > try "i regexp TAB" in the ELisp manual, see nothing pertinent, then > try "match TAB", and voila! I see match-data and match-string. > I'm not sure it'd be useful. I gave plenty of examples and at this point either my way of functionning is broken or you simply never function like I do so you don't see the problem. > > 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. > > You don't know me very well, do you? Try "C-h d alist" in a recent > development snapshot, and I think you will see those functions there. > I fixed that within 5 minutes of your saying that those functions > couldn't be found by "C-h d". > So, my point *was* valid two days ago. How many other topics of Emacs are still affected tho? > > 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"? > > I think by now you should already know the answer. I have the ELisp > manual open in a dedicated frame at all times, and I consult it all > the time. I use "C-h f" only if I think I know the function's name > quite accurately, and the same with "C-h v" and variables. > I'll try this for a while and see how it goes. Philippe --000000000000bcf37e05a4a8de98 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
> If I take that entry manual and then toggle read on= ly and then "M-x keep-lines -- function" I end up with:
>
>=C2=A0 -- Function: assoc key alist &optional testfn
>=C2=A0 -- Function: rassoc value alist
>=C2=A0 -- Function: assq key alist
>=C2=A0 -- Function: alist-get key alist &optional default remove te= stfn
>=C2=A0 -- Function: rassq value alist
>=C2=A0 -- Function: assoc-default key alist &optional test default<= br> >=C2=A0 -- Function: copy-alist alist
>=C2=A0 -- Function: assq-delete-all key alist
>=C2=A0 -- Function: assoc-delete-all key alist
>=C2=A0 -- Function: rassq-delete-all value alist
>
> That's what I would like to get out of the manual easily.

I fail to see how will the above list be useful, if you know nothing
about the function's name.=C2=A0 E.g., a newbie that has no previous Li= sp
baggage will never be able to guess that assq should have anything to
do with association lists.=C2=A0 They will need the text keep-lines removes= .

But I'm not a newbie! I don't= use Emacs lisp enough to remember all the details all the time, but I know= what I'm looking for when I see it.

=C2=A0
So maybe you should ma= ke your argument more concrete by saying what
you did know in this case.=C2=A0 My proposal to use Info-index was based on=
the assumption that you knew nothing except that the function was
about alists.=C2=A0 In another message you said that you actually knew the<= br> function will include "copy" and "alist" somewhere in i= ts name, so I
suggested a different command that is better for that use case.

Yes, there is a lot of different use cases. Sorry = for that.

=C2=A0=C2=A0
IOW, for each use case there's the bes= t tool, and there are others
which are good, but not the best.=C2=A0 For example, even if you did go to<= br> the above manual section, why would you need to generate the list of
functions?=C2=A0 "C-s copy" finds copy-alist as the first hit.=C2= =A0 So even
being presented with a relatively long (290 lines) section in the
manual, finding what you want in that section is a matter of seconds.
I fail to see the problem.

That's f= or the case where you search for "copy", yes. That does not cover= the "overview" aspect.

=C2=A0
> Over 95% of my documenta= tion 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) introductio= n with detailed explanations. I just want to
> find how to do a regexp match and extract the results. When I fall on<= br> > 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= 9;m sure that if you
> put yourself in my shoes you'd be able to understand my frustratio= n.

I cannot put myself in your shoes unless you describe the situation
more completely.=C2=A0 Specifically, what _did_ you know about string-match=
and match-string, and which topics relevant to these would be in your
opinion relevant for looking up those functions?=C2=A0 Then we could
continue having a useful discussion, one where the results are that we
improve Emacs, including in ways other than those you thought about.

E.g., based on what _I_ have in mind in the above situation, I'd first<= br> try "i regexp TAB" in the ELisp manual, see nothing pertinent, th= en
try "match TAB", and voila! I see match-data and match-string.

I'm not sure it'd be useful. I ga= ve plenty of examples and at this point either my way of functionning is br= oken or you simply never function like I do so you don't see the proble= m.

=C2=A0
> My point is that "C-h d alist" is not suffici= ent to find assq or assoc, thus while a useful tool it's not very
> efficient.

You don't know me very well, do you?=C2=A0 Try "C-h d alist" = in a recent
development snapshot, and I think you will see those functions there.
I fixed that within 5 minutes of your saying that those functions
couldn't be found by "C-h d".

=
So, my point *was* valid two days ago. How many other topics of Emacs = are still affected tho?

=C2=A0
> Maybe I'm asking for too much,= or maybe my way of functionning is "wrong" in the Emacs Lisp wor= ld. 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"?

I think by now you should already know the answer.=C2=A0 I have the ELisp manual open in a dedicated frame at all times, and I consult it all
the time.=C2=A0 I use "C-h f" only if I think I know the function= 's name
quite accurately, and the same with "C-h v" and variables.

I'll try this for a while and see how it = goes.

Philippe=C2=A0
--000000000000bcf37e05a4a8de98--