• Stefan Monnier's avatar
    Add an :exit-function for completion-at-point. · a2a25d24
    Stefan Monnier authored
    * 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.
    a2a25d24
minibuffer.el 118 KB