Function: semantic-complete-try-completion
semantic-complete-try-completion is a byte-compiled function defined
in complete.el.gz.
Signature
(semantic-complete-try-completion &optional PARTIAL)
Documentation
Try a completion for the current minibuffer.
If PARTIAL, do partial completion stopping at spaces.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/complete.el.gz
(defun semantic-complete-try-completion (&optional partial)
"Try a completion for the current minibuffer.
If PARTIAL, do partial completion stopping at spaces."
(let ((comp (semantic-collector-try-completion
semantic-completion-collector-engine
(semantic-completion-text))))
(cond
((null comp)
(semantic-completion-message " [No Match]")
(ding)
)
((stringp comp)
(if (string= (semantic-completion-text) comp)
(when partial
;; Minibuffer isn't changing AND the text is not unique.
;; Test for partial completion over a word separator character.
;; If there is one available, use that so that SPC can
;; act like a SPC insert key.
(let ((newcomp (semantic-collector-current-whitespace-completion
semantic-completion-collector-engine)))
(when newcomp
(semantic-completion-delete-text)
(insert newcomp))
))
(when partial
(let ((orig (semantic-completion-text)))
;; For partial completion, we stop and step over
;; word boundaries. Use this nifty function to do
;; that calculation for us.
(setq comp
(semantic-complete-hack-word-boundaries orig comp))))
;; Do the replacement.
(semantic-completion-delete-text)
(insert comp))
)
((and (listp comp) (semantic-tag-p (car comp)))
(unless (string= (semantic-completion-text)
(semantic-tag-name (car comp)))
;; A fully unique completion was available.
(semantic-completion-delete-text)
(insert (semantic-tag-name (car comp))))
;; The match is complete
(if (= (length comp) 1)
(semantic-completion-message " [Complete]")
(semantic-completion-message " [Complete, but not unique]"))
)
(t nil))))