From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: Completion: display of candidates Date: Mon, 18 Feb 2019 13:05:14 -0500 Message-ID: References: <877edx8rbh.fsf@gnu.org> <87mumtno2f.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="29655"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Feb 18 19:05:49 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gvnIa-0007aR-Lt for geh-help-gnu-emacs@m.gmane.org; Mon, 18 Feb 2019 19:05:48 +0100 Original-Received: from localhost ([127.0.0.1]:34819 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gvnIZ-0004GK-JH for geh-help-gnu-emacs@m.gmane.org; Mon, 18 Feb 2019 13:05:47 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:34175) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gvnI5-0004Dq-6Z for help-gnu-emacs@gnu.org; Mon, 18 Feb 2019 13:05:18 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gvnI4-0004bg-5h for help-gnu-emacs@gnu.org; Mon, 18 Feb 2019 13:05:17 -0500 Original-Received: from pruche.dit.umontreal.ca ([132.204.246.22]:56050) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gvnI3-0004XU-TZ for help-gnu-emacs@gnu.org; Mon, 18 Feb 2019 13:05:16 -0500 Original-Received: from milanesa.home (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id x1II5Ehb002582; Mon, 18 Feb 2019 13:05:14 -0500 Original-Received: by milanesa.home (Postfix, from userid 20848) id 6681466112; Mon, 18 Feb 2019 13:05:14 -0500 (EST) In-Reply-To: <87mumtno2f.fsf@gnu.org> (Tassilo Horn's message of "Mon, 18 Feb 2019 15:55:36 +0100") X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 2 Rules triggered EDT_SA_DN_PASS=0, RV6485=0 X-NAI-Spam-Version: 2.3.0.9418 : core <6485> : inlines <7018> : streams <1813414> : uri <2798374> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 132.204.246.22 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:119443 Archived-At: >>> 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