Function: marginalia--symbol-class
marginalia--symbol-class is a byte-compiled function defined in
marginalia.el.
Signature
(marginalia--symbol-class S)
Documentation
Return symbol class characters for symbol S.
This function is an extension of help--symbol-class. It returns
more fine-grained and more detailed symbol information.
Function:
f function
c command
C interactive-only command
m macro
F special-form
M module function
P primitive
g cl-generic
p pure
s side-effect-free
@ autoloaded
! advised
- obsolete
& alias
Variable:
u custom (U modified compared to global value)
v variable
l local (L modified compared to default value)
- obsolete
& alias
Other: G custom group a face t cl-type
Source Code
;; Defined in ~/.emacs.d/elpa/marginalia-20260724.810/marginalia.el
(defun marginalia--symbol-class (s)
"Return symbol class characters for symbol S.
This function is an extension of `help--symbol-class'. It returns
more fine-grained and more detailed symbol information.
Function:
f function
c command
C interactive-only command
m macro
F special-form
M module function
P primitive
g cl-generic
p pure
s side-effect-free
@ autoloaded
! advised
- obsolete
& alias
Variable:
u custom (U modified compared to global value)
v variable
l local (L modified compared to default value)
- obsolete
& alias
Other:
G custom group
a face
t cl-type"
(let ((class
(append
(when (fboundp s)
(list
(cond
((get s 'pure) '("p" . "pure"))
((get s 'side-effect-free) '("s" . "side-effect-free")))
(cond
((commandp s)
(if (get s 'interactive-only)
'("C" . "interactive-only command")
'("c" . "command")))
((cl-generic-p s) '("g" . "cl-generic"))
((macrop (symbol-function s)) '("m" . "macro"))
((special-form-p (symbol-function s)) '("F" . "special-form"))
((subr-primitive-p (symbol-function s)) '("P" . "primitive"))
((module-function-p (symbol-function s)) '("M" . "module function"))
(t '("f" . "function")))
(and (autoloadp (symbol-function s)) '("@" . "autoload"))
(and (marginalia--advised s) '("!" . "advised"))
(and (symbolp (symbol-function s))
(cons "&" (format "alias for `%s'" (symbol-function s))))
(and (get s 'byte-obsolete-info) '("-" . "obsolete"))))
(when (boundp s)
(list
(when (local-variable-if-set-p s)
(if (ignore-errors
(not (equal (symbol-value s)
(default-value s))))
'("L" . "local, modified from global")
'("l" . "local, unmodified")))
(if (get s 'standard-value)
(if (ignore-errors
(not (equal (symbol-value s)
(eval (car (get s 'standard-value))))))
'("U" . "custom, modified from standard")
'("u" . "custom, unmodified"))
'("v" . "variable"))
(and (not (eq (ignore-errors (indirect-variable s)) s))
(cons "&" (format "alias for `%s'" (ignore-errors (indirect-variable s)))))
(and (get s 'byte-obsolete-variable) '("-" . "obsolete"))))
(list
(and (get s 'group-documentation) '("G" . "custom group"))
(and (facep s) '("a" . "face"))
(and (get s 'cl--class) '("t" . "cl-type")))))) ;; cl-find-class, cl--find-class
(setq class (delq nil class))
(propertize
(format "%-6s" (mapconcat #'car class ""))
'help-echo
(mapconcat (pcase-lambda (`(,x . ,y)) (concat x " " y)) class "\n"))))