From: Daniel Mendler <mail@daniel-mendler.de>
To: "Dmitry Gutov" <dgutov@yandex.ru>, "João Távora" <joaotavora@gmail.com>
Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org>,
monnier@iro.umontreal.ca, Juri Linkov <juri@linkov.net>
Subject: Re: [PATCH] (icomplete-vertical-mode): Add support for affixations and, annotations
Date: Fri, 28 May 2021 15:14:48 +0200 [thread overview]
Message-ID: <6937cf53-98fc-98ff-3026-b5eccf461a76@daniel-mendler.de> (raw)
In-Reply-To: <a33f806d-25a5-8967-d816-23cca0aac640@yandex.ru>
On 5/28/21 2:44 PM, Dmitry Gutov wrote:
> On 28.05.2021 14:55, Daniel Mendler wrote:
>> But there should also be a
>> way to request all available fields, such that a UI can show the ones it
>> supports (but not based on name but based on type!).
> I get that it could be seen as convenient, but why can't the frontend
> just request the fields it supports, one after the other?
I am not particularly fixated on the specifics of how the frontend
retrieves the fields from the backend. I want something different - I
want the frontend to have the ability to request all field of a certain
type, for example strings.
The frontend cannot request fields by names of which it does not know
the name. This is the flaw of the current proposal.
Then a tablist frontend could easily display those and allow sorting and
filtering by column. You may be aware of Embark, which already provides
a tablist frontend, but only with the columns candidate and suffix as of
now. It would be great to have more columns there, which are specific to
the backend.
> IME the overhead for the additional function calls is negligible, as
> long as we're rendering only a dozen items or so, and not the full
> collection (with thousands of items or more).
>
> But maybe you want a collection of particular bits of data,
> pre-formatted for display in a table, and basically not useful for
> anything else. You could call it :info-columns-function, something like
> that. Which would allow frontends not even care about which columns are
> there, or what they contain, and just print them in the indicated order.
>
> I'm not a fan of having a backend drive presentation like that, but as
> long as nobody argues for elimination of "functional" attributes in
> favor of the info presented in info-columns-function (meaning, I could
> mostly ignore that addition), I'm not going to fight it.
Why do you think backend drivers the presentation then? The backend says
I have these fields associated with the particular candidate, please
display them as you wish, for example As a spreadsheet/table or as an
additional popup in Company.
The current proposal is such that the frontend must explicitly request
the fields it would like to see, which precludes the use case I
described above.
> But also consider the possibility of having that logic extracted:
>
> - Have c-a-p-f elements only include the "functional" attributes.
> - Add a middle layer, something like an option
> completion-info-columns-function, which takes (COMPLETION
> EXTRA-PROPERTIES) and returns a list of columnar instructions in the
> format you originally wanted. EXTRA-PROPERTIES is the value of
> completion-extra-properties when called by the default UI.
This sounds a bit complicated.
> A possible drawback is that a completion function cannot unilaterally
> add a new column without a corresponding change in
> completion-info-columns-function. But that might arguably be a good thing.
From my experience this is not a good thing. The completion table should
have the ability to add arbitrary annotation columns depending on the
data. There is a use case for this (Marginalia or ivy-rich) and from
what I've heard, people like to have such rich annotations. It helps a
lot with the self documentation aspect of Emacs.
And now if we would have an additional tablist frontend, the UI would be
even better, since people could take a look at the annotation fields and
sort/filter/hide each column separately like in a usual spreadsheet.
Daniel
next prev parent reply other threads:[~2021-05-28 13:14 UTC|newest]
Thread overview: 178+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-22 21:00 [PATCH] (icomplete-vertical-mode): Add support for affixations and, annotations Daniel Mendler
2021-05-23 9:37 ` João Távora
2021-05-23 11:10 ` bug#48013: " Daniel Mendler
2021-05-23 19:55 ` João Távora
2021-05-23 20:14 ` Daniel Mendler
2021-05-23 21:04 ` João Távora
2021-05-23 21:31 ` Daniel Mendler
2021-05-23 21:54 ` João Távora
2021-05-23 22:38 ` Daniel Mendler
2021-05-24 22:46 ` João Távora
2021-05-25 3:06 ` Daniel Mendler
2021-05-25 9:21 ` João Távora
2021-05-26 18:12 ` João Távora
2021-05-26 19:32 ` Daniel Semyonov via Emacs development discussions.
2021-05-23 23:04 ` Daniel Mendler
2021-05-23 23:39 ` Stefan Monnier
2021-05-24 22:54 ` João Távora
2021-05-25 1:38 ` Stefan Monnier
2021-05-25 8:39 ` João Távora
2021-05-25 11:00 ` Gregory Heytings
2021-05-26 0:03 ` João Távora
2021-05-25 3:12 ` Daniel Mendler
2021-05-25 9:25 ` João Távora
2021-05-24 19:05 ` João Távora
2021-05-24 19:13 ` João Távora
2021-05-24 19:53 ` Daniel Mendler
2021-05-24 23:04 ` João Távora
2021-05-25 3:14 ` Daniel Mendler
2021-05-25 9:31 ` João Távora
2021-05-25 9:40 ` Daniel Mendler
2021-05-24 22:05 ` Dmitry Gutov
2021-05-23 23:37 ` Juri Linkov
2021-05-23 23:39 ` Juri Linkov
2021-05-24 10:26 ` Daniel Mendler
2021-05-24 22:07 ` Juri Linkov
2021-05-25 2:53 ` Daniel Mendler
2021-05-25 8:30 ` João Távora
2021-05-25 16:59 ` Juri Linkov
2021-05-25 17:46 ` João Távora
2021-05-25 20:37 ` Juri Linkov
2021-05-26 21:45 ` Juri Linkov
2021-05-26 22:20 ` Dmitry Gutov
2021-05-26 23:17 ` João Távora
2021-05-27 1:06 ` Dmitry Gutov
2021-05-27 7:29 ` João Távora
2021-05-27 13:15 ` Dmitry Gutov
2021-05-27 14:19 ` João Távora
2021-05-27 18:52 ` Dmitry Gutov
2021-05-27 20:58 ` João Távora
2021-05-28 8:08 ` Daniel Mendler
2021-05-28 8:34 ` João Távora
2021-05-28 9:06 ` Daniel Mendler
2021-05-28 10:09 ` João Távora
2021-05-28 11:16 ` Daniel Mendler
2021-05-28 11:41 ` João Távora
2021-05-28 11:55 ` Daniel Mendler
2021-05-28 12:15 ` João Távora
2021-05-28 12:32 ` Daniel Mendler
2021-05-28 13:17 ` João Távora
2021-05-28 13:55 ` Daniel Mendler
2021-05-28 18:46 ` Juri Linkov
2021-05-29 8:11 ` Daniel Mendler
2021-05-28 12:44 ` Dmitry Gutov
2021-05-28 13:14 ` Daniel Mendler [this message]
2021-05-28 13:57 ` Dmitry Gutov
2021-05-28 14:10 ` Daniel Mendler
2021-05-28 14:57 ` Dmitry Gutov
2021-05-28 16:01 ` Daniel Mendler
2021-06-01 9:56 ` João Távora
2021-06-01 11:27 ` Daniel Mendler
2021-06-01 12:00 ` João Távora
2021-06-01 12:37 ` Daniel Mendler
2021-06-01 14:30 ` João Távora
2021-06-01 14:40 ` Daniel Mendler
2021-06-01 15:49 ` João Távora
2021-06-01 16:00 ` Daniel Mendler
2021-06-01 18:47 ` João Távora
2021-06-01 19:03 ` Daniel Mendler
2021-06-01 22:32 ` João Távora
2021-06-01 20:22 ` Stefan Monnier
2021-06-01 22:39 ` João Távora
2021-06-02 2:40 ` Stefan Monnier
2021-06-02 7:53 ` João Távora
2021-06-02 13:48 ` Stefan Monnier
2021-06-01 23:04 ` Dmitry Gutov
2021-06-01 23:22 ` João Távora
2021-06-01 23:29 ` João Távora
2021-06-01 23:46 ` Dmitry Gutov
2021-06-02 0:02 ` João Távora
2021-06-02 11:48 ` Dmitry Gutov
2021-06-02 12:59 ` João Távora
2021-06-02 18:29 ` Dmitry Gutov
2021-06-02 18:52 ` João Távora
2021-06-02 14:19 ` complexity in minibuffer (was: (icomplete-vertical-mode): Add support for affixations and, annotations) Stefan Monnier
2021-06-02 14:33 ` João Távora
2021-06-02 15:06 ` complexity in minibuffer Stefan Monnier
2021-06-02 15:20 ` João Távora
2021-06-02 15:29 ` Dmitry Gutov
2021-06-02 15:37 ` João Távora
2021-06-02 18:11 ` Dmitry Gutov
2021-06-02 18:30 ` João Távora
2021-06-02 15:38 ` Stefan Monnier
2021-06-02 15:45 ` João Távora
2021-06-02 15:59 ` Daniel Mendler
2021-06-02 16:29 ` João Távora
2021-06-02 15:53 ` Daniel Mendler
2021-06-02 18:31 ` Dmitry Gutov
2021-06-02 19:03 ` João Távora
2021-06-02 20:15 ` Dmitry Gutov
2021-06-02 22:11 ` Juri Linkov
2021-06-03 9:04 ` João Távora
2021-06-03 20:28 ` Juri Linkov
2021-06-01 15:58 ` [PATCH] (icomplete-vertical-mode): Add support for affixations and, annotations Stefan Monnier
2021-06-01 16:04 ` Daniel Mendler
2021-06-02 5:17 ` tumashu
2021-06-02 7:48 ` João Távora
2021-06-02 10:40 ` Dmitry Gutov
2021-06-02 11:04 ` João Távora
2021-06-02 11:28 ` Dmitry Gutov
2021-06-02 11:33 ` João Távora
2021-06-02 12:31 ` Dmitry Gutov
2021-06-02 13:16 ` João Távora
2021-06-05 1:48 ` Dmitry Gutov
2021-06-05 9:21 ` João Távora
2021-06-05 23:06 ` Dmitry Gutov
2021-06-05 23:25 ` João Távora
2021-06-05 4:23 ` Stefan Monnier
2021-06-05 9:26 ` João Távora
2021-06-05 13:02 ` Ergus
2021-06-05 23:47 ` Dmitry Gutov
2021-06-06 2:30 ` Stefan Monnier
2021-06-02 13:38 ` Stefan Monnier
2021-06-02 14:11 ` Dmitry Gutov
2021-06-02 14:54 ` Stefan Monnier
2021-06-02 15:07 ` João Távora
2021-06-05 1:08 ` Dmitry Gutov
2021-06-05 9:16 ` João Távora
2021-06-01 14:47 ` Gregory Heytings
2021-06-01 14:53 ` Daniel Mendler
2021-06-01 14:58 ` Gregory Heytings
2021-06-01 15:06 ` Daniel Mendler
2021-06-01 15:33 ` Gregory Heytings
2021-06-01 15:41 ` Daniel Mendler
2021-06-01 15:09 ` João Távora
2021-06-01 15:12 ` Daniel Mendler
2021-06-01 15:06 ` João Távora
[not found] ` <b49749e34d620592d83a@heytings.org>
[not found] ` <CALDnm53Wdnp0yAu6uQd8A=6-uLArCBEdj4F+aVzUdFOT00XMWw@mail.gmail.com>
[not found] ` <b49749e34dc4e4287593@heytings.org>
[not found] ` <87lf7t8wfz.fsf@gmail.com>
2021-06-01 15:24 ` Gregory Heytings
2021-06-01 23:05 ` João Távora
2021-05-24 23:02 ` Dmitry Gutov
2021-05-24 23:04 ` Dmitry Gutov
2021-05-23 21:35 ` Daniel Mendler
2021-05-23 22:42 ` Dmitry Gutov
2021-05-23 23:33 ` Stefan Monnier
2021-05-23 23:42 ` Juri Linkov
2021-05-24 23:24 ` Dmitry Gutov
2021-05-23 23:35 ` Juri Linkov
2021-05-24 3:23 ` Stefan Monnier
2021-05-24 10:34 ` Daniel Mendler
2021-05-24 16:22 ` Caching where-is-internal (was: (icomplete-vertical-mode): Add support for affixations and, annotations) Stefan Monnier
2021-05-24 16:31 ` Daniel Mendler
2021-05-24 19:53 ` Caching where-is-internal Stefan Monnier
2021-05-24 20:07 ` Daniel Mendler
2021-05-24 20:33 ` Stefan Monnier
2021-05-24 20:45 ` Daniel Mendler
2021-05-24 21:44 ` Stefan Monnier
2021-05-24 21:52 ` [PATCH] (icomplete-vertical-mode): Add support for affixations and, annotations Juri Linkov
2021-05-24 22:41 ` João Távora
2021-05-25 1:27 ` Stefan Monnier
2021-05-24 22:37 ` João Távora
2021-05-25 16:53 ` Juri Linkov
2021-05-25 17:24 ` Stefan Monnier
2021-05-25 17:40 ` João Távora
2021-05-25 20:01 ` Stefan Monnier
2021-05-25 20:27 ` Dmitry Gutov
2021-05-25 20:46 ` João Távora
-- strict thread matches above, loose matches on Subject: below --
2021-06-02 8:25 Manuel Uberti
2021-06-02 11:07 ` João Távora
2021-06-02 11:29 ` Manuel Uberti
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=6937cf53-98fc-98ff-3026-b5eccf461a76@daniel-mendler.de \
--to=mail@daniel-mendler.de \
--cc=dgutov@yandex.ru \
--cc=emacs-devel@gnu.org \
--cc=joaotavora@gmail.com \
--cc=juri@linkov.net \
--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.