From: "João Távora" <joaotavora@gmail.com>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: Stefan Monnier <monnier@iro.umontreal.ca>,
emacs-devel <emacs-devel@gnu.org>
Subject: Re: BIKESHED: completion faces
Date: Wed, 6 Nov 2019 08:53:02 +0000 [thread overview]
Message-ID: <CALDnm501EyFw4CJA1zmno8Odf06dcddFRW4m16y62KS5WLdkWQ@mail.gmail.com> (raw)
In-Reply-To: <b3d79fa9-37ae-8b24-6c12-f9d60afbb57d@yandex.ru>
[-- Attachment #1: Type: text/plain, Size: 3535 bytes --]
On Wed, Nov 6, 2019 at 8:18 AM Dmitry Gutov <dgutov@yandex.ru> wrote:
> OK.
>
> Renames aside, you'll have completions-common use bold, right? And hide
> first-difference.
No. Completions-first-difference is renamed completion-emphasis and
completions-common is renamed completion-shadow or
completions-secondary-emphasis. Then aliases are made. Then
completion-pcm-hilit-commonality starts using completion-emphasis
for the matching parts.
> The first one will result in long annoying columns with prefix-only
> completion (this won't happen in other editors because a) they use flex,
> b) popup is limited in height), the second one will remove a bit of
> extra information.
I don't understand this part but I think this doesn't apply
since you misunderstood.
> >>> > > The former part can be improved in flex, the latter can't: it's
> >>> > > intrinsic to the technique.
> >>> > All can be improved, just with varying degrees of difficulty.
> >>> Sure, a pig and a large enough rocket...
> >>
> >> Is that because the current completion system is not optimal for flex?
> >
> > No, no. I just lightheartedly commented that in response to your "all
> > can be improved". Like "all animals can fly, even pigs, provided you
> > attach a large enough rocket".
>
> That kind of discounts the valid and useful avenues for improvement we
> still have.
Sure, it was lighthearted. I was just making a point before that making
flex match "less" isn't possible. But feel free to make faster lists
and such to improve it from the "outside".
> > If we're going to do extensive changes in the name of performance, isn't
> > it better to use Daniel's generator.el library? It sounds like just the
> > thing.
> Last I checked, it's not very relevant. Or if it is, it'll just be a
> minor implementation detail.
It's a good approach at delayed evaluation. You could hand-code it, but
the patterns and the accessors you need are already solidly there.
It doesn't magically code the generator for you, if that's what you were
expeecting. :-)
> > Possibly/probably by using delayed evaluation techniques.
>
> My limiting the number of completions, most likely.
Really? Then they suck. But hey, that's easy to do in Emacs, too :-)
> And/or doing it all in C++/Java.
We've seen elsewhere those speedups are relevant, but not mind-blowing.
Even if the speedup is 10x it's easy to switch to a project
that has 100x the symbols.
And "doing it all" is a a poor approach at optimization. We should
optimize the hotspots. And we can do that in Emacs, too.
BTW Java has generators too. And so does recent C++.
> >>> > As you can imagine, IMHO this part "making sense" is less
important than
> >>> > the consistency in highlighting.
> >>> It's only "inconsistent" if you you refuse to accept that concepts
> >>> such
> >>> as "relevance" or "emphasis" are more important the specifics of the
> >>> matching technique implemented.
> >> I'm more interested in highlighting being consistent and relevant to
> >> whatever the next action the user should perform.
> >
> > And that's cool, I maintain that this isn't broken at all by my
> > proposal. Can you explain how it would be?
>
> Hiding first-difference will lose some info when suffix is non-empty.
That's only if you don't (also trivially) change 'basic/prefix' to use
'completion-emphasis' for the common part and my
completion-secondary-emphasis for those
situations.
--
João Távora
[-- Attachment #2: Type: text/html, Size: 4713 bytes --]
next prev parent reply other threads:[~2019-11-06 8:53 UTC|newest]
Thread overview: 169+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-27 1:58 BIKESHED: completion faces Stefan Monnier
2019-10-27 11:34 ` João Távora
2019-10-27 21:45 ` Juri Linkov
2019-10-28 0:43 ` João Távora
2019-10-28 22:29 ` Juri Linkov
2019-10-28 23:31 ` João Távora
2019-10-29 21:53 ` Juri Linkov
2019-10-29 22:09 ` Dmitry Gutov
2019-10-29 22:57 ` João Távora
2019-10-29 1:12 ` Stefan Monnier
2019-10-29 21:58 ` Juri Linkov
2019-10-29 22:59 ` João Távora
2019-10-29 23:11 ` Dmitry Gutov
2019-10-30 1:49 ` Stefan Monnier
2019-11-03 21:53 ` Dmitry Gutov
2019-11-03 23:30 ` Stefan Monnier
2019-11-04 16:30 ` Dmitry Gutov
2019-11-04 18:31 ` Stefan Monnier
2019-11-04 22:52 ` João Távora
2019-11-04 23:25 ` Dmitry Gutov
2019-11-05 11:10 ` João Távora
2019-11-05 14:57 ` Dmitry Gutov
2019-11-05 15:44 ` Stefan Monnier
2019-11-05 16:30 ` João Távora
2019-11-05 21:27 ` Juri Linkov
2019-11-05 23:06 ` Stefan Monnier
2019-11-05 22:01 ` Dmitry Gutov
2019-11-06 0:18 ` Stefan Monnier
2019-11-06 8:24 ` Dmitry Gutov
2019-11-06 13:42 ` VOTE: Changing completions-common-part face's default Stefan Monnier
2019-11-06 17:16 ` João Távora
2019-11-06 17:26 ` Dmitry Gutov
2019-11-06 18:10 ` João Távora
2019-11-06 22:20 ` Dmitry Gutov
2019-11-06 22:42 ` João Távora
2019-11-06 22:57 ` Dmitry Gutov
2019-11-06 23:14 ` Stefan Monnier
2019-11-07 8:09 ` Dmitry Gutov
2019-11-07 10:27 ` João Távora
2019-11-07 13:27 ` Yuri Khan
2019-11-07 13:52 ` João Távora
2019-11-07 14:41 ` Yuri Khan
2019-11-07 14:57 ` João Távora
2019-11-07 16:04 ` Stefan Monnier
2019-11-07 16:09 ` João Távora
2019-11-07 14:43 ` Dmitry Gutov
2019-11-07 14:54 ` João Távora
2019-11-07 14:33 ` Dmitry Gutov
2019-11-07 14:44 ` João Távora
2019-11-07 14:58 ` Dmitry Gutov
2019-11-07 15:54 ` João Távora
2019-11-07 16:57 ` Drew Adams
2019-11-08 23:38 ` Dmitry Gutov
2019-11-09 0:24 ` João Távora
2019-11-09 1:53 ` Drew Adams
2019-11-09 21:57 ` Juri Linkov
2019-11-09 22:17 ` João Távora
2019-11-09 7:30 ` Eli Zaretskii
2019-11-09 11:42 ` João Távora
2019-11-09 12:04 ` Eli Zaretskii
2019-11-09 13:22 ` João Távora
2019-11-09 16:44 ` Drew Adams
2019-11-07 15:08 ` Stefan Monnier
2019-11-08 10:15 ` Dmitry Gutov
2019-11-08 19:19 ` Stefan Monnier
2019-11-08 19:43 ` Eli Zaretskii
2019-11-08 21:42 ` Stefan Monnier
2019-11-09 6:52 ` Eli Zaretskii
2019-11-09 15:25 ` Stefan Monnier
2019-11-09 15:52 ` Eli Zaretskii
2019-11-09 16:17 ` Stefan Monnier
2019-11-08 20:11 ` Dmitry Gutov
2019-11-08 22:57 ` João Távora
2019-11-06 23:12 ` Stefan Monnier
2019-11-05 16:31 ` BIKESHED: completion faces João Távora
2019-11-05 22:22 ` Dmitry Gutov
2019-11-05 23:11 ` João Távora
2019-11-06 8:18 ` Dmitry Gutov
2019-11-06 8:53 ` João Távora [this message]
2019-11-06 15:16 ` Dmitry Gutov
2019-11-06 15:56 ` João Távora
2019-11-06 10:25 ` João Távora
2019-11-06 15:11 ` Dmitry Gutov
2019-11-06 15:31 ` João Távora
2019-11-06 15:43 ` Dmitry Gutov
2019-11-06 15:48 ` João Távora
2019-11-06 16:01 ` Dmitry Gutov
2019-11-06 16:20 ` Eli Zaretskii
2019-11-06 21:36 ` Juri Linkov
2019-11-07 14:25 ` Eli Zaretskii
2019-11-07 22:40 ` Juri Linkov
2019-11-08 6:43 ` Eli Zaretskii
2019-11-06 16:12 ` Eli Zaretskii
2019-11-06 16:14 ` João Távora
2019-11-06 0:24 ` Stefan Monnier
2019-11-05 18:36 ` Stefan Monnier
2019-11-05 18:51 ` Eli Zaretskii
2019-11-05 19:16 ` João Távora
2019-11-05 19:23 ` Eli Zaretskii
2019-11-05 21:43 ` João Távora
2019-11-06 16:03 ` Eli Zaretskii
2019-11-06 16:26 ` João Távora
2019-11-06 18:07 ` Eli Zaretskii
2019-11-06 18:14 ` João Távora
2019-11-06 18:29 ` Eli Zaretskii
2019-11-06 18:48 ` João Távora
2019-11-06 20:51 ` Ergus
2019-11-07 14:08 ` Eli Zaretskii
2019-11-07 14:28 ` João Távora
2019-11-07 14:47 ` Eli Zaretskii
2019-11-07 15:00 ` João Távora
2019-11-07 15:40 ` Eli Zaretskii
2019-11-07 16:00 ` João Távora
2019-11-07 17:39 ` Eli Zaretskii
2019-11-07 17:53 ` João Távora
2019-11-07 18:16 ` Eli Zaretskii
2019-11-07 18:37 ` João Távora
2019-11-07 21:07 ` Eli Zaretskii
2019-11-07 21:43 ` João Távora
2019-11-08 6:35 ` Eli Zaretskii
2019-11-08 10:15 ` João Távora
2019-11-08 14:02 ` Eli Zaretskii
2019-11-08 15:09 ` João Távora
2019-11-08 15:33 ` Eli Zaretskii
2019-11-08 16:01 ` João Távora
2019-11-08 16:16 ` Eli Zaretskii
2019-11-08 16:27 ` João Távora
2019-11-08 17:05 ` Eli Zaretskii
2019-11-08 17:21 ` João Távora
2019-11-08 19:06 ` Eli Zaretskii
2019-11-08 22:49 ` João Távora
2019-11-09 6:57 ` Eli Zaretskii
2019-11-09 11:20 ` João Távora
2019-11-09 11:51 ` Eli Zaretskii
2019-11-09 12:14 ` João Távora
2019-11-09 12:19 ` Eli Zaretskii
2019-11-09 13:29 ` João Távora
2019-11-09 13:52 ` João Távora
2019-11-09 15:31 ` Eli Zaretskii
2019-11-09 18:51 ` João Távora
2019-11-10 9:18 ` Dmitry Gutov
2019-11-14 9:45 ` Eli Zaretskii
2019-11-14 10:40 ` Dmitry Gutov
2019-11-14 14:16 ` Eli Zaretskii
2019-11-14 14:19 ` João Távora
2019-11-14 14:42 ` Eli Zaretskii
2019-11-14 14:49 ` João Távora
2019-11-16 20:10 ` Juri Linkov
2019-11-16 23:40 ` João Távora
2019-11-17 17:27 ` Eli Zaretskii
2019-11-17 17:47 ` João Távora
2019-11-08 12:58 ` Stefan Monnier
2019-11-08 13:08 ` João Távora
2019-11-08 14:07 ` Eli Zaretskii
2019-11-06 20:34 ` Drew Adams
2019-11-06 20:42 ` Eli Zaretskii
2019-11-05 21:40 ` Dmitry Gutov
2019-11-05 23:02 ` Stefan Monnier
2019-11-05 18:54 ` João Távora
2019-11-05 19:07 ` Stefan Monnier
2019-11-05 21:39 ` Dmitry Gutov
2019-11-05 21:54 ` João Távora
2019-11-05 21:55 ` Dmitry Gutov
2019-11-05 21:54 ` Dmitry Gutov
2019-11-05 21:58 ` João Távora
2019-11-05 22:03 ` Dmitry Gutov
2019-11-05 22:07 ` João Távora
[not found] <<jwvwocr7yt6.fsf-monnier+emacs@gnu.org>
[not found] ` <<b7e361ee-6fc4-b52e-3bd2-1f6862bbcf23@yandex.ru>
[not found] ` <<jwva79jyqrp.fsf-monnier+emacs@gnu.org>
[not found] ` <<4c5631d4-9dfd-04c6-c573-b83c67fcc2fa@yandex.ru>
[not found] ` <<jwvd0e8k0gi.fsf-monnier+emacs@gnu.org>
[not found] ` <<c6718807-b3fc-5bed-6a4b-b1ccc52649de@yandex.ru>
[not found] ` <<87pni7p83l.fsf@gmail.com>
[not found] ` <<fdec6d86-e1b9-19cb-18aa-ef835972f315@yandex.ru>
[not found] ` <<jwv8soub2u5.fsf-monnier+emacs@gnu.org>
[not found] ` <<83h83ignrz.fsf@gnu.org>
[not found] ` <<CALDnm50SjOOKOiZVmdNJc8zVsfZXbPQcBOYoeJe9MbO62Lartw@mail.gmail.com>
[not found] ` <<83ftj2gma8.fsf@gnu.org>
[not found] ` <<87zhhaxalt.fsf@gmail.com>
[not found] ` <<83bltpgffr.fsf@gnu.org>
[not found] ` <<CALDnm50YW0cjdN1Z7eJs6K-dXpfwp1VOe3NPi6WH+iF1oU1HmA@mail.gmail.com>
[not found] ` <<83tv7gg9oz.fsf@gnu.org>
[not found] ` <<7916c845-1ce2-4abd-937f-09036cd60bec@default>
[not found] ` <<83pni4g2iq.fsf@gnu.org>
2019-11-06 21:40 ` Drew Adams
2019-11-07 14:19 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CALDnm501EyFw4CJA1zmno8Odf06dcddFRW4m16y62KS5WLdkWQ@mail.gmail.com \
--to=joaotavora@gmail.com \
--cc=dgutov@yandex.ru \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.