Function: semantic-c-describe-environment
semantic-c-describe-environment is an interactive and byte-compiled
function defined in c.el.gz.
Signature
(semantic-c-describe-environment)
Documentation
Describe the Semantic features of the current C environment.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/bovine/c.el.gz
;;; SETUP QUERY
;;
(defun semantic-c-describe-environment ()
"Describe the Semantic features of the current C environment."
(interactive)
(if (not (derived-mode-p 'c-mode))
(error "Not useful to query C mode in %s mode" major-mode))
(let ((gcc (when (boundp 'semantic-gcc-setup-data)
semantic-gcc-setup-data))
)
(semantic-fetch-tags)
(with-output-to-temp-buffer "*Semantic C Environment*"
(when gcc
(princ "Calculated GCC Parameters:")
(dolist (P gcc)
(princ "\n ")
(princ (car P))
(princ " = ")
(princ (cdr P))
)
)
(princ "\n\nInclude Path Summary:\n")
(when (and (boundp 'ede-object) ede-object)
(princ (substitute-command-keys
"\n This file's project include is handled by:\n"))
(let ((objs (if (listp ede-object)
ede-object
(list ede-object))))
(dolist (O objs)
(princ " EDE : ")
(princ 0)
(let ((ipath (ede-system-include-path O)))
(if (not ipath)
(princ "\n with NO specified system include path.\n")
(princ "\n with the system path:\n")
(dolist (dir ipath)
(princ " ")
(princ dir)
(princ "\n"))))))
)
(when semantic-dependency-include-path
(princ (substitute-command-keys
"\n This file's generic include path is:\n"))
(dolist (dir semantic-dependency-include-path)
(princ " ")
(princ dir)
(princ "\n")))
(when semantic-dependency-system-include-path
(princ (substitute-command-keys
"\n This file's system include path is:\n"))
(dolist (dir semantic-dependency-system-include-path)
(princ " ")
(princ dir)
(princ "\n")))
(princ "\n\nMacro Summary:\n")
(when semantic-lex-c-preprocessor-symbol-file
(princ "\n Your CPP table is primed from these system files:\n")
(dolist (file semantic-lex-c-preprocessor-symbol-file)
(princ " ")
(princ file)
(princ "\n")
(princ " in table: ")
(let ((fto (semanticdb-file-table-object file)))
(if fto
(princ (cl-prin1-to-string fto))
(princ "No Table")))
(princ "\n")
))
(when semantic-lex-c-preprocessor-symbol-map-builtin
(princ "\n Built-in symbol map:\n")
(dolist (S semantic-lex-c-preprocessor-symbol-map-builtin)
(princ " ")
(princ (car S))
(princ " = ")
(princ (cdr S))
(princ "\n")
))
(when semantic-lex-c-preprocessor-symbol-map
(princ "\n User symbol map (primed from system files):\n")
(dolist (S semantic-lex-c-preprocessor-symbol-map)
(princ " ")
(princ (car S))
(princ " = ")
(princ (cdr S))
(princ "\n")
))
(when (and (boundp 'ede-object)
ede-object)
(princ "\n Project symbol map:\n")
(when (and (boundp 'ede-object) ede-object)
(princ " Your project symbol map is also derived from the EDE object:\n ")
(princ (cl-prin1-to-string ede-object)))
(princ "\n\n")
(if (obarrayp semantic-lex-spp-project-macro-symbol-obarray)
(let ((macros nil))
(mapatoms
(lambda (symbol)
(setq macros (cons symbol macros)))
semantic-lex-spp-project-macro-symbol-obarray)
(dolist (S macros)
(princ " ")
(princ (symbol-name S))
(princ " = ")
(princ (symbol-value S))
(princ "\n")
))
;; Else, not map
(princ " No Symbols.\n")))
(princ "\n\n Use: M-x semantic-lex-spp-describe RET\n")
(princ "\n to see the complete macro table.\n")
)))