Function: semantic-ia-sb-tag-info

semantic-ia-sb-tag-info is a byte-compiled function defined in ia-sb.el.gz.

Signature

(semantic-ia-sb-tag-info TEXT TAG INDENT)

Documentation

Display as much information as we can about tag.

Show the information in a shrunk split-buffer and expand out as many details as possible. TEXT, TAG, and INDENT are speedbar function arguments.

Source Code

;; Defined in /usr/src/emacs/lisp/cedet/semantic/ia-sb.el.gz
(defun semantic-ia-sb-tag-info (_text tag _indent)
  "Display as much information as we can about tag.
Show the information in a shrunk split-buffer and expand
out as many details as possible.
TEXT, TAG, and INDENT are speedbar function arguments."
  (when (semantic-tag-p tag)
    (unwind-protect
	(let ((ob nil))
	  (speedbar-select-attached-frame)
	  (setq ob (current-buffer))
	  (with-output-to-temp-buffer "*Tag Information*"
	    ;; Output something about this tag:
	    (with-current-buffer "*Tag Information*"
	      (goto-char (point-max))
	      (insert
	       (semantic-format-tag-prototype tag nil t)
	       "\n")
	      (let ((typetok
		     (condition-case nil
			 (with-current-buffer ob
			   ;; @todo - We need a context to derive a scope from.
			   (semantic-analyze-tag-type tag nil))
		       (error nil))))
		(if typetok
		    (insert (semantic-format-tag-prototype
			     typetok nil t))
		  ;; No type found by the analyzer
		  ;; The below used to try and select the buffer from the last
		  ;; analysis, but since we are already in the correct buffer, I
		  ;; don't think that is needed.
		  (let ((type (semantic-tag-type tag)))
		    (cond ((semantic-tag-p type)
			   (setq type (semantic-tag-name type)))
			  ((listp type)
			   (setq type (car type))))
		    (if (semantic-lex-keyword-p type)
			(setq typetok
			      (semantic-lex-keyword-get type 'summary))))
		  (if typetok
		      (insert typetok))
		  ))
	      ))
	  ;; Make it small
	  (shrink-window-if-larger-than-buffer
	   (get-buffer-window "*Tag Information*")))
      (select-frame speedbar-frame))))