Function: completion-at-point
completion-at-point is an interactive and byte-compiled function
defined in minibuffer.el.gz.
Signature
(completion-at-point)
Documentation
Perform completion on the text around point.
The completion method is determined by completion-at-point-functions.
Probably introduced at or before Emacs version 23.2.
Key Bindings
Aliases
comint-dynamic-complete (obsolete since 24.1)
nxml-complete (obsolete since 26.1)
evil-ex-completion (obsolete since 1.15.0)
meta-complete-symbol (obsolete since 24.1)
mh-letter-complete
eshell-pcomplete (obsolete since 27.1)
bibtex-complete (obsolete since 24.1)
pascal-complete-word (obsolete since 24.1)
makefile-complete (obsolete since 24.1)
erc-complete-word (obsolete since 24.1)
Source Code
;; Defined in /usr/src/emacs/lisp/minibuffer.el.gz
(defun completion-at-point ()
"Perform completion on the text around point.
The completion method is determined by `completion-at-point-functions'."
(interactive)
(let ((res (run-hook-wrapped 'completion-at-point-functions
#'completion--capf-wrapper 'all)))
(pcase res
(`(,_ . ,(and (pred functionp) f)) (funcall f))
(`(,hookfun . (,start ,end ,collection . ,plist))
(unless (markerp start) (setq start (copy-marker start)))
(let* ((completion-extra-properties plist)
(completion-in-region-mode-predicate
(lambda ()
;; We're still in the same completion field.
(let ((newstart (car-safe (funcall hookfun))))
(and newstart (= newstart start))))))
(completion-in-region start end collection
(plist-get plist :predicate))))
;; Maybe completion already happened and the function returned t.
(_
(when (cdr res)
(message "Warning: %S failed to return valid completion data!"
(car res)))
(cdr res)))))