Function: avy--overlay

avy--overlay is a byte-compiled function defined in avy.el.

Signature

(avy--overlay STR BEG END WND &optional COMPOSE-FN)

Documentation

Create an overlay with STR from BEG to END in WND.

COMPOSE-FN is a lambda that concatenates the old string at BEG with STR.

Source Code

;; Defined in ~/.emacs.d/elpa/avy-20241101.1357/avy.el
(defun avy--overlay (str beg end wnd &optional compose-fn)
  "Create an overlay with STR from BEG to END in WND.
COMPOSE-FN is a lambda that concatenates the old string at BEG with STR."
  (let ((eob (with-selected-window wnd (point-max))))
    (when (<= beg eob)
      (let* ((beg (+ beg avy--overlay-offset))
             (ol (make-overlay beg (or end (1+ beg)) (window-buffer wnd)))
             (old-str (if (eq beg eob) "" (avy--old-str beg wnd)))
             (os-line-prefix (get-text-property 0 'line-prefix old-str))
             (os-wrap-prefix (get-text-property 0 'wrap-prefix old-str))
             other-ol)
        (unless (= (length str) 0)
          (when os-line-prefix
            (add-text-properties 0 1 `(line-prefix ,os-line-prefix) str))
          (when os-wrap-prefix
            (add-text-properties 0 1 `(wrap-prefix ,os-wrap-prefix) str)))
        (when (setq other-ol (cl-find-if
                              (lambda (o) (overlay-get o 'goto-address))
                              (overlays-at beg)))
          (add-text-properties
           0 (length old-str)
           `(face ,(overlay-get other-ol 'face)) old-str))
        (overlay-put ol 'window wnd)
        (overlay-put ol 'category 'avy)
        (overlay-put ol (if (eq beg eob)
                            'after-string
                          'display)
                     (funcall
                      (or compose-fn #'concat)
                      str old-str))
        (push ol avy--overlays-lead)))))