Function: ebrowse-tags-view/find-member-decl/defn

ebrowse-tags-view/find-member-decl/defn is a byte-compiled function defined in ebrowse.el.gz.

Signature

(ebrowse-tags-view/find-member-decl/defn PREFIX &key VIEW DEFINITION MEMBER-NAME)

Documentation

If VIEW is t, view, else find an occurrence of MEMBER-NAME.

If DEFINITION is t, find or view the member definition else its declaration. This function reads the member's name from the current buffer like FIND-TAG. It then prepares a completion list of all classes containing a member with the given name and lets the user choose the class to use. As a last step, a tags search is performed that positions point on the member declaration or definition.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/ebrowse.el.gz
(cl-defun ebrowse-tags-view/find-member-decl/defn
    (prefix &key view definition member-name)
  "If VIEW is t, view, else find an occurrence of MEMBER-NAME.

If DEFINITION is t, find or view the member definition else its
declaration.  This function reads the member's name from the
current buffer like FIND-TAG.  It then prepares a completion list
of all classes containing a member with the given name and lets
the user choose the class to use.  As a last step, a tags search
is performed that positions point on the member declaration or
definition."
  (cl-multiple-value-bind
      (tree header tree-buffer) (cl-values-list (ebrowse-choose-tree))
    (unless tree (error "No class tree"))
    (let* ((marker (point-marker))
	   class-name
	   (name member-name)
	   info)
      (unless name
	(cl-multiple-value-setq (class-name name)
	  (cl-values-list
	   (ebrowse-tags-read-name
	    header
	    (concat (if view "View" "Find") " member "
		    (if definition "definition" "declaration") ": ")))))
      (setq info (ebrowse-tags-choose-class tree header name class-name))
      (ebrowse-push-position marker info)
      ;; Goto the occurrence of the member
      (ebrowse-view/find-member-declaration/definition
       prefix view definition info
       header
       (buffer-local-value 'ebrowse--tags-file-name tree-buffer))
      ;; Record position jumped to
      (ebrowse-push-position (point-marker) info t))))