Function: cider-insert-eval-handler

cider-insert-eval-handler is a byte-compiled function defined in cider-eval.el.

Signature

(cider-insert-eval-handler &optional BUFFER BOUNDS SOURCE-BUFFER ON-SUCCESS-CALLBACK)

Documentation

Make an nREPL evaluation handler for the BUFFER,
_BOUNDS representing the buffer bounds of the evaled input,
SOURCE-BUFFER the original buffer, and ON-SUCCESS-CALLBACK an optional callback.

The handler simply inserts the result value in BUFFER.

Source Code

;; Defined in ~/.emacs.d/elpa/cider-20260414.1619/cider-eval.el
;;; Interactive evaluation handlers
(defun cider-insert-eval-handler (&optional buffer _bounds source-buffer on-success-callback)
  "Make an nREPL evaluation handler for the BUFFER,
_BOUNDS representing the buffer bounds of the evaled input,
SOURCE-BUFFER the original buffer,
and ON-SUCCESS-CALLBACK an optional callback.

The handler simply inserts the result value in BUFFER."
  (let ((eval-buffer (current-buffer))
        (res "")
        (failed nil))
    (nrepl-make-response-handler (or buffer eval-buffer)
                                 ;; value handler:
                                 (lambda (_buffer value)
                                   (with-current-buffer buffer
                                     (insert value))
                                   (when cider-eval-register
                                     (setq res (concat res value))))
                                 ;; stdout handler:
                                 (lambda (_buffer out)
                                   (cider-repl-emit-interactive-stdout out))
                                 ;; stderr handler:
                                 (lambda (_buffer err)
                                   (cider-repl-emit-interactive-stderr err)
                                   ;; Don't jump
                                   (cider-handle-compilation-errors err eval-buffer t))
                                 ;; done handler:
                                 (lambda (_buffer)
                                   (when cider-eval-register
                                     (set-register cider-eval-register res))
                                   (when (and (not failed)
                                              on-success-callback)
                                     (funcall on-success-callback)))
                                 ;; eval-error handler
                                 (lambda (_buffer)
                                   (setq failed t)
                                   (funcall nrepl-err-handler source-buffer)))))