Function: cider-log--consumer-add

cider-log--consumer-add is a byte-compiled function defined in cider-log.el.

Signature

(cider-log--consumer-add FRAMEWORK APPENDER CONSUMER BUFFER)

Documentation

Add the CONSUMER to the APPENDER of FRAMEWORK and write events to BUFFER.

Source Code

;; Defined in ~/.emacs.d/elpa/cider-20260414.1619/cider-log.el
(defun cider-log--consumer-add (framework appender consumer buffer)
  "Add the CONSUMER to the APPENDER of FRAMEWORK and write events to BUFFER."
  (cider-request:log-add-consumer
   framework appender consumer
   (lambda (msg)
     (nrepl-dbind-response msg (cider/log-add-consumer cider/log-consumer cider/log-event status)
       (cond ((member "done" status)
              (with-current-buffer (get-buffer-create buffer)
                (setq-local cider-log-framework framework)
                (setq-local cider-log-appender appender)
                (setq cider-log-consumer cider/log-add-consumer)
                (switch-to-buffer buffer)
                (when (and cider-log-use-logview
                           (not (fboundp 'logview-mode)))
                  (message "[CIDER Log Mode] Please install the Logview package for best results.")
                  (cider--display-interactive-eval-result "Please install the Logview package for best results."
                                                          'error
                                                          (point)
                                                          'cider-error-overlay-face))))
             ((member "cider/log-event" status)
              (let* ((consumer (nrepl-dict "id" cider/log-consumer))
                     (buffers (cider-log-consumer-buffers consumer)))
                (when (seq-empty-p buffers)
                  (message "WARNING: No buffers found for %s log consumer %s of appender %s."
                           (cider-log-framework-display-name framework)
                           (cider-log-consumer-display-name consumer)
                           (cider-log-appender-display-name appender))
                  (cider-sync-request:log-remove-consumer framework appender consumer))
                (seq-doseq (buffer buffers)
                  (with-current-buffer buffer
                    (cider-log--insert-events buffer (list cider/log-event))
                    (when (and (cider-log-use-logview)
                               (not (logview-initialized-p)))
                      (let ((framework cider-log-framework)
                            (appender cider-log-appender)
                            (consumer cider-log-consumer))
                        (logview--guess-submode)
                        (cider-log-mode)
                        ;; Restore buffer local vars reset by calling major mode.
                        (setq-local cider-log-framework framework
                                    cider-log-appender appender
                                    cider-log-consumer consumer))))))))))))