Function: ebrowse-tags-read-name
ebrowse-tags-read-name is a byte-compiled function defined in
ebrowse.el.gz.
Signature
(ebrowse-tags-read-name HEADER PROMPT)
Documentation
Read a C++ identifier from the minibuffer.
HEADER is the ebrowse-hs structure of the class tree.
Prompt with PROMPT. Insert into the minibuffer a C++ identifier read
from point as default. Value is a list (CLASS-NAME MEMBER-NAME).
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ebrowse.el.gz
(defun ebrowse-tags-read-name (header prompt)
"Read a C++ identifier from the minibuffer.
HEADER is the `ebrowse-hs' structure of the class tree.
Prompt with PROMPT. Insert into the minibuffer a C++ identifier read
from point as default. Value is a list (CLASS-NAME MEMBER-NAME)."
(save-excursion
(let ((members (ebrowse-member-table header)))
(cl-multiple-value-bind (class-name member-name)
(cl-values-list (ebrowse-tags-read-member+class-name))
(unless member-name
(error "No member name at point"))
(if members
(let* ((name (ebrowse-ignoring-completion-case
(completing-read prompt members nil nil member-name)))
;; (completion-result (try-completion name members))
)
;; Cannot rely on `try-completion' returning t for exact
;; matches! It returns the name as a string.
(unless (gethash name members)
(if (y-or-n-p "No exact match found. Try substrings? ")
(setq name
(or (cl-first (ebrowse-list-of-matching-members
members (regexp-quote name) name))
(error "Sorry, nothing found")))
(error "Canceled")))
(list class-name name))
(list class-name (read-from-minibuffer prompt member-name)))))))