Function: cider-complete-at-point
cider-complete-at-point is a byte-compiled function defined in
cider-completion.el.
Signature
(cider-complete-at-point)
Documentation
Complete the symbol at point.
Source Code
;; Defined in ~/.emacs.d/elpa/cider-20260414.1619/cider-completion.el
(defun cider-complete-at-point ()
"Complete the symbol at point."
(when-let* ((bounds (or (bounds-of-thing-at-point 'symbol)
(cons (point) (point))))
(bounds-string (buffer-substring (car bounds) (cdr bounds))))
(when (and (cider-connected-p)
(not (or (cider-in-string-p) (cider-in-comment-p))))
(let* (last-bounds-string
last-result
(complete
(lambda ()
;; We are Not using the prefix extracted within the (prefix pred action)
;; lambda. In certain completion styles, the prefix might be an empty
;; string, which is unreliable. A more dependable method is to use the
;; string defined by the bounds of the symbol at point.
;;
;; Caching just within the function is sufficient. Keeping it local
;; ensures that it will not extend across different CIDER sessions.
(unless (string= bounds-string last-bounds-string)
(setq last-bounds-string bounds-string)
(setq last-result (cider-complete bounds-string)))
last-result)))
(list (car bounds) (cdr bounds)
(lambda (prefix pred action)
;; When the 'action is 'metadata, this lambda returns metadata about this
;; capf, when action is (boundaries . suffix), it returns nil. With every
;; other value of 'action (t, nil, or lambda), 'action is forwarded to
;; (complete-with-action), together with (cider-complete), prefix and pred.
;; And that function performs the completion based on those arguments.
;;
;; This api is better described in the section
;; '21.6.7 Programmed Completion' of the elisp manual.
(cond ((eq action 'metadata)
`(metadata
(category . cider) ;; defines a completion category named 'cider, used later in our `completion-category-overrides` logic.
(display-sort-function . identity))) ;; don't override sorting done by backend
((eq (car-safe action) 'boundaries) nil)
(t (with-current-buffer (current-buffer)
(complete-with-action action (funcall complete) prefix pred)))))
:annotation-function #'cider-annotate-symbol
:company-kind #'cider-company-symbol-kind
:company-doc-buffer #'cider-create-compact-doc-buffer
:company-location #'cider-company-location
:company-docsig #'cider-company-docsig)))))