HelmΒΆ
Selection narrowing framework for emacs.
Write an extension: http://wikemacs.org/wiki/How_to_write_helm_extensions
Simple usage:
(helm :sources '((name . "Action:")
(candidates . ( "a" "b" "c"))
(action . (lambda (candidate)
(message candidate)))))