emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-f


From: Eshel Yaron
Subject: Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846)
Date: Sun, 14 Jul 2024 08:28:36 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Hi Juri,

Juri Linkov <juri@linkov.net> writes:

>> Ok, then here is a complete patch with documentation updates
>> where many documentation changes are fixing the documentation
>> to describe the current behavior existed even before applying
>> these code changes.
>
> So this patch is pushed now.

I'm afraid imenu-flatten=annotation has one more hurdle to overcome.
Consider:

1. emacs -Q
2. (setq imenu-flatten 'annotation)
2. C-x C-f .../lisp/imenu.el
3. M-g i
4. M-<down> M-<down> M-<down> M-<down> ...
5. Now the selected candidate in *Completions* is e.g. imenu--cleanup,
   this is also the minibuffer contents, so far so good.
6. Type M-RET to jump to this candidate.
7. Land on imenu instead of imenu--cleanup.

No matter how far down you go with M-<down>, if you go through the entry
for imenu, that's where you'll land when you hit M-RET.  This is because
imenu-flatten=annotation tries to identify candidates by their text
properties, but completion--replace retains common parts while replacing
minibuffer text, along with the text properties of these common parts.

This affects imenu-flatten=group too.

It might be possible to resolve this by setting a different
completion-list-insert-choice-function that circumvents replaces the
whole minibuffer contents, unlike completion--replace, which tries hard
to preserve markers etc.


Best,

Eshel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]