Function: evil-forward-not-thing
evil-forward-not-thing is a byte-compiled function defined in
evil-common.el.
Signature
(evil-forward-not-thing THING &optional COUNT)
Documentation
Move point to the end or beginning of the complement of THING.
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20251108.138/evil-common.el
(defun evil-forward-not-thing (thing &optional count)
"Move point to the end or beginning of the complement of THING."
(evil-motion-loop (dir (or count 1))
(let (bnd)
(cond
((> dir 0)
(while (and (setq bnd (bounds-of-thing-at-point thing))
(< (point) (cdr bnd)))
(goto-char (cdr bnd)))
;; no thing at (point)
(if (zerop (forward-thing thing))
;; now at the end of the next thing
(let ((bnd (bounds-of-thing-at-point thing)))
(if (or (< (car bnd) (point)) ; end of a thing
(= (car bnd) (cdr bnd))) ; zero width thing
(goto-char (car bnd))
;; beginning of yet another thing, go back
(forward-thing thing -1)))
(goto-char (point-max))))
(t
(while (and (not (bobp))
(setq bnd (progn (backward-char) (bounds-of-thing-at-point thing)))
(< (point) (cdr bnd)))
(goto-char (car bnd)))
;; either bob or no thing at point
(goto-char
(if (and (not (bobp))
(zerop (forward-thing thing -1))
(setq bnd (bounds-of-thing-at-point thing)))
(cdr bnd)
(point-min))))))))