Function: gptel-highlight--update
gptel-highlight--update is a natively compiled function defined in
gptel.el.
Signature
(gptel-highlight--update BEG END)
Documentation
JIT-lock function: mark gptel response/reasoning regions.
BEG and END delimit the region to refresh.
Source Code
;; Defined in /nix/store/q3r7g81pvghw7a523kjk2k2zih3pfk8z-emacs-packages-deps/share/emacs/site-lisp/elpa/gptel-20261002.545/gptel.el
(defun gptel-highlight--update (beg end)
"JIT-lock function: mark gptel response/reasoning regions.
BEG and END delimit the region to refresh."
(save-excursion ;Scan across region for the gptel text property
(let ((prev-pt (goto-char end)))
(while (and (goto-char (previous-single-property-change
(point) 'gptel nil beg))
(/= (point) prev-pt))
(pcase (get-char-property (point) 'gptel)
((and (or 'response 'ignore `(tool . ,_)) val)
(if-let* ((ov (or (cdr-safe (get-char-property-and-overlay
(point) 'gptel-highlight))
(cdr-safe (get-char-property-and-overlay
prev-pt 'gptel-highlight))))
(from (overlay-start ov)) (to (overlay-end ov)))
(unless (<= from (point) prev-pt to)
(move-overlay ov (min from (point)) (max to prev-pt)))
(gptel-highlight--decorate ;Or make new overlay covering just region
(make-overlay (point) prev-pt nil t) val)))
('nil ;If there's an overlay, we need to split it.
(when-let* ((ov (cdr-safe (get-char-property-and-overlay
(point) 'gptel-highlight)))
(from (overlay-start ov)) (to (overlay-end ov)))
(move-overlay ov from (point)) ;Move overlay to left side
(gptel-highlight--decorate ;Make a new one on the right
(make-overlay prev-pt to nil t)
(get-char-property prev-pt 'gptel)))))
(setq prev-pt (point)))))
`(jit-lock-bounds ,beg . ,end))