Function: evil-ex-start-search
evil-ex-start-search is a byte-compiled function defined in
evil-search.el.
Signature
(evil-ex-start-search DIRECTION COUNT)
Documentation
Start a new search in a certain DIRECTION.
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20251108.138/evil-search.el
(defun evil-ex-start-search (direction count)
"Start a new search in a certain DIRECTION."
(setq evil-ex-search-count count
evil-ex-search-direction direction
evil-ex-search-start-point (point)
evil-ex-last-was-search t)
;; store buffer and window where the search started
(let* ((evil-ex-original-buffer (current-buffer))
;; read the search string
(minibuffer-local-map evil-ex-search-keymap)
(search-string
(condition-case err
(minibuffer-with-setup-hook #'evil-ex-search-start-session
(read-string
(if (eq evil-ex-search-direction 'forward) "/" "?")
(when evil-ex-search-history
(propertize (car evil-ex-search-history) 'face 'shadow))
'evil-ex-search-history))
(quit
(evil-ex-delete-hl 'evil-ex-search)
(goto-char evil-ex-search-start-point)
(signal (car err) (cdr err))))))
;; pattern entered successful
(goto-char (if (eq evil-ex-search-direction 'forward)
(1+ evil-ex-search-start-point)
(1- evil-ex-search-start-point)))
(cl-destructuring-bind (success pattern offset)
(evil-ex-search-full-pattern search-string
evil-ex-search-count
evil-ex-search-direction)
(setq evil-ex-search-pattern pattern
evil-ex-search-offset offset)
(cond
((memq success '(t wrap))
(goto-char (match-beginning 0))
(setq evil-ex-search-match-beg (match-beginning 0)
evil-ex-search-match-end (match-end 0))
(evil-ex-search-goto-offset offset)
(evil-push-search-history search-string (eq direction 'forward))
(if evil-ex-search-incremental
(unless evil-ex-search-persistent-highlight
(evil-ex-delete-hl 'evil-ex-search))
(when evil-ex-search-highlight-all
(evil-ex-search-activate-highlight pattern))))
(t
(goto-char evil-ex-search-start-point)
(evil-ex-delete-hl 'evil-ex-search)
(signal 'search-failed (list search-string)))))))