Function: majutsu-diff--color-words-shadow-cursor

majutsu-diff--color-words-shadow-cursor is a natively compiled function defined in majutsu-diff.el.

Signature

(majutsu-diff--color-words-shadow-cursor WINDOW OLDPOS DIR)

Documentation

Shadow cursor callback for color-words diffs.

Unlike smerge--refine-shadow-cursor, this maps through inline pairs and falls back to region mapping for shared context.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-diff.el
(defun majutsu-diff--color-words-shadow-cursor (window _oldpos dir)
  "Shadow cursor callback for color-words diffs.
Unlike `smerge--refine-shadow-cursor', this maps through inline pairs
and falls back to region mapping for shared context."
  (let ((ol (window-parameter window 'smerge--refine-shadow-cursor)))
    (if (not (and (bound-and-true-p smerge-refine-shadow-cursor)
                  (memq dir '(entered moved))))
        (when ol (delete-overlay ol))
      (with-current-buffer (window-buffer window)
        (let ((other-beg (ignore-errors
                           (majutsu-diff--color-words-shadow-pos
                            (window-point window)))))
          (if (not other-beg)
              (when ol (delete-overlay ol))
            (let ((other-end (min (point-max) (1+ other-beg))))
              ;; Handle wide chars (TAB/LF) — show as pseudo-space.
              (when (memq (char-after other-beg) '(?\n ?\t))
                (setq other-end other-beg))
              (if ol (move-overlay ol other-beg other-end)
                (setq ol (make-overlay other-beg other-end nil t nil))
                (setf (window-parameter window 'smerge--refine-shadow-cursor)
                      ol)
                (overlay-put ol 'window window)
                (overlay-put ol 'face 'smerge-refine-shadow-cursor))
              (overlay-put ol 'before-string
                           (when (= other-beg other-end)
                             (propertize
                              " " 'face 'smerge-refine-shadow-cursor))))))))))