Function: eca-rewrite--add-text

eca-rewrite--add-text is a natively compiled function defined in eca-rewrite.el.

Signature

(eca-rewrite--add-text OV TEXT)

Documentation

Add TEXT as the rewritten content to overlay OV.

This replaces the overlay preview entirely with the accumulated new text, so shorter rewrites don't leave leftover original text in the overlay.

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-rewrite.el
(defun eca-rewrite--add-text (ov text)
  "Add TEXT as the rewritten content to overlay OV.
This replaces the overlay preview entirely with the accumulated new text,
so shorter rewrites don't leave leftover original text in the overlay."
  (let* ((ov-buf (overlay-buffer ov))
         (temp-buf (overlay-get ov 'eca-rewrite--temp-buffer))
         (mode (and ov-buf (buffer-local-value 'major-mode ov-buf)))
         (acc (concat (overlay-get ov 'eca-rewrite--new-text-acc) text)))
    (overlay-put ov 'eca-rewrite--new-text-acc acc)
    (with-current-buffer ov-buf
      (when show-paren-mode
        (setq eca-rewrite--restore-paren-mode-after-clean t)
        (show-paren-local-mode -1)))
    (with-current-buffer temp-buf
      (let ((inhibit-read-only t)
            (inhibit-modification-hooks t))
        (erase-buffer)
        (insert acc)
        (when mode
          (delay-mode-hooks (funcall mode)))
        (font-lock-ensure))
      (let ((plain (buffer-substring-no-properties (point-min) (point-max)))
            (propertized (buffer-substring (point-min) (point-max))))
        (overlay-put ov 'eca-rewrite--new-text plain)
        ;; Move the highlight to the display string so show-paren-mode
        ;; overlays on buffer text don't repaint the whole overlay.
        (let ((disp (copy-sequence propertized)))
          ;; Keep a base version (syntax faces only) to compose with our faces.
          (overlay-put ov 'eca-rewrite--display-base disp)
          ;; Initial (non-hover) display uses the normal highlight face.
          (let ((initial (copy-sequence disp)))
            (add-face-text-property 0 (length initial) 'eca-rewrite-overlay-face 'append initial)
            (overlay-put ov 'display initial)))))))