Add an :exit-function for completion-at-point.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 24 May 2011 02:45:50 +0000 (23:45 -0300)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 24 May 2011 02:45:50 +0000 (23:45 -0300)
commita2a25d24350857dda87e28d6b2695cccc41bb32e
tree59bf876837e64b92932a52bf8ea8c526de285eb1
parent2df215b52612a739eedcc024e47b6a9fa720dfda
Add an :exit-function for completion-at-point.
* lisp/minibuffer.el (completion--done): New fun.
(completion--do-completion): Use it.  New arg `expect-exact'.
(minibuffer-complete, minibuffer-complete-word): Don't output message,
since completion--do-completion does it for us now.
(minibuffer-force-complete): Use completion--done and
completion--replace.  Handle sole-completion case with more care.
(minibuffer-complete-and-exit): Use new `expect-exact' arg.
(completion-extra-properties): New var.
(completion-annotate-function): Make obsolete.
(minibuffer-completion-help): Adjust accordingly.
Use completion-list-insert-choice-function.
(completion-at-point, completion-help-at-point):
Bind completion-extra-properties.
(completion-pcm-word-delimiters): Add | (for uniquify, for example).
* lisp/simple.el (completion-list-insert-choice-function): New var.
(completion-setup-function): Preserve it.
(choose-completion): Pay attention to it, shuffle the code a bit.
(choose-completion-string): New arg `insert-function'.

* lisp/textmodes/bibtex.el: Convert to lexical binding.
(bibtex-mode-map): Use completion-at-point.
(bibtex-mode): Use define-derived-mode&completion-at-point-functions.
(bibtex-completion-at-point-function): New fun, from bibtex-complete.
(bibtex-complete): Define as obsolete alias.
(bibtex-complete-internal): Remove.
(bibtex-format-entry): Remove unused sub-group in regexp.
* lisp/shell.el (shell--command-completion-data)
(shell-environment-variable-completion):
* lisp/pcomplete.el (pcomplete-completions-at-point):
* lisp/comint.el (comint--complete-file-name-data): Use :exit-function
instead of completion-table-with-terminator so it also works for
choose-completion.
etc/NEWS
lisp/ChangeLog
lisp/comint.el
lisp/minibuffer.el
lisp/pcomplete.el
lisp/shell.el
lisp/simple.el
lisp/textmodes/bibtex.el