Juri Linkov <[EMAIL PROTECTED]> writes:
> (set (make-local-variable 'isearch-success-function)
> ;; isearch only in function names
> (lambda ()
> (save-match-data
> (let* ((re (cdr (assoc nil imenu-generic-expression))))
> (and (save-excursion (beginning-of-line) (looking-at (car re)))
> (>= (point) (match-beginning (cadr re)))
> (<= (point) (match-end (cadr re))))))))
I noticed that `(point)' is not a reliable indicator to find
a matching point. It seems better to give two arguments
(match-beginning 0) and (match-end 0) to `isearch-success-function'.
So a correct example would be:
(set (make-local-variable 'isearch-success-function)
;; isearch only in function names
(lambda (mb me)
(save-match-data
(let ((re (cdr (assoc nil imenu-generic-expression))))
(and (save-excursion (beginning-of-line) (looking-at (car re)))
(>= mb (match-beginning (cadr re)))
(<= me (match-end (cadr re))))))))
--
Juri Linkov
http://www.jurta.org/emacs/
_______________________________________________
Emacs-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-devel