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
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to