[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: BIKESHED: completion faces
From: |
Dmitry Gutov |
Subject: |
Re: BIKESHED: completion faces |
Date: |
Wed, 30 Oct 2019 01:11:52 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 |
On 27.10.2019 3:58, Stefan Monnier wrote:
In Emacs-26, completion faces looked like the following:
- the "common" part shown like the default face.
- the "first-difference" shown in bold.
- everything else uses the default face.
The "common" part is the part applied to the characters that are also
found in the current minibuffer. E.g. when completing
M-x ne-li ?
the "ne" and "-li" chars in the *Completions* are the "common" part.
With the basic, prefix completion, the "common" part is not very
important and is separated from the rest at the "first-difference", so
the default faces make a fair bit of sense there.
But for other completion styles such as `substring`,
`partial-completion`, and even more so for `flex`, it's not always
immediately obvious how the minibuffer contents relate to the possible
completions displayed in *Completions*.
I wonder if it's *that* important, to be able to see the matching chars.
The -first-difference face shows actionable info: the next character to
type, to narrow down the completions list as much as possible while
ensuring that a given completion is still in. You could type other
chars, but the likelihood of ending up with several options (and no more
characters to type) will be higher.
So IMHO we could do nothing, and it will be a valid choice. As long as
all completion styles highlight completion-first-difference properly.
Furthermore, the position of -first-difference also hints at what
characters were matched (definitely ones before it).
For this reason, it is common in other completion systems to
highlight the "common" part somehow (e.g. underline, bold, ...).
Personally, I'm not a big fan of underline, italic and even bold (unless
it's used sparingly, like it is now). With that said...
I think Emacs's defaults should be changed so that the "common" part
(which uses the `completions-common-part` face) is highlighted somehow.
So, what should we go for:
- bold (but then we need to change the `completions-first-difference`
face to keep it different, e.g. underlined)?
If we end up doing this, we might as well change
completions-first-difference to be indistinguishable from 'default'.
Because the common part, when highlighted, duplicates the information.
The "first difference" character is simply the one after the last
segment of the common part, isn't it?
- underlined (tho I don't like underlined text very much)?
- some foreground color?
- some background color?
- something else?
If we do end up highlighting completions-common-part somehow, I vote for
background color, some very subtle one. Because using bold is going to
be annoying with prefix-based styles, and I don't think we can/should
use different methods for different styles.
Using "white smoke" seems okay with the default theme, as well as with
the light-background theme I'm using. No idea what color would be good
with dark-background themes.
- Re: BIKESHED: completion faces, (continued)
- Re: BIKESHED: completion faces, Juri Linkov, 2019/10/27
- Re: BIKESHED: completion faces, João Távora, 2019/10/27
- Re: BIKESHED: completion faces, Juri Linkov, 2019/10/28
- Re: BIKESHED: completion faces, João Távora, 2019/10/28
- Re: BIKESHED: completion faces, Juri Linkov, 2019/10/29
- Re: BIKESHED: completion faces, Dmitry Gutov, 2019/10/29
- Re: BIKESHED: completion faces, João Távora, 2019/10/29
- Re: BIKESHED: completion faces, Stefan Monnier, 2019/10/28
- Re: BIKESHED: completion faces, Juri Linkov, 2019/10/29
- Re: BIKESHED: completion faces, João Távora, 2019/10/29
Re: BIKESHED: completion faces,
Dmitry Gutov <=