mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
(imenu-after-jump-hook): New variable.
(imenu): Run menu-after-jump-hook. (imenu-name-lookup-function): New variable. (imenu--in-alist): Use those variables.
This commit is contained in:
parent
66f54605e1
commit
020e8fdf93
@ -116,6 +116,14 @@ Another non-nil value means always display the index in a completion buffer."
|
||||
(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.
|
||||
@ -256,6 +264,22 @@ This variable is local in all buffers.")
|
||||
;;;###autoload
|
||||
(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.
|
||||
@ -649,7 +673,9 @@ as a way for the user to ask to recalculate the buffer's index alist."
|
||||
(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 @@ for more information."
|
||||
(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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user