Function: semantic-complete-post-command-hook
semantic-complete-post-command-hook is a byte-compiled function
defined in complete.el.gz.
Signature
(semantic-complete-post-command-hook)
Documentation
Used to determine if we need to exit inline completion mode.
If completion mode is active, check to see if we are within
the bounds of semantic-complete-inline-overlay, or within
a reasonable distance.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/complete.el.gz
(defun semantic-complete-post-command-hook ()
"Used to determine if we need to exit inline completion mode.
If completion mode is active, check to see if we are within
the bounds of `semantic-complete-inline-overlay', or within
a reasonable distance."
(condition-case nil
;; Exit if something bad happened.
(if (not semantic-complete-inline-overlay)
(progn
;;(message "Inline Hook installed, but overlay deleted.")
(semantic-complete-inline-exit))
;; Exit if commands caused us to exit the area of interest
(let ((os (overlay-get semantic-complete-inline-overlay 'semantic-original-start))
(s (overlay-start semantic-complete-inline-overlay))
(e (overlay-end semantic-complete-inline-overlay))
(b (overlay-buffer semantic-complete-inline-overlay))
(txt nil)
)
(cond
;; EXIT when we are no longer in a good place.
((or (not (eq b (current-buffer)))
(< (point) s)
(< (point) os)
(> (point) e)
)
;;(message "Exit: %S %S %S" s e (point))
(semantic-complete-inline-exit)
)
;; Exit if the user typed in a character that is not part
;; of the symbol being completed.
((and (setq txt (semantic-completion-text))
(not (string= txt ""))
(and (/= (point) s)
(save-excursion
(forward-char -1)
(not (looking-at "\\(\\w\\|\\s_\\)")))))
;;(message "Non symbol character.")
(semantic-complete-inline-exit))
((lookup-key semantic-complete-inline-map
(this-command-keys) nil)
;; If the last command was one of our completion commands,
;; then do nothing.
nil
)
(t
;; Else, show completions now
(semantic-complete-inline-force-display)
))))
;; If something goes terribly wrong, clean up after ourselves.
(error (semantic-complete-inline-exit))))