From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: Emacs completion matches selection UI Date: Tue, 19 Nov 2013 02:47:11 +0200 Organization: JURTA Message-ID: <87bo1h6wvk.fsf@mail.jurta.org> References: <87fvqtg02v.fsf@flea.lifelogs.com> <877gc5fm30.fsf@flea.lifelogs.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1384826407 1904 80.91.229.3 (19 Nov 2013 02:00:07 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 19 Nov 2013 02:00:07 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Nov 19 03:00:12 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Viabr-0002LL-Mm for ged-emacs-devel@m.gmane.org; Tue, 19 Nov 2013 03:00:11 +0100 Original-Received: from localhost ([::1]:46687 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Viabr-0003PA-6Q for ged-emacs-devel@m.gmane.org; Mon, 18 Nov 2013 21:00:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40941) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Viabj-0003LH-Ki for emacs-devel@gnu.org; Mon, 18 Nov 2013 21:00:09 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Viabd-0001DB-Lr for emacs-devel@gnu.org; Mon, 18 Nov 2013 21:00:03 -0500 Original-Received: from ps18281.dreamhost.com ([69.163.218.105]:50520 helo=ps18281.dreamhostps.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Viabd-0001D1-Ea for emacs-devel@gnu.org; Mon, 18 Nov 2013 20:59:57 -0500 Original-Received: from localhost.jurta.org (ps18281.dreamhostps.com [69.163.218.105]) by ps18281.dreamhostps.com (Postfix) with ESMTP id 81CD8258B9E935 for ; Mon, 18 Nov 2013 17:59:55 -0800 (PST) In-Reply-To: <877gc5fm30.fsf@flea.lifelogs.com> (Ted Zlatanov's message of "Mon, 18 Nov 2013 16:15:31 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-Received-From: 69.163.218.105 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:165349 Archived-At: > The completion system is fine. The selection of matches is the problem: > > 1) see a new buffer popup with minimal help text and no highlighting > 2) left, right, up, down don't work > 3) realize problem, switch to candidates buffer (mouse click or `C-x o') > 4) select candidate you want, get popped in original buffer > > That's not simple! It's not intuitive either, forcing me to use the > mouse unless I've read the manual node referenced above. > > An alternative UI doesn't have to be fancy or graphical, only allow me > to select from among the candidates immediately, without switching > buffers, using the intuitive keys. I hope that explains my request better. In modern UIs, auto-completion works such a way that after you type text it pops up a drop-down menu with a list of candidates where you can select one by using and arrow keys. How this could map to Emacs? The first difference is that in Emacs the text entry field (the minibuffer) is at the bottom of the screen, so the drop-down menu should pop up upwards using the display-window property `near-minibuffer' (this will display completions nicely aligned with the contents of the minibuffer). Another difficulty is that in the minibuffer and arrow keys are bound to previous-history-element and next-history-element, so they can't be used to select an element from the list of candidates. One solution is to automatically display the list of completions when the user starts typing in the minibuffer and allow and to navigate the list of completions if the minibuffer contents is not empty. Otherwise, and will browse the history. Since this is quite obtrusive change it might require special mode much like ido-mode but closer to auto-completion provided by other GUI applications.