Function: helpful-symbol

helpful-symbol is an autoloaded, interactive and byte-compiled function defined in helpful.el.

Signature

(helpful-symbol SYMBOL)

Documentation

Show help for SYMBOL, a variable, function, macro, or face.

See also helpful-callable and helpful-variable.

Key Bindings

Source Code

;; Defined in ~/.emacs.d/elpa/helpful-20250408.334/helpful.el
;;;###autoload
(defun helpful-symbol (symbol)
  "Show help for SYMBOL, a variable, function, macro, or face.

See also `helpful-callable' and `helpful-variable'."
  (interactive
   (list (helpful--read-symbol
          "Symbol: "
          (helpful--symbol-at-point)
          #'helpful--bound-p)))
  (let (choices)
    (when-let (c-var-sym (helpful--convert-c-name symbol t))
      (push (list (lambda (_) (helpful-variable c-var-sym))
                  "c-style [V]ariable" ?V)
            choices))
    (when-let (c-fn-sym (helpful--convert-c-name symbol nil))
      (push (list (lambda (_) (helpful-callable c-fn-sym))
                  "c-style [F]unction" ?F)
            choices))
    (when (fboundp symbol)
      (push (list #'helpful-callable "[c]allable" ?c) choices))
    (when (boundp symbol)
      (push (list #'helpful-variable "[v]ariable" ?v) choices))
    (when (facep symbol)
      (push (list (lambda (face)
                    (describe-face face)
                    (funcall helpful-switch-buffer-function (help-buffer)))
                  "[f]ace" ?f)
            choices))
    (cond
     ((null choices)
      (user-error "Not bound: %S" symbol))
     ((= 1 (length choices))
      (funcall (caar choices) symbol))
     (t (helpful--disambiguate symbol choices)))))