Mercurial > emacs
changeset 25810:f1417ed050c0
(imenu-after-jump-hook): New variable.
(imenu): Run menu-after-jump-hook.
(imenu-name-lookup-function): New variable.
(imenu--in-alist): Use those variables.
author | Phillip Rulon <pjr@gnu.org> |
---|---|
date | Fri, 24 Sep 1999 13:55:29 +0000 |
parents | 89230444d638 |
children | c3cb1d841464 |
files | lisp/imenu.el |
diffstat | 1 files changed, 29 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/imenu.el Fri Sep 24 13:52:46 1999 +0000 +++ b/lisp/imenu.el Fri Sep 24 13:55:29 1999 +0000 @@ -116,6 +116,14 @@ (other :tag "Always" t)) :group 'imenu) +(defcustom imenu-after-jump-hook nil + "*Hooks called after jumping to a place in the buffer. + +Useful things to use here include `reposition-window', `recenter', and +\(lambda () (recenter 0)) to show at top of screen." + :type 'hook + :group 'imenu) + ;;;###autoload (defcustom imenu-sort-function nil "*The function to use for sorting the index mouse-menu. @@ -257,6 +265,22 @@ (make-variable-buffer-local 'imenu-extract-index-name-function) ;;;###autoload +(defvar imenu-name-lookup-function nil + "Function to compare string with index item. + +This function will be called with two strings, and should return +non-nil if they match. + +If nil, comparison is done with `string='. +Set this to some other function for more advanced comparisons, +such as \"begins with\" or \"name matches and number of +arguments match\". + +This variable is local in all buffers.") +;;;###autoload +(make-variable-buffer-local 'imenu-name-lookup-function) + +;;;###autoload (defvar imenu-default-goto-function 'imenu-default-goto-function "The default function called when selecting an Imenu item. The function in this variable is called when selecting a normal index-item.") @@ -649,7 +673,9 @@ (cond ((listp tail) (if (setq res (imenu--in-alist str tail)) (setq alist nil))) - ((string= str head) + ((if imenu-name-lookup-function + (funcall imenu-name-lookup-function str head) + (string= str head)) (setq alist nil res elt)))) res)) @@ -1072,7 +1098,8 @@ (position (if is-special-item (cadr index-item) (cdr index-item))) (rest (if is-special-item (cddr index-item)))) - (apply function (car index-item) position rest))))) + (apply function (car index-item) position rest)))) + (run-hooks 'imenu-after-jump-hook)) (provide 'imenu)