Use substring completion for Info menus and index
* lisp/info.el (Info-complete-menu-item): Add `category' metadata. (Info-menu): Simplify now that we use the `default' arg of completing-read. * lisp/minibuffer.el (completion-category-defaults): Use substring completion for `info-menu`.
This commit is contained in:
parent
992e2019d3
commit
cd56490fef
3 changed files with 13 additions and 14 deletions
4
etc/NEWS
4
etc/NEWS
|
@ -386,6 +386,10 @@ end of the word).
|
|||
|
||||
* Changes in Specialized Modes and Packages in Emacs 26.1
|
||||
|
||||
*** Info menu and index completion uses substring completion by default.
|
||||
This can be customized via the `info-menu` category in
|
||||
completion-category-override.
|
||||
|
||||
+++
|
||||
*** The ancestor buffer is shown by default in 3way merges.
|
||||
A new option ediff-show-ancestor and a new toggle
|
||||
|
|
20
lisp/info.el
20
lisp/info.el
|
@ -1869,7 +1869,7 @@ a node in FILENAME. \"(FILENAME)\" is a short format to go to
|
|||
the Top node in FILENAME."
|
||||
(let* ((completion-ignore-case t)
|
||||
(Info-read-node-completion-table (Info-build-node-completions))
|
||||
(nodename (completing-read prompt 'Info-read-node-name-1 nil t)))
|
||||
(nodename (completing-read prompt #'Info-read-node-name-1 nil t)))
|
||||
(if (equal nodename "")
|
||||
(Info-read-node-name prompt)
|
||||
nodename)))
|
||||
|
@ -2583,7 +2583,8 @@ new buffer."
|
|||
"Follow reference named: ")
|
||||
completions nil t)))
|
||||
(list (if (equal input "")
|
||||
default input) current-prefix-arg))
|
||||
default input)
|
||||
current-prefix-arg))
|
||||
(user-error "No cross-references in this node"))))
|
||||
|
||||
(unless footnotename
|
||||
|
@ -2703,6 +2704,7 @@ Because of ambiguities, this should be concatenated with something like
|
|||
(user-error "No menu in this node"))
|
||||
(cond
|
||||
((eq (car-safe action) 'boundaries) nil)
|
||||
((eq action 'metadata) `(metadata (category . info-menu)))
|
||||
((eq action 'lambda)
|
||||
(re-search-forward
|
||||
(concat "\n\\* +" (regexp-quote string) ":") nil t))
|
||||
|
@ -2783,15 +2785,7 @@ new buffer."
|
|||
default)
|
||||
"Menu item: ")
|
||||
#'Info-complete-menu-item nil t nil nil
|
||||
default)))
|
||||
;; we rely on the fact that completing-read accepts an input
|
||||
;; of "" even when the require-match argument is true and ""
|
||||
;; is not a valid possibility
|
||||
(if (string= item "")
|
||||
(if default
|
||||
(setq item default)
|
||||
;; ask again
|
||||
(setq item nil))))
|
||||
default))))
|
||||
(list item current-prefix-arg))))
|
||||
;; there is a problem here in that if several menu items have the same
|
||||
;; name you can only go to the node of the first with this command.
|
||||
|
@ -3308,7 +3302,7 @@ Give an empty topic name to go to the Index node itself."
|
|||
(unwind-protect
|
||||
(with-current-buffer Info-complete-menu-buffer
|
||||
(Info-goto-index)
|
||||
(completing-read "Index topic: " 'Info-complete-menu-item))
|
||||
(completing-read "Index topic: " #'Info-complete-menu-item))
|
||||
(kill-buffer Info-complete-menu-buffer)))))
|
||||
(if (equal Info-current-file "dir")
|
||||
(error "The Info directory node has no index; use m to select a manual"))
|
||||
|
@ -3482,7 +3476,7 @@ search results."
|
|||
(unwind-protect
|
||||
(with-current-buffer Info-complete-menu-buffer
|
||||
(Info-goto-index)
|
||||
(completing-read "Index topic: " 'Info-complete-menu-item))
|
||||
(completing-read "Index topic: " #'Info-complete-menu-item))
|
||||
(kill-buffer Info-complete-menu-buffer)))))
|
||||
(if (equal topic "")
|
||||
(Info-find-node Info-current-file "*Index*")
|
||||
|
|
|
@ -834,7 +834,8 @@ styles for specific categories, such as files, buffers, etc."
|
|||
(defvar completion-category-defaults
|
||||
'((buffer (styles . (basic substring)))
|
||||
(unicode-name (styles . (basic substring)))
|
||||
(project-file (styles . (basic substring))))
|
||||
(project-file (styles . (basic substring)))
|
||||
(info-menu (styles . (basic substring))))
|
||||
"Default settings for specific completion categories.
|
||||
Each entry has the shape (CATEGORY . ALIST) where ALIST is
|
||||
an association list that can specify properties such as:
|
||||
|
|
Loading…
Add table
Reference in a new issue