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)))