Function: majutsu-completing-read
majutsu-completing-read is a natively compiled function defined in
majutsu-base.el.
Signature
(majutsu-completing-read PROMPT COLLECTION &optional PREDICATE REQUIRE-MATCH INITIAL-INPUT HIST DEF CATEGORY)
Documentation
Read a choice with completion, preserving CATEGORY metadata.
Like completing-read but uses format-prompt and supports CATEGORY
for completion UI styling (icons, grouping). COLLECTION may contain
plain strings or (CANDIDATE . ANNOTATION) items.
When REQUIRE-MATCH is nil, empty input returns nil. When REQUIRE-MATCH
is any, require non-empty input without requiring a candidate match.
Source Code
;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-base.el
;;; Selection readers
(defun majutsu-completing-read (prompt collection &optional predicate require-match
initial-input hist def category)
"Read a choice with completion, preserving CATEGORY metadata.
Like `completing-read' but uses `format-prompt' and supports CATEGORY
for completion UI styling (icons, grouping). COLLECTION may contain
plain strings or (CANDIDATE . ANNOTATION) items.
When REQUIRE-MATCH is nil, empty input returns nil. When REQUIRE-MATCH
is `any', require non-empty input without requiring a candidate match."
(let* ((completion-extra-properties
(if (listp collection)
(majutsu-completion-items-properties collection category)
(majutsu-completion-properties category)))
(value (completing-read (format-prompt prompt def)
collection predicate
(if (eq require-match 'any) nil require-match)
initial-input hist def)))
(if (equal value "")
(if require-match
(user-error "Nothing selected")
nil)
value)))