all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: help-gnu-emacs@gnu.org
Subject: Re: Completion: display of candidates
Date: Mon, 18 Feb 2019 13:05:14 -0500	[thread overview]
Message-ID: <jwvtvh1dm0a.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87mumtno2f.fsf@gnu.org> (Tassilo Horn's message of "Mon, 18 Feb 2019 15:55:36 +0100")

>>> 1. The docs for completion-table-dynamic say that the given function
>>>    should return an alist
>> That's an error: the return value should be a completion table.
> So a "list of strings or cons cells, an obarray, a hash table, or a
> completion function".

Right.  With the caveat that this function will not be consulted for
`completion-metadata` and `completion-boundaries` queries.

I just pushed a corresponding patch to `emacs-26`.

> When you know what to look for, you'll find it
> (in the info docs for try-completion).

It should also be described in `(elisp)Programmed Completion', as
suggested in the docstring.

> Yes, I could.  I just thought that there's probably some kind of
> metadata I could attach for customizing the display.

It can't be "display only" since the user expects to type what is
displayed, so it also affects what the user types.

BTW, you might be interested in the GNU ELPA package `uniquify-files`
which tries to do almost exactly what you suggest (it requires a few
ugly hacks currently, but we hope to be able to improve the
minibuffer.el infrastructure so those can be dispensed with).

> So I guess the best thing to do is to format the entries as you suggest
> and put a text property on the text holding the absolute path so that I
> don't have to reconstruct it myself which could be error-prone if the
> directory or basename contain parens themselves.

You can't really rely on those text-properties, because the user may
have typed that text by hand.


        Stefan



  reply	other threads:[~2019-02-18 18:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-18  7:54 Completion: display of candidates Tassilo Horn
2019-02-18 13:26 ` Stefan Monnier
2019-02-18 14:55   ` Tassilo Horn
2019-02-18 18:05     ` Stefan Monnier [this message]
2019-02-18 19:24       ` Tassilo Horn
2019-02-18 20:48         ` Stefan Monnier
2019-02-19  7:27           ` Tassilo Horn
2019-02-19 15:28             ` Stefan Monnier
     [not found]               ` <87imxe1pfs.fsf@gnu.org>
2019-02-20 16:54                 ` Stefan Monnier

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=jwvtvh1dm0a.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=help-gnu-emacs@gnu.org \
    /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.