Function: elisp--eval-last-sexp

elisp--eval-last-sexp is a byte-compiled function defined in elisp-mode.el.gz.

Signature

(elisp--eval-last-sexp EVAL-LAST-SEXP-ARG-INTERNAL)

Documentation

Evaluate sexp before point; print value in the echo area.

If EVAL-LAST-SEXP-ARG-INTERNAL is non-nil, print output into current buffer. If EVAL-LAST-SEXP-ARG-INTERNAL is 0, print output with no limit on the length and level of lists, and include additional formats for integers (octal, hexadecimal, and character).

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/elisp-mode.el.gz
(defun elisp--eval-last-sexp (eval-last-sexp-arg-internal)
  "Evaluate sexp before point; print value in the echo area.
If EVAL-LAST-SEXP-ARG-INTERNAL is non-nil, print output into
current buffer.  If EVAL-LAST-SEXP-ARG-INTERNAL is `0', print
output with no limit on the length and level of lists, and
include additional formats for integers \(octal, hexadecimal, and
character)."
  (pcase-let*
      ((`(,insert-value ,no-truncate ,char-print-limit)
        (eval-expression-get-print-arguments eval-last-sexp-arg-internal)))
    ;; The expression might change to a different buffer, so record the
    ;; desired output stream now.
    (let ((output (if insert-value (current-buffer) t)))
      ;; Setup the lexical environment if lexical-binding is enabled.
      (elisp--eval-last-sexp-print-value
       (eval (macroexpand-all
              (eval-sexp-add-defvars
               (elisp--eval-defun-1 (macroexpand (elisp--preceding-sexp)))))
             lexical-binding)
       output no-truncate char-print-limit))))