emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Search multiple Info-buffers at once with Info-occur function


From: dalanicolai
Subject: Re: Search multiple Info-buffers at once with Info-occur function
Date: Tue, 25 May 2021 16:12:42 +0200

Ah, that is a pity. Well then I will send my proposal here. I am not sure how
I could best approach this. I have a proposal ready, but I don't want to put
in too much effort, before getting any feedback about my plan/general proposal.

So to start I will attach my code in a file here, but I would like to hear how/in
what form I am expected to send the code (in this case for getting feedback
on the general plan).

Here is a small explanation to the code:

- The first function (`info-list-all`) creates a list of manuals, or with a non-nil
value for the TOPICS argument, a list of topics in the Info dir file.
- The second function (`info-topic-list-all`) creates a list of all manuals under
some topic.

The 'boiler plate code' for these two function was taken from the
`Info-apropos-matches` function.
These two functions can be used to create a list of manuals that can be passed
to the (new) `info-apropos` for search.


Then there is a (rudimentary) defcustom `Info-apropos-default-manuals` that
takes as default value all manuals under topic 'Emacs' in the Info dir file.
I would argue that this is a better than searching all manuals on the system.
An alternative default could be searching only the Emacs and Elisp manuals.

But searching all Emacs manuals doesn't take too long here.
With the default value of `Info-apropos-default-manuals` (i.e.
search all manuals under topic "Emacs")
`(benchmark nil (info-apropos "function" t))` messages only 0.000002s ;)
(Is this to be expected or is it a bug?)

I am not sure how to handle startup with its default value of
`(info-topic-list-all "Emacs")`, as that function opens the Info buffer.


Then there is the working horse function of `info-apropos` i.e.
`Info-apropos-matches` which is just the original one taken from info.el but
with the small modification that it can take a list of manuals, and only
searches a manual if it is in that list.


Then there is the slightly modified `info-apropos` command which by default
searches in the manuals as listed in the `Info-apropos-default-manuals`
variable. (Again, for which the default value is a list of all manuals under the
topic 'Emacs' the Info dir file)
With when ARG is non-nil it will search all manuals on the system.
When passes a MANUALS-LIST (which should be list), then it will search only the
manuals in that list.


Finally, there is an additional command `Info-apropos-select` with which you
can either select a single manual for search or with a prefix argument, select a
single topic for search.

Of course this last selection function could be made more elaborate, but I think that
that is probably overkill and adds unnecessary complexity.

I would be happy to hear any form of feedback or advice.
Thanks!


On Mon, 24 May 2021 at 10:51, Eli Zaretskii <eliz@gnu.org> wrote:
On May 24, 2021 11:37:11 AM GMT+03:00, dalanicolai <dalanicolai@gmail.com> wrote:
> So it turns out that Drew Adams wrote something very useful already...
> probably I will propose some additions to his package here

His package is not part of Emacs, so if you want to improve the command that is part of Emacs, this isn't the way.

Attachment: info-apropos-extension.el
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]