Function: completing-read-default
completing-read-default is a byte-compiled function defined in
minibuffer.el.gz.
Signature
(completing-read-default PROMPT COLLECTION &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF INHERIT-INPUT-METHOD)
Documentation
Default method for reading from the minibuffer with completion.
See completing-read for the meaning of the arguments.
Probably introduced at or before Emacs version 28.1.
Source Code
;; Defined in /usr/src/emacs/lisp/minibuffer.el.gz
(defun completing-read-default (prompt collection &optional predicate
require-match initial-input
hist def inherit-input-method)
"Default method for reading from the minibuffer with completion.
See `completing-read' for the meaning of the arguments."
(when (consp initial-input)
(setq initial-input
(cons (car initial-input)
;; `completing-read' uses 0-based index while
;; `read-from-minibuffer' uses 1-based index.
(1+ (cdr initial-input)))))
(let* ((base-keymap (if require-match
minibuffer-local-must-match-map
minibuffer-local-completion-map))
(keymap (if (memq minibuffer-completing-file-name '(nil lambda))
base-keymap
;; Layer minibuffer-local-filename-completion-map
;; on top of the base map.
(make-composed-keymap
minibuffer-local-filename-completion-map
;; Set base-keymap as the parent, so that nil bindings
;; in minibuffer-local-filename-completion-map can
;; override bindings in base-keymap.
base-keymap)))
(buffer (current-buffer))
(c-i-c completion-ignore-case)
(result
(minibuffer-with-setup-hook
(lambda ()
(setq-local minibuffer-completion-table collection)
(setq-local minibuffer-completion-predicate predicate)
;; FIXME: Remove/rename this var, see the next one.
(setq-local minibuffer-completion-confirm
(unless (eq require-match t) require-match))
(setq-local minibuffer--require-match require-match)
(setq-local minibuffer--original-buffer buffer)
;; Copy the value from original buffer to the minibuffer.
(setq-local completion-ignore-case c-i-c))
(read-from-minibuffer prompt initial-input keymap
nil hist def inherit-input-method))))
(when (and (equal result "") def)
(setq result (if (consp def) (car def) def)))
result))