From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: propose adding Icicles to Emacs Date: Mon, 11 Jun 2007 05:44:10 -0400 Message-ID: References: Reply-To: rms@gnu.org NNTP-Posting-Host: lo.gmane.org Content-Type: text/plain; charset=ISO-8859-15 X-Trace: sea.gmane.org 1181555182 3909 80.91.229.12 (11 Jun 2007 09:46:22 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 11 Jun 2007 09:46:22 +0000 (UTC) Cc: emacs-devel@gnu.org To: "Drew Adams" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jun 11 11:46:20 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 1HxgTb-0001mP-RA for ged-emacs-devel@m.gmane.org; Mon, 11 Jun 2007 11:46:20 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HxgTb-0003of-Ep for ged-emacs-devel@m.gmane.org; Mon, 11 Jun 2007 05:46:19 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HxgRY-0002Vl-Nl for emacs-devel@gnu.org; Mon, 11 Jun 2007 05:44:12 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HxgRX-0002Uw-KN for emacs-devel@gnu.org; Mon, 11 Jun 2007 05:44:12 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HxgRX-0002Ul-9n for emacs-devel@gnu.org; Mon, 11 Jun 2007 05:44:11 -0400 Original-Received: from fencepost.gnu.org ([140.186.70.10]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HxgRW-0001Rx-U6 for emacs-devel@gnu.org; Mon, 11 Jun 2007 05:44:11 -0400 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.60) (envelope-from ) id 1HxgRW-0008Iy-LO; Mon, 11 Jun 2007 05:44:10 -0400 In-reply-to: X-detected-kernel: Linux 2.6, seldom 2.4 (older, 4) 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:72614 Archived-At: If integrated with Emacs, this could be done by changing `completing-read' etc. to act differently when `icicle-mode' is on, unless that is a no-no. It is not out of the question to do this. However, it would be nicer to find a cleaner way. Can you do most of these changes through key bindings? Which changes are left, that can't be done that way (or not cleanly)? Can we find non-ad-hoc ways of implementing them? it can replace some top-level commands with Icicles versions (e.g. `find-file' with `icicle-find-file'). Why does it do this? > * Multi-commands: Define a command that acts on one foobar, > and be able to use it also on multiple foobars in a single > invocation. > > How is that implemented? A minibuffer key binding, `C-RET' (or `C-mouse-2' in `completion-list-mode-map'), calls a command that acts on the current completion candidate, where "current" is determined by cycling or matching. How does it know what to call? Is it the same command that invoked the minibuffer? Do you have to define a new function for this, one for each command that uses the feature? It sounds like an ugly mechanism, so if this feature is worth adding, I would rather it be implemented differently. The cleanest way I can think of is to set a flag telling call-interactively to call the function then loop around, keeping the same prefix argument. This should work with ALL commands and avoid the need to define separate multi-commands. Once multi-commands are gone, does Icicles need to redefine any commands? Is it just a matter of changes inside completing-read?