ca2+

Homepage: https://github.com/hjanetzek/ca2

Updated:

Summary

An improved fork of `company-mode'

Commentary

fork of company-mode.el, with code from auto-complete.el and completion
methods found on emacswiki

either enable ca-mode per buffer via (ca-mode 1) or use (global-ca-mode 1)
to enable it in all buffer that match 'ca-modes'

(require 'ca2+)
(require 'ca2+sources)
(require 'ca2+config) ;; change this to your needs

if you use yasnippet: it must be loaded after ca2+config or you will
get infinite recursions. I'll have to look into yasnippet to see why 
it does.

changes:
+ tab cycles through sources
+ substring matching: type ca-substring-match-delimiter (default 'space')
  to start this mode. e.g. "a[tab] 8 s[ret]" will insert:
  "add-log-iso8601-time-string". this feature also saves you from having to
  type in not so easily reachable charachters like '-' or '_'
+ expand-common expand the current selected candidate to next word boundary,
  if no common expansion is possible
+ candidates are sorted by words in current buffer
+ ac-styled source description: so it's really easy to port sources for
  auto-complete

+ describe option: sources can provide a description function for candidates
  bound to C-h, see elisp source
+ continue-after-insertion option, to get new completions after insertion,
  see 'filename' source
+ actions to execute after insertion, see yasnippet source
+ candidates can be cons pairs, car is candidate, cdr is shown as minibuffer
  message, see yasnippet source
+ sources can indicate whether their candidates have a common-prefix, this
  is used to reduce the number of visible candidates, as the prefix will
  be shown only once. after expansion of prefix  all candidates with that
  prefix are shown. see gtags and elisp sources.
+ thing-at-point decider can be used now, see 'filename' source

TODO:
- add autoexpand
- when there is only one candidate to expand move point to end
  so that one only need to press space?

BUGS:
- expand-common does weird thing when word-filter is on
- point jump around when cycling (remove current workaround)

Please send Bug reports and suggestions to 'hannes dot janetzek at gmail dot com'

Dependencies