Function: cider-repl--emit-output

cider-repl--emit-output is a byte-compiled function defined in cider-repl.el.

Signature

(cider-repl--emit-output BUFFER STRING FACE)

Documentation

Using BUFFER, emit STRING as output font-locked using FACE.

Before inserting, run cider-repl-preoutput-hook on STRING.

Source Code

;; Defined in ~/.emacs.d/elpa/cider-20260414.1619/cider-repl.el
(defun cider-repl--emit-output (buffer string face)
  "Using BUFFER, emit STRING as output font-locked using FACE.
Before inserting, run `cider-repl-preoutput-hook' on STRING."
  (with-current-buffer buffer
    (save-excursion
      (cider-save-marker cider-repl-output-start
        (goto-char cider-repl-output-end)
        (setq string (propertize string
                                 'font-lock-face face
                                 'rear-nonsticky '(font-lock-face)))
        (setq string (cider-run-chained-hook 'cider-repl-preoutput-hook string))
        (insert-before-markers string))
      (when (and (= (point) cider-repl-prompt-start-mark)
                 (not (bolp)))
        (insert-before-markers "\n")
        (set-marker cider-repl-output-end (1- (point))))))
  (when cider-repl-display-output-before-window-boundaries
    ;; FIXME: The code below is super slow, that's why it's disabled by default.
    (when-let* ((window (get-buffer-window buffer t)))
      ;; If the prompt is on the first line of the window, then scroll the window
      ;; down by a single line to make the emitted output visible.
      (when (and (pos-visible-in-window-p cider-repl-prompt-start-mark window)
                 (< 1 cider-repl-prompt-start-mark)
                 (not (pos-visible-in-window-p (1- cider-repl-prompt-start-mark) window)))
        (with-selected-window window
          (scroll-down 1))))))