Function: hyrolo-next-match

hyrolo-next-match is an interactive and byte-compiled function defined in hyrolo.el.

Signature

(hyrolo-next-match)

Documentation

Move point forward to the start of the next HyRolo search match.

Raise an error if a match is not found.

Key Bindings

Source Code

;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hyrolo.el
(defun hyrolo-next-match ()
  "Move point forward to the start of the next HyRolo search match.
Raise an error if a match is not found."
  (interactive)
  (hyrolo-verify)
  (let* ((regexp hyrolo-match-regexp)
         (start (point))
         (case-fold-search t)
	 (prior-regexp-search (stringp hyrolo-match-regexp))
	 found)
    ;; Ensure a search regexp has been stored previously or error
    (unless prior-regexp-search
      (error (substitute-command-keys
              "(hyrolo-next-match): Use {\\[hyrolo-grep-or-fgrep]} to do a search first")))

    ;; If already at a match, move past it to ensure we find the next one
    (when (and (hproperty:but-face-p (point) (list (or hyrolo-highlight-face
						       hproperty:highlight-face)))
	       (looking-at regexp))
      (goto-char (match-end 0)))

    ;; Search for the next match
    (while (and (re-search-forward regexp nil t)
		(progn (save-match-data
			 (setq found (hproperty:but-face-p
				      (1- (point)) (list (or hyrolo-highlight-face
							     hproperty:highlight-face)))))
		       (not found))))
    (if found
        (progn (goto-char (match-beginning 0))
	       ;; !! TODO: Next line temporary until `reveal-mode' works properly
               (hyrolo-outline-show-subtree))
      (goto-char start)
      (error "(hyrolo-next-match): No following matches for \"%s\"" regexp))))