[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: |
Wed, 15 May 2024 20:30:47 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi Juri,
Juri Linkov <juri@linkov.net> writes:
>>> +(defcustom completion-allow-text-properties nil
>>> + "Non-nil means `choose-completion' should not discard text properties.
>>> +This also affects `completing-read' and any of the functions that do
>>> +minibuffer input with completion."
>>
>> This new user option should be announced in NEWS.
>>
>> I also wonder whether it should be a user option
>
> So here it's a variable, that will later help to select Imenu
> completion candidates with same names from different groups.
>
> diff --git a/etc/NEWS b/etc/NEWS
> index 34052764f5f..0db85410ebe 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -1784,6 +1784,13 @@ A major mode based on the tree-sitter library for
> editing Lua files.
>
> ** Minibuffer and Completions
>
> +*** New variable 'completion-allow-text-properties'.
> +Like non-nil 'minibuffer-allow-text-properties' that doesn't discard
> +text properties, it does the same by keeping text properties
> +on the selected completion candidate. So when these two variables
> +both are non-nil then 'completing-read' returns a selected completion
> +with the initial text properties kept intact.
Note that when minibuffer-allow-text-properties is non-nil, you can
already get the same original text properties from completing-read if
you "select" your candidate by cycling, since that doesn't go through
choose-completion which strips text properties. It feels a bit
surprising to have this separate variable that affects one kind of
selection ("choosing") and not other kinds ("cycling", "expanding").
IMO, it'd be better, if possible, to just cease stripping text
properties in choose-completion altogether. Note that choose-completion
calls completion--replace to do the actual insertion, and that function
already respects minibuffer-allow-text-properties.
> --- a/lisp/imenu.el
> +++ b/lisp/imenu.el
> @@ -732,6 +732,8 @@ imenu--completion-buffer
> ;; Create a list for this buffer only when needed.
> (let ((name (thing-at-point 'symbol))
> choice
> + (minibuffer-allow-text-properties t)
> + (completion-allow-text-properties t)
IIUC, these let-bindings around completing-read will affect all
recursive minibuffers too, and even completion-at-point completions if
you start editing another buffer before exiting the minibuffer. Perhaps
we can use buffer-local bindings in the minibuffer and propagate them to
the completions list buffer when populating it instead of let-binding?
Best,
Eshel
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Eshel Yaron, 2024/05/13
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/13
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/14
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Eli Zaretskii, 2024/05/14
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Stefan Monnier, 2024/05/14
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/14
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Daniel Mendler, 2024/05/14
- FW: [External] : Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Drew Adams, 2024/05/14
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/15
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Eli Zaretskii, 2024/05/15
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846),
Eshel Yaron <=
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/16
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Eli Zaretskii, 2024/05/16
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/17
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Stefan Monnier, 2024/05/17
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/17
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Stefan Monnier, 2024/05/18
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/20
- Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Juri Linkov, 2024/05/27
- RE: [External] : Re: master 431f8ff1e38: * lisp/imenu.el: Support more values for imenu-flatten (bug#70846), Drew Adams, 2024/05/14