emacs-devel
[Top][All Lists]
Advanced

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

Re: VOTE: Changing completions-common-part face's default


From: João Távora
Subject: Re: VOTE: Changing completions-common-part face's default
Date: Thu, 7 Nov 2019 15:54:08 +0000

> There are modern UI trends that are objectively bad, you know. Like the
> proliferation of dark-background themes (especially by default), or
> mixing light-on-dark with dark-on-light in the same theme without regard
> for contrast levels.

We mostly agree.  But the big IDE players like Visual Studio and Eclipse
don't follow shallow trends. They look quite ugly compared to Sublime or
Atom. As soon as flex/fuzzy/scatter became accessible and popular
(because of  programming speed) they decided to use ways to
highlight the matches,  very often boldface.  So it's not a "trend" at
all. We should ask Drew who probably has had such system in
place for a much longer time.

> I don't understand this. flex is deterministic. Which part exactly
> cannot be trusted?

Precisely, I thought you wouldn't.  Flex is designed to let you
smash some keys that vaguely fit into your intended completion,
or at least enter the spectrum where you kinda remember the
completion to be.  Some Flex implementations even allow you
to reverse keys so that when my lazy hand types "lyaz" it still
maches "the-lazy-fox".  When scoring, flex makes some mistakes
(depending on how good/sophisticated the scoring algorithm is).
So it's important to understand why the suggestion is at that
place.

You might think this double-checking "wastes your synapses".
It's a bargain indeed. it doesn't work for everyone. But it's
nonsensical to have flex with that crucial part crippled.

So that in the case of "lzy", I can choose between "the-lazy-fox"
and "le-zorg-yorg". Both can be reasonable intentions at different
points in time.

> I'm not sure I can agree with that. Company highlights the common part,
>  not simply whatever part completion style chooses to highlight.

If it's somehow so important for company to highlight always the
common part, we can put a 'this-is-part-of-the-common-part' prop
there, too, for company's benetif.  Sniffing for faces, the way I
implemented it, was really a low-hanging-hack anyway.  The patch
to sniff for a property is trivial.

So I wouldn't worry about that.

By the way, doesn't this requirement for company clash with your
view of the other Emacs frontends?  Why is it important for company
to always highlight the common part, but not for Emacs's icomplete,
or *Completions*?

João



reply via email to

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