emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs completion matches selection UI


From: Aaron Ecay
Subject: Re: Emacs completion matches selection UI
Date: Thu, 19 Dec 2013 02:59:25 -0500
User-agent: Notmuch/0.16+154~g96c0ce2 (http://notmuchmail.org) Emacs/24.3.50.1 (x86_64-unknown-linux-gnu)

2013ko abenudak 19an, "Stephen J. Turnbull"-ek idatzi zuen:

[...]

> 
>> * Can we get a solid consensus on whether or not this sort of thing
>> is desirable in Emacs?
> 
> The necessary widgets (pretty popup menus, etc) should be in core for
> the usual reasons that GUI toolkits provide them.  Even if core Emacs
> developers don't particularly like them (including attempting to teach
> new users to avoid them ;-), the demand is there, itches will be
> scratched, and it's best if they're scratched consistently.
> 
>> * If we think it’s a good idea to enable, should it be inside Emacs or
>> in some external package?
> 
> Filtering and ordering algorithms don't seem to belong in core yet.
> The screenshots of Emacs implementations and my experience with
> non-Emacs implementations suggests there's a heck of a lot of
> improvement needed.  Some API for plugging those into the completion
> widgets would probably be a very good idea.

In this vein, it may be useful to think of the CompletionUI package
<http://www.emacswiki.org/emacs/CompletionUI>.  Quoting from the
EmacsWiki description, presumably written by the author: “Typically, a
lot of code in packages providing some kind of text completion deals
with the user interface. The goal of CompletionUI is to be the
swiss-army knife of in-buffer completion user-interfaces, which any
source of completions can plug in to, thus freeing completion package
writers to concentrate on the task of finding the completions in the
first place.”

In addition to the ability to plug custom UIs into the underlying API,
the package claims to itself provide the following UI options (again
quoting the wiki):

- Dynamic completion: provisionally insert the best completion candidate
  in the buffer as you type. 
- Completion hotkeys: single-key selection of a completion candidate.
- Cycling: cycle through completion candidates.
- Tab-completion: “traditional” expansion to longest common substring.
- Help-echo: display a list of completion candidates in the echo-area.
- Tooltip: display and select from a list of completion candidates in a
  tool-tip located below the point. 
- Pop-up frame: display and select from a list of completion candidates
  in a tool-tip located below the point; toggle between showing some or
  all possible completions. 
- Completion menu: allow completion candidates to be selected from a
  drop-down menu located below the point. 
- Completion browser: browse through all possible completion candidates
  in a hierarchical menu located below the point. 
- auto-completion-mode: automatically complete words as you type.

Perhaps predictably <http://xkcd.com/927/>, the goal of other completion
package writers adopting this system seems to have gone unrealized.  But
maybe if a similar system were “blessed” by being included in emacs core
(tied to the existing completion-at-point-functions) things might go
better.

(I have no connection to the author; I simply learned about the package
as part of my never-entirely-successful quest for an Intellisense-style
in-buffer completion package that is actually usable without extensive
tweaking.)

-- 
Aaron Ecay



reply via email to

[Prev in Thread] Current Thread [Next in Thread]