From: Daniel Mendler <mail@daniel-mendler.de>
To: Juri Linkov <juri@linkov.net>
Cc: emacs-devel@gnu.org
Subject: Re: Simplification of `affixation-function`
Date: Sat, 24 Apr 2021 23:17:56 +0200 [thread overview]
Message-ID: <9ca07e0f-48f9-ba21-068c-694453fc79d8@daniel-mendler.de> (raw)
In-Reply-To: <87y2d777r2.fsf@mail.linkov.net>
On 4/24/21 10:22 PM, Juri Linkov wrote:
> If the logic of specifying the elements is too confusing,
> then such simplification is welcome.
> Please note that only the documentation could be changed
> to remove mentions of the ability to specify only suffix
> for `affixation-function`. But code will remain unchanged
> because internally it depends on the predefined order of elements:
> “completion + suffix” or “completion + prefix + suffix”.
> There is no backward-compatible way to change this order.
I think it is slightly confusing and unnecessarily complicated. But if
you want to retain backward compatibility, there is no way back. However
since the `affixation-function` has only been introduced recently, there
should still be a time window to change the definition? There is no
released version of Emacs with `affixation-function` support.
(If it is decided to change the definition it should be feasible to go
over all ELPA/MELPA and apply patches to all packages which already make
use of the `affixation-function`.)
> More than three elements are already supported since e.g. the
> total length is calculated as a sum of lengths of all strings:
>
> (apply #'+ (mapcar #'string-width str))
I see. So all the later elements are suffixes and concatenated? This
seems like an unnecessary completion given that the completion-table
implementor can already concatenate all the suffixes. Or is the idea
that the UI can show all these suffixes in some kind of table-like view?
It seems that there is at least need for better documentation.
My proposal is to only allow three-element lists and remove support to
specify only the suffix.
And one could keep the door open by allowing more than three element
lists for additional annotations. Let's say you want to specify some
additional help/tool-tip text for example.
Daniel
next prev parent reply other threads:[~2021-04-24 21:17 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-24 17:35 Simplification of `affixation-function` Daniel Mendler
2021-04-24 20:22 ` Juri Linkov
2021-04-24 21:17 ` Daniel Mendler [this message]
2021-04-24 21:41 ` Juri Linkov
2021-04-24 22:01 ` Daniel Mendler
2021-04-24 22:34 ` Stefan Monnier
2021-04-24 22:48 ` Dmitry Gutov
2021-04-24 22:56 ` Daniel Mendler
2021-04-25 17:58 ` Dmitry Gutov
2021-04-25 18:08 ` Daniel Mendler
2021-04-25 22:31 ` Dmitry Gutov
2021-04-27 16:48 ` Juri Linkov
2021-04-27 17:39 ` Daniel Mendler
2021-04-27 18:11 ` Juri Linkov
2021-04-27 18:40 ` Daniel Mendler
2021-04-28 0:20 ` Dmitry Gutov
2021-04-28 19:59 ` Juri Linkov
2021-04-29 2:15 ` Dmitry Gutov
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9ca07e0f-48f9-ba21-068c-694453fc79d8@daniel-mendler.de \
--to=mail@daniel-mendler.de \
--cc=emacs-devel@gnu.org \
--cc=juri@linkov.net \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).