emacs-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] EUDC email addresses via completion-at-point in message-mode


From: Eric Abrahamsen
Subject: Re: [PATCH] EUDC email addresses via completion-at-point in message-mode
Date: Wed, 13 Apr 2022 18:44:38 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Alexander Adolf <alexander.adolf@condition-alpha.com> writes:

> Hello,
>
> when switching to a new in-buffer completion user interface package
> which is solely based on completion-at-point, I observed that email
> address completion in message-mode happens in the minibuffer, regardless
> of what UI on top of completion-at-point I use. Also, EUDC's ability to
> aggregate search results from several servers, which was recently added
> with commit 0470a4a939772c4bd25123b15f5eadab41f8bee5, was not kicking
> in, i.e. I was presented results from a single EUDC server only.
>
> Browsing through message.el quickly brought me to the sixth of the 21
> FIXMEs in that file, which reads on line 3183:
>
>   ;; FIXME: merge the completion tables from ecomplete/bbdb/...?
>   ;;(add-hook 'completion-at-point-functions #'message-ecomplete-capf nil t)
>   (add-hook 'completion-at-point-functions #'message-completion-function nil 
> t)
>
> Thus, the most straightforward solution to my problem seemed to make a
> new EUDC function that can be added to completion-at-point-functions,
> and to update message-mode to actually add that function to
> completion-at-point-functions. This is what the below attached patch
> does.

Thank you for working on this! I think everyone can agree that the
current setup is tricky to work within. As the author of (yet another)
contact management package, I do what I assume anyone else would do:
clobber the binding of TAB altogether.

I understand that EUDC has the capability of combining results from
multiple backends, but completion-at-point also has those capabilities,
and personally I would much prefer to see message-mode make use of one
of completion-table combining functions. Better to be wrapped inside one
burrito than two!

The `message-tab' would still need to check where it's been called and
make a decision before calling `completion-at-point', but it seems much
cleaner for each package to provide a function that's suitable for use
in a combined capf completion table, rather than writing an adapter for
EUDC.

What do you think?

Eric



reply via email to

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