unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Tassilo Horn <tsdh@gnu.org>
To: Michael Heerdegen <michael_heerdegen@web.de>
Cc: help-gnu-emacs@gnu.org
Subject: Re: My read-buffer-function doesn't work when called by switch-to-buffer
Date: Sun, 12 Mar 2023 19:51:33 +0100	[thread overview]
Message-ID: <87h6upyenm.fsf@gnu.org> (raw)
In-Reply-To: <874jqq63vn.fsf@web.de>

Michael Heerdegen <michael_heerdegen@web.de> writes:

Hi Michael,

> I think the lesson is that it's better to avoid nested
> `completing-read' calls.  It is probably not intended to allow to
> change the completion table in `read-buffer-function'.

Seems so but it nevertheless works extremely well since I strongly
stated my wish by appending to minibuffer-with-setup-hook. :-)

> Maybe an advice of a higher level function would better fit your
> wished-for behavior.

Do you have one in mind?

>> And a bonus question: I use vertico + marginalia, so the buffers (and
>> files in C-x C-f, variables/functions in C-h v/f,...) are nicely
>> annotated, e.g., with the buffer's mode or the file's permissions.
>> What do I have to do that the recentf candidates also get those
>> niceties?  Wrap the recentf completion table so that it responds to
>> metadata requests?
>
> Dunno.  I don't use these packages.  Maybe using :annotation-function
> in `completion-extra-properties' also works?  How do these packages
> achieve this?

I haven't checked their implementation but completion-extra-properties
is nil and the metadata completion requests also don't return an
annotation-function or affixation-function.  Nevertheless, all standard
completions are annotated.  I'll have a look how marginalia does it.

Anyway, I've played a bit with responding to metadata requests and it
looks like it's not really suited for my goal because it seems to assume
that the metadata won't change (e.g., category from buffer to file)
during a single completion which is obviously a reasonable assumption.

Bye,
Tassilo



  reply	other threads:[~2023-03-12 18:51 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-10 21:10 My read-buffer-function doesn't work when called by switch-to-buffer Tassilo Horn
2023-03-11  0:32 ` Michael Heerdegen
2023-03-11  8:58   ` Tassilo Horn
2023-03-11 20:40     ` `when-let' (was: Re: My read-buffer-function doesn't work when called by switch-to-buffer) Emanuel Berg
2023-03-12  3:32     ` My read-buffer-function doesn't work when called by switch-to-buffer Michael Heerdegen
2023-03-12 18:51       ` Tassilo Horn [this message]
2023-03-13  0:32         ` Michael Heerdegen
2023-03-15  9:06           ` Tassilo Horn
2023-03-15 18:57             ` Michael Heerdegen
2023-03-16  9:18               ` Tassilo Horn
2023-03-16 16:59                 ` Tassilo Horn
2023-03-16 23:46                 ` Michael Heerdegen
2023-03-17  7:04                   ` Tassilo Horn

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=87h6upyenm.fsf@gnu.org \
    --to=tsdh@gnu.org \
    --cc=help-gnu-emacs@gnu.org \
    --cc=michael_heerdegen@web.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.
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).