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