GNU bug report logs -
#33695
27.0.50; which-function reports wrong imenu information
Previous Next
Reported by: Alex Branham <alex.branham <at> gmail.com>
Date: Mon, 10 Dec 2018 18:59:02 UTC
Severity: normal
Found in version 27.0.50
Done: Alex Branham <alex.branham <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
(which-function) can report outdated information because it relies on
imenu--index-alist. To see what I'm talking about, from emacs -q:
M-x which-function-mode RET
type:
(defun test () "foo" (ignore))
M-x imenu *Rescan* RET C-g
type:
(defun test2 () "bar" (ignore))
With point inside test2, (which-function) reports test (you'll see this
in the modeline) because it uses the (outdated) information in
`imenu--index-alist'.
I see a few potential fixes:
- Check `add-log-current-defun' before checking `imenu--index-alist' in
`which-function' (easy, but falling back on imenu--index-alist could
still report old info)
- Have `which-function' update `imenu--index-alist' before checking it
(also easy to implement, but updating the index could be slow in large
buffers)
- Something else
I'm happy to write up a patch, just let me know what solution is best.
Thanks,
Alex
This bug report was last modified 6 years and 151 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.