From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.devel Subject: RE: propose adding Icicles to Emacs Date: Sun, 17 Jun 2007 15:18:15 -0700 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-15" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1182118766 21871 80.91.229.12 (17 Jun 2007 22:19:26 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 17 Jun 2007 22:19:26 +0000 (UTC) Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jun 18 00:19:22 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1I035e-0003o1-1L for ged-emacs-devel@m.gmane.org; Mon, 18 Jun 2007 00:19:22 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I035d-0003Nd-IF for ged-emacs-devel@m.gmane.org; Sun, 17 Jun 2007 18:19:21 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1I035Z-0003Ld-O0 for emacs-devel@gnu.org; Sun, 17 Jun 2007 18:19:17 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1I035Y-0003JE-3L for emacs-devel@gnu.org; Sun, 17 Jun 2007 18:19:17 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I035X-0003JB-Vz for emacs-devel@gnu.org; Sun, 17 Jun 2007 18:19:16 -0400 Original-Received: from agminet01.oracle.com ([141.146.126.228]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1I035W-0003Hg-O4; Sun, 17 Jun 2007 18:19:14 -0400 Original-Received: from rgmgw2.us.oracle.com (rgmgw2.us.oracle.com [138.1.186.111]) by agminet01.oracle.com (Switch-3.2.4/Switch-3.1.7) with ESMTP id l5HMJBBP013591; Sun, 17 Jun 2007 17:19:12 -0500 Original-Received: from acsmt351.oracle.com (acsmt351.oracle.com [141.146.40.151]) by rgmgw2.us.oracle.com (Switch-3.2.4/Switch-3.1.7) with ESMTP id l5HK9on6012005; Sun, 17 Jun 2007 16:19:10 -0600 Original-Received: from dhcp-amer-csvpn-gw1-141-144-64-234.vpn.oracle.com by acsmt350.oracle.com with ESMTP id 2934916541182118713; Sun, 17 Jun 2007 15:18:33 -0700 X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) In-Reply-To: Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3138 X-Whitelist: TRUE X-Whitelist: TRUE X-Brightmail-Tracker: AAAAAQAAAAI= X-detected-kernel: Linux 2.4-2.6 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:73184 Archived-At: > > I don't understand why it makes sense to do completion on regexps. > > Would you please explain? > > This is, in my experience, the single most important (useful) > feature that Icicles has to offer. It is way out in front of > any other Icicles feature or combination of features in terms > of its practical value. The benefits are > well documented in the doc I sent you (which is also on the wiki). > > Two of the basic features of Icicles are (1) cycling among matching > candidates and (2) being able to match a regexp, not just a prefix. > > Are we talking about the same thing? I am talking about this > > 2. My `customize-apropos', `customize-apropos-faces', > `customize-apropos-groups', `customize-apropos-options', and > `repeat-complex-command' all use `completing-read' to read the regexp. > > but you seem to be talking about entering a regexp > to do completion feature. Yes, we were not talking about the same thing - I misunderstood you; my bad. To answer your question about `customize-*' - Here is my definition of `customize-apropos-faces': (defun icicle-customize-apropos-faces (regexp) "Customize all user faces matching REGEXP. Use `S-TAB', [next], and [prior], to match regexp input - this lets you see what items will be available in the customize buffer." (interactive (list (completing-read "Customize faces (regexp): " obarray 'custom-facep nil nil 'regexp-history))) (customize-apropos regexp 'faces)) This means that, when prompted, you can do any of the following: 1. type a regexp and hit RET, to get customize for the matching faces - this is the same as what vanilla Emacs offers 2. type a regexp and hit S-TAB, to see the matching face names as candidates in *Completions* and then do one of the following: (a) change your regexp, either to narrow the choices further or to correct it if it didn't quite match what you expected (b) use `M-*' to add another match pattern, to narrow candidates down progressively (c) choose one or more candidate faces to customize, from the list of those that match, using `C-mouse-2' or `C-RET' or (finally) `RET' 3. hit TAB or S-TAB (without typing any input), to get a list of all faces as candidates, and then act as in 2a, 2b, or 2c In the vanilla Emacs `customize-apropos-faces', you must provide a regexp once and for all, with RET - there is no completion of face names available, and no way to rectify your regexp without starting over. This is a good example of the general advantage of regexp matching on the fly, and the advantage of providing input by completion whenever possible.