Function: evil-search
evil-search is a byte-compiled function defined in evil-search.el.
Signature
(evil-search STRING FORWARD &optional REGEXP-P START)
Documentation
Search for STRING and highlight matches.
If FORWARD is nil, search backward, otherwise forward. If REGEXP-P is non-nil, STRING is taken to be a regular expression. START is the position to search from; if unspecified, it is one more than the current position.
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20251108.138/evil-search.el
(defun evil-search (string forward &optional regexp-p start)
"Search for STRING and highlight matches.
If FORWARD is nil, search backward, otherwise forward.
If REGEXP-P is non-nil, STRING is taken to be a regular expression.
START is the position to search from; if unspecified, it is
one more than the current position."
(when (and (stringp string)
(not (string= string "")))
(let* ((orig (point))
(start (or start
(if forward
(min (point-max) (1+ orig))
orig)))
(isearch-regexp regexp-p)
(isearch-forward forward)
(case-fold-search
(unless (and search-upper-case
(not (isearch-no-upper-case-p string nil)))
case-fold-search))
(search-func (evil-search-function
forward regexp-p evil-search-wrap 'isearch-filter-predicate)))
;; no text properties, thank you very much
(set-text-properties 0 (length string) nil string)
;; position to search from
(goto-char start)
(setq isearch-string string)
(isearch-update-ring string regexp-p)
(condition-case nil
(funcall search-func string)
(search-failed
(goto-char orig)
(user-error "\"%s\": %s not found"
string (if regexp-p "pattern" "string"))))
;; always position point at the beginning of the match
(goto-char (match-beginning 0))
;; determine message for echo area
(cond
((and forward (< (point) start))
(when evil-search-wrap-ring-bell (ding))
(setq string "Search wrapped around BOTTOM of buffer"))
((and (not forward) (> (point) start))
(when evil-search-wrap-ring-bell (ding))
(setq string "Search wrapped around TOP of buffer"))
(t
(setq string (evil-search-message string forward))))
(evil-flash-search-pattern string t))))