unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: 42753@debbugs.gnu.org
Subject: bug#42753: 26.3; `info-lookup.el': Add all manuals delivered by `emacs -Q', for `emacs-lisp-mode'
Date: Fri, 7 Aug 2020 15:20:15 -0700 (PDT)	[thread overview]
Message-ID: <d69397a7-acf7-4803-9cba-f7e0686712f4@default> (raw)

Most of the manuals delivered with Emacs are missing from
`info-look.el', for looking up Emacs-Lisp commands, non-interactive
functions, options, and other variables.

I believe that a fix for this is to replace the :doc-spec value here:

(info-lookup-maybe-add-help
 :mode 'emacs-lisp-mode
 :regexp "[^][()`''',\" \t\n]+"
 :doc-spec '(;; Commands with key sequences appear in nodes as `foo' and
             ;; those without as `M-x foo'.
             ("(emacs)Command Index"  nil "['`']\\(M-x[ \t\n]+\\)?" "['']")
             ;; Variables normally appear in nodes as just `foo'.
             ("(emacs)Variable Index" nil "['`']" "['']")
             ;; Almost all functions, variables, etc appear in nodes as
             ;; " -- Function: foo" etc.  A small number of aliases and
             ;; symbols appear only as `foo', and will miss out on exact
             ;; positions.  Allowing `foo' would hit too many false matches
             ;; for things that should go to Function: etc, and those latter
             ;; are much more important.  Perhaps this could change if some
             ;; sort of fallback match scheme existed.
             ("(elisp)Index"          nil "^ -+ .*: " "\\( \\|$\\)")
             ("(cl)Function Index"    nil "^ -+ .*: " "\\( \\|$\\)")
             ("(cl)Variable Index"    nil "^ -+ .*: " "\\( \\|$\\)")))

with this :doc-spec value:

'(;; Commands with key sequences appear in nodes as `foo' and
  ;; those without as `M-x foo'.
  ("(emacs)Command Index"                nil "['`']\\(M-x[ \t\n]+\\)?" "['']")
  ;; Variables normally appear in nodes as just `foo'.
  ("(emacs)Variable Index"               nil "['`']" "['']")
  ;; Almost all functions, variables, etc appear in nodes as
  ;; " -- Function: foo" etc.  A small number of aliases and
  ;; symbols appear only as `foo', and will miss out on exact
  ;; positions.  Allowing `foo' would hit too many false matches
  ;; for things that should go to Function: etc, and those latter
  ;; are much more important.  Perhaps this could change if some
  ;; sort of fallback match scheme existed.
  ("(elisp)Index"                        nil "^ -+ .*: " "\\( \\|$\\)")
  ("(info)Index"                         nil "^ -+ .*: " "\\( \\|$\\)")
  ("(efaq-w32)Indexes"                   nil "^ -+ .*: " "\\( \\|$\\)")
  ("(eintr)Index"                        nil "^ -+ .*: " "\\( \\|$\\)")
  ("(ccmode)Command and Function Index"  nil "^ -+ .*: " "\\( \\|$\\)")
  ("(ccmode)Variable Index"              nil "^ -+ .*: " "\\( \\|$\\)")
  ("(idlwave)Index"                      nil "^ -+ .*: " "\\( \\|$\\)")
  ("(octave-mode)Lisp Function Index"    nil "^ -+ .*: " "\\( \\|$\\)")
  ("(octave-mode)Variable Index"         nil "^ -+ .*: " "\\( \\|$\\)")
  ("(org)Command and Function Index"     nil "^ -+ .*: " "\\( \\|$\\)")
  ("(org)Variable Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(vhdl-mode)Command Index"            nil "^ -+ .*: " "\\( \\|$\\)")
  ("(vhdl-mode)Variable Index"           nil "^ -+ .*: " "\\( \\|$\\)")
  ("(eudc)Index"                         nil "^ -+ .*: " "\\( \\|$\\)")
  ("(emacs-gnutls)Function Index"        nil "^ -+ .*: " "\\( \\|$\\)")
  ("(emacs-gnutls)Variable Index"        nil "^ -+ .*: " "\\( \\|$\\)")
  ("(gnus)Index"                         nil "^ -+ .*: " "\\( \\|$\\)")
  ("(mh-e)Command Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(mh-e)Option Index"                  nil "^ -+ .*: " "\\( \\|$\\)")
  ("(message)Index"                      nil "^ -+ .*: " "\\( \\|$\\)")
  ("(newsticker)Index"                   nil "^ -+ .*: " "\\( \\|$\\)")
  ("(pgg)Function Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(pgg)Variable Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(sasl)Function Index"                nil "^ -+ .*: " "\\( \\|$\\)")
  ("(sasl)Variable Index"                nil "^ -+ .*: " "\\( \\|$\\)")
  ("(sc)Command Index"                   nil "^ -+ .*: " "\\( \\|$\\)")
  ("(sc)Variable Index"                  nil "^ -+ .*: " "\\( \\|$\\)")
  ("(sieve)Index"                        nil "^ -+ .*: " "\\( \\|$\\)")
  ("(tramp)Function Index"               nil "^ -+ .*: " "\\( \\|$\\)")
  ("(tramp)Variable Index"               nil "^ -+ .*: " "\\( \\|$\\)")
  ("(autotype)Command Index"             nil "^ -+ .*: " "\\( \\|$\\)")
  ("(autotype)Variable Index"            nil "^ -+ .*: " "\\( \\|$\\)")
  ("(calc)Lisp Function Index"           nil "^ -+ .*: " "\\( \\|$\\)")
  ("(calc)Variable Index"                nil "^ -+ .*: " "\\( \\|$\\)")
  ("(dired-x)Command Index"              nil "^ -+ .*: " "\\( \\|$\\)")
  ("(dired-x)Variable Index"             nil "^ -+ .*: " "\\( \\|$\\)")
  ("(eieio)Function Index"               nil "^ -+ .*: " "\\( \\|$\\)")
  ("(ert)Index"                          nil "^ -+ .*: " "\\( \\|$\\)")
  ("(eww)Lisp Function Index"            nil "^ -+ .*: " "\\( \\|$\\)")
  ("(eww)Variable Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(epa)Function Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(epa)Variable Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(ediff)Index"                        nil "^ -+ .*: " "\\( \\|$\\)")
  ("(eshell)Function and Variable Index" nil "^ -+ .*: " "\\( \\|$\\)")
  ("(flymake)Index"                      nil "^ -+ .*: " "\\( \\|$\\)")
  ("(forms)Index"                        nil "^ -+ .*: " "\\( \\|$\\)")
  ("(htmlfontify)Index"                  nil "^ -+ .*: " "\\( \\|$\\)")
  ("(ido)Variable Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(pl-cvs)Function and Variable Index" nil "^ -+ .*: " "\\( \\|$\\)")
  ("(reftex)Index"                       nil "^ -+ .*: " "\\( \\|$\\)")
  ("(ses)Index"                          nil "^ -+ .*: " "\\( \\|$\\)")
  ("(srecode)Index"                      nil "^ -+ .*: " "\\( \\|$\\)")
  ("(semantic)Index"                     nil "^ -+ .*: " "\\( \\|$\\)")
  ("(speedbar)Index"                     nil "^ -+ .*: " "\\( \\|$\\)")
  ("(viper)Function Index"               nil "^ -+ .*: " "\\( \\|$\\)")
  ("(viper)Variable Index"               nil "^ -+ .*: " "\\( \\|$\\)")
  ("(wisent)Index"                       nil "^ -+ .*: " "\\( \\|$\\)")
  ("(woman)Command Index"                nil "^ -+ .*: " "\\( \\|$\\)")
  ("(woman)Variable Index"               nil "^ -+ .*: " "\\( \\|$\\)")
  ("(auth)Function Index"                nil "^ -+ .*: " "\\( \\|$\\)")
  ("(auth)Variable Index"                nil "^ -+ .*: " "\\( \\|$\\)")
  ("(cl)Function Index"                  nil "^ -+ .*: " "\\( \\|$\\)")
  ("(cl)Variable Index"                  nil "^ -+ .*: " "\\( \\|$\\)")
  ("(dbus)Index"                         nil "^ -+ .*: " "\\( \\|$\\)")
  ("(mime)Index"                         nil "^ -+ .*: " "\\( \\|$\\)")
  ("(smtpmail)Index"                     nil "^ -+ .*: " "\\( \\|$\\)")
  ("(url)Function Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(url)Variable Index"                 nil "^ -+ .*: " "\\( \\|$\\)")
  ("(widget)Index"                       nil "^ -+ .*: " "\\( \\|$\\)")
  )

That covers all of the manuals I get with `emacs -Q', which have indexes
with entries for Emacs-Lisp commands, functions, options, and variables.

Please do that, or something similar, so such symbols get picked up by
`info-lookup'.  I used the same order here as the manuals are presented
in the top-level menu.  You may want to change the order.  Another
possible change you might want to make is to use a value similar to the
one for "(emacs)Command Index" for other "(...)Command Index" entries.

["(efaq-w32)Indexes" should probably be included conditionally, for MS
Windows.  And perhaps on other platforms `emacs -Q' gives a different
set of manuals, so other adjustments could be made.]

Note that `info-lookup' is used by 3rd-party libraries, so this will
help them as well.

It seems like there should be an easy way to just _add_ such missing
entries after the fact, e.g., in a 3rd-party library.  For example, I
was thinking that perhaps `info-lookup-add-help' (without the `-maybe')
would take care of that.

But apparently not.  While trying that I found I had to reset the
various global values in `info-look.el' - once the alist and cache are
defined there doesn't seem to be a way (already provided) to update them.
`info-look.el' seems a bit monolithic, in this regard.  But perhaps I'm
missing something.

In GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)
 of 2019-08-29
Repository revision: 96dd0196c28bc36779584e47fffcca433c9309cd
Windowing system distributor `Microsoft Corp.', version 10.0.18362
Configured using:
 `configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static -g3''





             reply	other threads:[~2020-08-07 22:20 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-07 22:20 Drew Adams [this message]
2020-08-08  8:42 ` bug#42753: 26.3; `info-lookup.el': Add all manuals delivered by `emacs -Q', for `emacs-lisp-mode' Eli Zaretskii
     [not found] <<d69397a7-acf7-4803-9cba-f7e0686712f4@default>
     [not found] ` <<835z9t7cme.fsf@gnu.org>
2020-08-08 14:28   ` Drew Adams
2020-08-15 14:22     ` Michael Albinus
2021-08-29 22:10       ` Lars Ingebrigtsen
2021-10-08 13:36         ` Lars Ingebrigtsen
2021-10-08 14:02           ` Eli Zaretskii
2021-10-08 14:33             ` Michael Albinus
2021-10-08 16:05               ` Eli Zaretskii
2021-10-08 16:23                 ` Michael Albinus
2021-10-08 17:36                   ` Eli Zaretskii
2021-10-09 11:17                   ` Lars Ingebrigtsen
2021-10-09 12:45                     ` Lars Ingebrigtsen

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=d69397a7-acf7-4803-9cba-f7e0686712f4@default \
    --to=drew.adams@oracle.com \
    --cc=42753@debbugs.gnu.org \
    /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).