Function: cider--make-fringe-overlay

cider--make-fringe-overlay is a byte-compiled function defined in cider-overlays.el.

Signature

(cider--make-fringe-overlay &optional END)

Documentation

Place an eval indicator at the fringe before a sexp.

END is the position where the sexp ends, and defaults to point.

Source Code

;; Defined in ~/.emacs.d/elpa/cider-20261106.1225/cider-overlays.el
(defun cider--make-fringe-overlay (&optional end)
  "Place an eval indicator at the fringe before a sexp.
END is the position where the sexp ends, and defaults to point."
  (when (cider--use-fringe-indicators-p 'eval)
    (with-current-buffer (if (markerp end)
                             (marker-buffer end)
                           (current-buffer))
      (save-excursion
        (if end
            (goto-char end)
          (setq end (point)))
        (clojure-forward-logical-sexp -1)
        ;; Drop any prior indicator on this form (e.g. a stale one) so a
        ;; re-evaluation replaces it with a fresh in-sync indicator.
        (remove-overlays (point) end 'category 'cider-fringe-indicator)
        ;; Create the green-circle overlay.
        (let ((ov (cider--make-overlay (point) end 'cider-fringe-indicator
                                       'before-string cider--fringe-overlay-good)))
          (when cider-mark-stale-after-edit
            ;; `cider--make-overlay' installs a delete-on-edit hook; swap just
            ;; that one out for mark-stale, leaving any other hooks intact.
            (overlay-put ov 'modification-hooks
                         (cons #'cider--fringe-overlay-mark-stale
                               (remq #'cider--delete-overlay
                                     (overlay-get ov 'modification-hooks)))))
          ov)))))