From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.help Subject: RE: Looking for universal completion with simple UI Date: Sun, 5 Oct 2014 22:53:01 -0700 (PDT) Message-ID: <12143513-c124-4343-a69a-d43048dad2b6@default> References: <778b7522-e7b5-4ee7-89fa-10548516d79c@googlegroups.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1412574823 24684 80.91.229.3 (6 Oct 2014 05:53:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 6 Oct 2014 05:53:43 +0000 (UTC) To: dont.spam.earl@gmail.com, help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Oct 06 07:53:36 2014 Return-path: Envelope-to: geh-help-gnu-emacs@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 1Xb1Ek-0001Hc-RU for geh-help-gnu-emacs@m.gmane.org; Mon, 06 Oct 2014 07:53:34 +0200 Original-Received: from localhost ([::1]:50050 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xb1Ek-0004TV-HY for geh-help-gnu-emacs@m.gmane.org; Mon, 06 Oct 2014 01:53:34 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40295) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xb1ES-0004TO-2t for help-gnu-emacs@gnu.org; Mon, 06 Oct 2014 01:53:23 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xb1EI-0006gt-6R for help-gnu-emacs@gnu.org; Mon, 06 Oct 2014 01:53:16 -0400 Original-Received: from aserp1040.oracle.com ([141.146.126.69]:21756) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xb1EI-0006gb-0i for help-gnu-emacs@gnu.org; Mon, 06 Oct 2014 01:53:06 -0400 Original-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s965r2ag008903 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 6 Oct 2014 05:53:03 GMT Original-Received: from aserz7022.oracle.com (aserz7022.oracle.com [141.146.126.231]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s965r2Q3020156 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 6 Oct 2014 05:53:02 GMT Original-Received: from abhmp0011.oracle.com (abhmp0011.oracle.com [141.146.116.17]) by aserz7022.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s965r2Tm026497; Mon, 6 Oct 2014 05:53:02 GMT In-Reply-To: <778b7522-e7b5-4ee7-89fa-10548516d79c@googlegroups.com> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.8.2 (807160) [OL 12.0.6691.5000 (x86)] X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 141.146.126.69 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:100299 Archived-At: > Drew - thanks for the response. Yes, Icicles is the most > comprehensive package for completion I've found, particularly for > the mini buffer. I found it especially helpful to read you > explaining the philosophy here: > http://stackoverflow.com/questions/2100166/making-sense-out-of- > emacs-completion-mode-choices >=20 > It appears Icicles is focused on mini-buffer completion though. > Any tips for the various forms of in-buffer completion: searching, > cycling through killed text, etc.? One consideration is where you type the text to be completed, i.e., whether you type it first in the minibuffer or you type it directly in the destination buffer. IOW, even if you are completing text that you type into a buffer (e.g., code), completion can use the minibuffer for (temporary) text entry and another buffer (e.g. `*Completions*') for candidate display. (Or it could, Ido-style, use the minibuffer for both input and candidate display.) To complete text in a buffer it is more common that you type there and hit a key to complete there, without opening a minibuffer for temporary text entry. But where you enter the text is relevant only to UI convenience, not to what kinds of completion are available, for what contexts, etc. Typing directly into the buffer does have the advantage that you need not temporarily move your eye elsewhe= re (i.e., to the minibuffer or to `*Completions*'). It is true that Icicles does not have a lot of direct, particular support for completing different kinds of buffer text. It supports=20 general, dynamic text completion (`dabbrev', `completion.el'). It supports = BBDB text completion, comint (shell) text completion, and Lisp symbol completion. Other than those, it does not offer anything special completing different kinds of text. But if another library uses `completing-read' to provide a particular form of text completion (e.g., completion for terms in a particular programming language), then you can take advantage of Icicles completion. Most do not, AFAIK - they tend to use in-buffer prefix entry and in-place cycling of completion candidates. Wrt which packages provide particular support for different programming languages, others will no doubt chime in with suggestions. For vanilla Emacs there are CEDET and Semantic, and various programming-language modes should offer some text completion. If you look at the code for the Icicles versions of `dabbrev' etc. completion (command `icicle-dabbrev-completion'), you will see that it is essentially the vanilla code with Icicles completion added to handle the multiple-candidates case. This means that if you have some existing text-completion code, you can likely convert it easily to take advantage of Icicles completion for the multiple-candidates case. (Dunno what you mean by "searching, cycling through killed text" as "forms of in-buffer completion". Icicles provides completion for searching; for yanking kill-ring text; and for navigating using Imenu, bookmarks, the mark-ring, tag files, Info nodes, grep or occur hits, buffer narrowings, etc. But I don't really see such things as being forms of "in-buffer completion".)