From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.devel Subject: Re: Emacs completion matches selection UI Date: Mon, 25 Nov 2013 08:28:56 -0500 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <87txf0390n.fsf@flea.lifelogs.com> References: <87fvqtg02v.fsf@flea.lifelogs.com> <877gc5fm30.fsf@flea.lifelogs.com> <87k3g47m7b.fsf@yandex.ru> <528B6F11.7070607@yandex.ru> <87y54ke8v3.fsf@flea.lifelogs.com> <87li0kdrsz.fsf@flea.lifelogs.com> <878uwi8t3r.fsf@mail.jurta.org> <83ob5ee7ow.fsf@gnu.org> <87d2ltl2if.fsf@mail.jurta.org> <8338moevm3.fsf@gnu.org> <8761rkaa5e.fsf@flea.lifelogs.com> Reply-To: emacs-devel@gnu.org NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1385386110 9406 80.91.229.3 (25 Nov 2013 13:28:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 25 Nov 2013 13:28:30 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Nov 25 14:28:35 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 1VkwDK-0006fV-L5 for ged-emacs-devel@m.gmane.org; Mon, 25 Nov 2013 14:28:34 +0100 Original-Received: from localhost ([::1]:52642 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VkwDK-0000zg-86 for ged-emacs-devel@m.gmane.org; Mon, 25 Nov 2013 08:28:34 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48365) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VkwDC-0000zO-FA for emacs-devel@gnu.org; Mon, 25 Nov 2013 08:28:31 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VkwD7-0005iQ-8k for emacs-devel@gnu.org; Mon, 25 Nov 2013 08:28:26 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:59752) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VkwD7-0005iL-1U for emacs-devel@gnu.org; Mon, 25 Nov 2013 08:28:21 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VkwD3-0006XM-AQ for emacs-devel@gnu.org; Mon, 25 Nov 2013 14:28:17 +0100 Original-Received: from c-98-229-61-72.hsd1.ma.comcast.net ([98.229.61.72]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 25 Nov 2013 14:28:17 +0100 Original-Received: from tzz by c-98-229-61-72.hsd1.ma.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 25 Nov 2013 14:28:17 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 56 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: c-98-229-61-72.hsd1.ma.comcast.net X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:pkY+DAB9sRSZ0FQIIUbzlOZBE7M= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 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:165695 Archived-At: On Fri, 22 Nov 2013 07:33:33 -0500 Ted Zlatanov wrote: TZ> On Fri, 22 Nov 2013 09:36:20 +0200 Eli Zaretskii wrote: >>> From: Juri Linkov >>> Cc: josh@foxtail.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org >>> Date: Fri, 22 Nov 2013 02:10:48 +0200 >>> >>> >> > Many people access `previous-history-element' in the minibuffer through >>> >> > the up arrow, so I hope it is not commandeered for this purpose. >>> >> >>> >> The web browsers solve this problem by combining completions for >>> >> history and suggestions in the same list (separated by a horizontal line). >>> > >>> > The problem with that is that the resulting list is frustratingly >>> > long. >>> >>> The browsers put the most frequently visited history items at the top. EZ> And therein lies the problem: I frequently cannot locate the history EZ> item I need in that list. TZ> I think it can be addressed: `up' goes into the popup, starting with the TZ> history items in the order you expect. `down' also goes into the popup TZ> but starts with the completion candidates. So if you want to select the TZ> first completion candidate, you'd use `down RET'. And for the first TZ> history item, `up RET'. That, plus searching (see below) would IMO be TZ> a good UI. >>> As I see icomplete does the same when displaying completions in the >>> minibuffer. So items could be sorted either by frequency or by recency >>> in the *Completions* buffer as well. EZ> That only solves part of the use cases. My typical history even for a EZ> single day is very long, and will many times defeat these strategies. EZ> We need to have a solution for such situations, which I believe is not EZ> uncommon in Emacs uses. TZ> Once you've entered the completion candidates selection UI, regular TZ> letter keys can be used to filter the list by substring because you're TZ> in a new keymap. Like `Control-R' in a shell with libreadline history. >From the lack of followups I think we've settled into some agreement on this: trigger the completion candidates UI on `up' and/or `down' and inside that mode, remap keys for the single purpose of filtering and selecting match candidates. We also said the input history should be available in the same interface, so the UI will in effect be a general "give me things of interest" interface. The visuals (popup or better *Completions* buffer) are not clear yet, but we have some votes for either approach. I don't know this area of the code well, but can probably give it a try in a while. Is anyone else able to attack this problem soon-ish? I would gladly assist with testing and documentation, debugging, etc. Thanks Ted