Function: ghostel--fake-cursor-update
ghostel--fake-cursor-update is a natively compiled function defined in
ghostel.el.
Signature
(ghostel--fake-cursor-update &optional WINDOW)
Documentation
Refresh the hint cursor overlay.
Draws an overlay at the live terminal cursor position when in
copy or Emacs mode, point is somewhere other than the live cursor,
and ghostel-readonly-fake-cursor is non-nil with a non-nil
resolved style. Otherwise clears the overlay.
Accepts an optional unused WINDOW argument so it can serve as a
pre-redisplay-functions entry.
Source Code
;; Defined in /nix/store/1252krff0gb2kisjcpp45m50cpdskfrl-emacs-packages-deps/share/emacs/site-lisp/ghostel.el
(defun ghostel--fake-cursor-update (&optional _window)
"Refresh the hint cursor overlay.
Draws an overlay at the live terminal cursor position when in
copy or Emacs mode, point is somewhere other than the live cursor,
and `ghostel-readonly-fake-cursor' is non-nil with a non-nil
resolved style. Otherwise clears the overlay.
Accepts an optional unused WINDOW argument so it can serve as a
`pre-redisplay-functions' entry."
(let ((style (and ghostel-readonly-fake-cursor
(memq ghostel--input-mode '(copy emacs))
(ghostel--fake-cursor-style)))
(pos ghostel--cursor-char-pos))
(cond
((or (null style) (null pos) (= pos (point)))
(ghostel--fake-cursor-clear))
(t
(let* ((face (if (eq style 'box)
'ghostel-fake-cursor-box
'ghostel-fake-cursor))
(eol (or (= pos (point-max))
(= pos (save-excursion
(goto-char pos)
(line-end-position)))))
(ov (or ghostel--fake-cursor-overlay
(let ((new (make-overlay 1 1 nil t nil)))
(overlay-put new 'priority 100)
(setq ghostel--fake-cursor-overlay new)))))
(cond
(eol
(move-overlay ov pos pos)
(overlay-put ov 'face nil)
(overlay-put ov 'after-string
(propertize " " 'face face)))
(t
(move-overlay ov pos (1+ pos))
(overlay-put ov 'after-string nil)
(overlay-put ov 'face face))))))))