From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: dont.spam.earl@gmail.com Newsgroups: gmane.emacs.help Subject: Re: Looking for universal completion with simple UI Date: Sun, 5 Oct 2014 21:40:44 -0700 (PDT) Message-ID: <778b7522-e7b5-4ee7-89fa-10548516d79c@googlegroups.com> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: ger.gmane.org 1412570725 15911 80.91.229.3 (6 Oct 2014 04:45:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 6 Oct 2014 04:45:25 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Oct 06 06:45:20 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 1Xb0Ai-0004ca-PC for geh-help-gnu-emacs@m.gmane.org; Mon, 06 Oct 2014 06:45:20 +0200 Original-Received: from localhost ([::1]:49934 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xb0Ah-0004l5-NR for geh-help-gnu-emacs@m.gmane.org; Mon, 06 Oct 2014 00:45:19 -0400 X-Received: by 10.182.24.8 with SMTP id q8mr15911662obf.25.1412570444185; Sun, 05 Oct 2014 21:40:44 -0700 (PDT) X-Received: by 10.140.29.230 with SMTP id b93mr232687qgb.4.1412570444076; Sun, 05 Oct 2014 21:40:44 -0700 (PDT) Original-Path: usenet.stanford.edu!h18no1963080igc.0!news-out.google.com!i10ni60qaf.0!nntp.google.com!s7no761451qap.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=108.221.17.39; posting-account=QyAvTQoAAADtRdvZ5VbKTpUdY2nZ1GFk Original-NNTP-Posting-Host: 108.221.17.39 User-Agent: G2/1.0 Injection-Date: Mon, 06 Oct 2014 04:40:44 +0000 Original-Xref: usenet.stanford.edu gnu.emacs.help:208021 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:100297 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 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.? On Sunday, October 5, 2014 8:28:54 PM UTC-7, Drew Adams wrote: > > I'm posting to ask about a completion model I have in mind. Before I > > > code it up myself I'm trying to find any packages that already > > > implement most or all of this functionality. > > > > > > The Emacs Wiki Category page for Completion lists packages for > > > minibuffer completion and text completion: > > > http://www.emacswiki.org/emacs/CategoryCompletion > > > > > > I want a package for completion both INSIDE and OUTSIDE of the > > > minibuffer with a universal UI: > > > - Minibuffer Input Completion: > > > - finding files > > > - switching buffers > > > - apropos for functions and variables > > > - and any other minibuffer history lists > > > - Text Completion in a Buffer: > > > - code completion > > > - executables/commands at a comint prompt > > > - i-searching in the current buffer > > > - cycling through killed text for yanking > > > > > > Further, I want to navigate via a couple "dimensions" of context, > > > both historical (previous inputs I've entered), and alphabetical > > > (previous and next alphabetically, as in files in a directory). > > > > > > The UI model and keybindings for this might be as simple as: > > > - show prefix candidates with TAB > > > - show substring candidates with S-TAB > > > - with candidates already shown, the second TAB/S-TAB would select > > > the first candidate > > > - navigate candidates alphabetically with C-r, C-s > > > - navigate candidates historically with C-p, C-n > > > > > > Do any packages implement this already? > > > > I think you will find that several packages support much or even > > all of what you request. Even vanilla Emacs supports much of it. > > > > I can't speak for other packages (others will), but Icicles > > supports pretty much all of what you mention. > > > > Icicle features apply mainly to the minibuffer. > > > > For in-buffer text (code) completion, whenever there are > > multiple candidates matching the buffer text to be completed, > > Icicles extends some vanilla commands to let you use its > > minibuffer completion features (regexp or substring matching, > > multiple-pattern matching, candidate sorting, cycling, etc.) > > > > So for text completion, instead of cycling among multiple > > candidates in place, Icicles uses the minibuffer and shows > > the candidates in `*Completions*'. When there is only one > > candidate, text completion in Icicles reverts to vanilla, > > in-place completion. > > > > Apart from Emacs Lisp, Icicles offers nothing particular for > > code completion that is language-specific. But its completion > > features are automatically available for any code-specific > > completion that uses `completing-read'. > > > > You can download Icicles from Emacs Wiki or MELPA, to try it. > > http://www.emacswiki.org/Icicles