Package: emacs;
Reported by: Drew Adams <drew.adams <at> oracle.com>
Date: Fri, 7 Aug 2020 22:21:02 UTC
Severity: wishlist
Found in version 26.3
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Drew Adams <drew.adams <at> oracle.com> To: bug-gnu-emacs <at> gnu.org Subject: 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)
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''
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.