From: "João Távora" <joaotavora@gmail.com>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: Daniel Mendler <mail@daniel-mendler.de>, 48545@debbugs.gnu.org
Subject: bug#48545: 28.0.50; `icomplete-vertical-mode` does not support the `group-function`
Date: Sat, 21 Aug 2021 13:42:46 +0100 [thread overview]
Message-ID: <874kbjq88p.fsf@gmail.com> (raw)
In-Reply-To: <54ad79de-d527-0462-edaa-eee56c724565@yandex.ru> (Dmitry Gutov's message of "Sat, 21 Aug 2021 15:01:06 +0300")
Dmitry Gutov <dgutov@yandex.ru> writes:
> On 21.08.2021 12:40, João Távora wrote:
>> Yes, I think you see what you mean. But I also imagine it would be
>> terrifyingly confusing for a user of a scrolling dropdown to see
>> candidates jump back and forth into their groups as the user scrolls
>> down to see a new candidate and hide another. If what I imagine isn't
>> what you mean, maybe you could code something up and show what you mean.
>
> I suppose yes, if you only group candidates that are visible on the
> screen, it could lead to jumping. Good point. Then I would suggest to
> go back to "global" grouping.
Then do. Go back to that experiment and its drawbacks and actually
prototype it the way you envision it. Then share results here.
> The order of completions coming from xref is essentially random. Yes,
> they are grouped by files (usually), but the files are not coming in
> any particular order. So I would prefer not to skip the sorting step.
> Of course, there might be different scenarios and preferences in that
> regard.
If you sort the groups but not _inside_ the groups, you can skip the
expensive sorting and still keep some order. Though in xref nothing is
particularly expensive anyway.
> Okay. Sorting seems to indeed be costly in this case (if I trust your
> measurements).
You can do them yourself. I posted what I measured from. If it's not
clear, you should let me know.
> Sorting is part of the default completion behavior (with grouping or
> not). You want to remove it instead of fixing?
It's very simple: As I've explained some times already, I contend, and
Kévin at least seems to agree, is that when there grouping the current
slow 'a+l+r' sorting is not particularly useful. At least the "r ===
recently" part seems completely useful there. But the 'a+l' also seem
to be kinda lame, at least for xref and C-x 8 RET.
Now, if one agrees that sorting not particularly useful when there is
grouping and that is significantly slows things down, then there is a
good case for removing it when there is grouping. It's super simple.
>>> Try disabling grouping. Is completion still slow? Then it's a problem
>>> with sorting speed that needs to be solved separately anyway.
>> icomplete.el doesn't do any grouping, it merely prints the grouping
>> information as headers for the few matches that it will print.
>> completion-all-sorted-completions also doesn't care about grouping. So
>> there's nothing to disable in that regard.
>
> That addressed 3 words out of 20.
How in heck could I adress the remaining ones which refer to the first
three if those three were nonsense?
Look, you're asking me to do vaguely worded experiments that you can
perfectly run yourself. If you understand what you mean, go run them
yourself, document your findings and share them here for others to work
from. It'll save us all time.
>>>> This is flex doing its thing.
>>> Yup. This is what I suggested to change.
>> As I explained two or three times now: you can. In a new
>> dmitry-flex
>> style. That style is only a few lines of code away, I suppose. Or a
>> defcustom, if you prefer those. The current behaviour for 'flex' is the
>> correct one. It was conceived like this. flex scoring trumps grouping,
>> table orders, etc... If you don't like this you can change this, like
>> everything in Emacs.
>
> Nothing I suggested should call for a change in completion style.
Then I misunderstood, again. You did suggest changes to the 'flex'
completion style in another bug thread, I naturally though you meant
that. Here, you wrote "this is what I suggested to change" after I
described how the flex completion style worked. You provide no accurate
description or code of what you want changed. If you weren't a
programmer or especially versed in Elisp, I would comprehend. Given
that you are, it is baffling, time-wasting and quite tiring. I'll just
stop answering your hypothetical questions.
João
next prev parent reply other threads:[~2021-08-21 12:42 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-20 18:56 bug#48545: 28.0.50; `icomplete-vertical-mode` does not support the `group-function` Daniel Mendler
2021-08-17 12:17 ` João Távora
2021-08-18 9:38 ` Kévin Le Gouguec
2021-08-18 9:55 ` João Távora
2021-08-19 11:18 ` João Távora
2021-08-19 12:38 ` Kévin Le Gouguec
2021-08-19 13:29 ` João Távora
2021-08-19 19:36 ` Kévin Le Gouguec
2021-08-19 15:02 ` Dmitry Gutov
2021-08-19 19:41 ` João Távora
2021-08-19 22:37 ` Dmitry Gutov
2021-08-19 23:39 ` João Távora
2021-08-19 23:51 ` Dmitry Gutov
2021-08-20 10:35 ` João Távora
2021-08-21 2:09 ` Dmitry Gutov
2021-08-21 9:40 ` João Távora
2021-08-21 12:01 ` Dmitry Gutov
2021-08-21 12:42 ` João Távora [this message]
2021-08-22 13:52 ` Dmitry Gutov
2021-08-22 15:44 ` João Távora
2021-08-21 0:24 ` João Távora
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=874kbjq88p.fsf@gmail.com \
--to=joaotavora@gmail.com \
--cc=48545@debbugs.gnu.org \
--cc=dgutov@yandex.ru \
--cc=mail@daniel-mendler.de \
/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.