Subject: bug#15996: 24.3.50; imenu inconsistencies

From: Thierry Volpiatto <[email-masked]>
Date: Sun, 01 Dec 2013 09:11:34 +0100

Stefan Monnier <[email-masked]> writes:

>> (defvar foo)
> [...]
>> 1) var `foo' is not listed,
>
> That's on purpose.  Of course, it's not always the right choice, but
> imenu is supposed to let you go to the "definition" of something and
> this is not a definition.
>
>> 2) The "defun*" in var `baz' is detected as a function with name `.',
>> but is not, it is just an element of var `baz'.
>
> Yes, that's a false positive.  It's difficult/impossible to avoid all
> false positives and all false negatives.  We could try and recognize
> this particular case with ad-hoc code, but it wouldn't help in general.
>
>> 3) The function test defined with `defun*' from cl package is listed,
>> but the macro `test2' defined with `defmacro*' is not listed.
>> I expect the both listed if cl package is loaded or nothing listed if it
>> is not loaded.
>
> Agreed.

Here another one (Reported on helm issues):

here a file test.c:

--8<---------------cut here---------------start------------->8---
void foo(); // either item in the imenu list jumps here

void foo() {}
--8<---------------cut here---------------end--------------->8---

Imenu show only one "foo".

(semantic-mode 1)

Imenu show now the two "foo".

See:
https://github.com/emacs-helm/helm/issues/337

-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997