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: Wed, 18 Dec 2013 14:05:48 -0500 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <87k3f2j7xv.fsf@flea.lifelogs.com> References: <87fvqtg02v.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> <87txf0390n.fsf@flea.lifelogs.com> <87y53komex.fsf@flea.lifelogs.com> <87haa8moh6.fsf@flea.lifelogs.com> <874n67n450.fsf@flea.lifelogs.com> <87eh5bkxca.fsf@flea.lifelogs.com> <87d2kuzzqj.fsf@uwakimon.sk.tsukuba.ac.jp> <87a9fylusq.fsf@flea.lifelogs.com> <878uvizrwz.fsf@uwakimon.sk.tsukuba.ac.jp> <8761qmkyn1.fsf@flea.lifelogs.com> <87zjnyxdpb.fsf@uwakimon.sk.tsukuba.ac.jp> 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 1387393493 27345 80.91.229.3 (18 Dec 2013 19:04:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 18 Dec 2013 19:04:53 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 18 20:05:00 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 1VtMQU-0005ov-Hk for ged-emacs-devel@m.gmane.org; Wed, 18 Dec 2013 20:04:58 +0100 Original-Received: from localhost ([::1]:40183 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VtMQT-0003GU-Vf for ged-emacs-devel@m.gmane.org; Wed, 18 Dec 2013 14:04:57 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57586) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VtMQM-0003Fm-OH for emacs-devel@gnu.org; Wed, 18 Dec 2013 14:04:55 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VtMQE-0006k3-3l for emacs-devel@gnu.org; Wed, 18 Dec 2013 14:04:50 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:46830) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VtMQD-0006jw-M7 for emacs-devel@gnu.org; Wed, 18 Dec 2013 14:04:41 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VtMQB-0005SI-Cj for emacs-devel@gnu.org; Wed, 18 Dec 2013 20:04:39 +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 ; Wed, 18 Dec 2013 20:04:39 +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 ; Wed, 18 Dec 2013 20:04:39 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 58 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:vvwg2sWbj9xgf1vlZMcaruv6VGU= 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:166594 Archived-At: On Thu, 19 Dec 2013 02:37:36 +0900 "Stephen J. Turnbull" wrote: SJT> Ted Zlatanov writes: >> The best way forward seems to be to look at specific solutions of >> the problem outside Emacs, SJT> "Solution" to what "problem"? I don't understand what problem you're SJT> trying to solve by emulating other application's UIs. I thought I explained it pretty clearly in this thread so I won't recap it. The topic is the current UI for selecting completion candidates (and items from a list in general). The question is whether it can be improved; we have proposed some specific improvements and at least having "down/up" go into the "select candidates" mode was reasonably well received. >> preferably without mentioning Apple or Microsoft products because >> they tend to polarize the debate quickly. SJT> How can you avoid mentioning the two most "familiar" UIs in the SJT> business (backed up by a pile of HCI research)? Watch me :) I managed to give two relevant examples (libreadline and zsh). I can give more: Qt, GTK, Motif... Here's a fairly standard autocomplete widget in today's Web, you can try several use cases if your browser supports it: http://jqueryui.com/autocomplete/ >> * they should be displayed without a dedicated *Completions* buffer, >> like `widget-choose' does it (special text buffer in text mode, nice >> popup in graphical mode) SJT> Huh? *Completions* is a special text buffer, no? Not in the same way if I understand the code in minibuffer.el correctly. But more importantly, I don't want to see a special text buffer in graphical mode. I'm willing to sacrifice text vs. graphical consistency for better visuals. If *Completions* is still used in text mode, that's OK (although I think `widget-choose' does it better for small lists). Ted p.s. finally, some anti-tips for UI designers: http://toastytech.com/guis/uirant.html (the whole thing is quite funny and based on older operating systems) "Never, ever, under any circumstance use the OS-native graphical controls or widgets. Users get bored of the same old buttons, text boxes, and stuff. When possible, disable window management and use unusual, oddly placed graphics for the windowing functions such as the window close option. When writing your own controls or widgets, make absolutely sure they look and feel nothing like the OS-native widgets or anything else the user might expect. Otherwise you might accidentally make the user think that your application is actually designed for their OS."