Fix Semantic completion-at-point functions in non-Semantic buffers

Fixes: debbugs:19077

* lisp/cedet/semantic.el (semantic-analyze-completion-at-point-function)
(semantic-analyze-notc-completion-at-point-function)
(semantic-analyze-nolongprefix-completion-at-point-function): Do
nothing if the current buffer is not using Semantic.
This commit is contained in:
Dmitry Gutov 2014-12-14 12:59:05 +02:00
parent 9f28cb59dc
commit f7572b72fd
2 changed files with 35 additions and 25 deletions

View file

@ -1,3 +1,10 @@
2014-12-14 Dmitry Gutov <dgutov@yandex.ru>
* semantic.el (semantic-analyze-completion-at-point-function)
(semantic-analyze-notc-completion-at-point-function)
(semantic-analyze-nolongprefix-completion-at-point-function): Do
nothing if the current buffer is not using Semantic (bug#19077).
2014-12-08 Matt Curtis <matt.r.curtis@gmail.com> (tiny change)
* pulse.el (pulse-momentary-highlight-one-line): Respect the POINT

View file

@ -1174,17 +1174,18 @@ Semantic mode.
"Return possible analysis completions at point.
The completions provided are via `semantic-analyze-possible-completions'.
This function can be used by `completion-at-point-functions'."
(let* ((ctxt (semantic-analyze-current-context))
(possible (semantic-analyze-possible-completions ctxt)))
(when (semantic-active-p)
(let* ((ctxt (semantic-analyze-current-context))
(possible (semantic-analyze-possible-completions ctxt)))
;; The return from this is either:
;; nil - not applicable here.
;; A list: (START END COLLECTION . PROPS)
(when possible
(list (car (oref ctxt bounds))
(cdr (oref ctxt bounds))
possible))
))
;; The return from this is either:
;; nil - not applicable here.
;; A list: (START END COLLECTION . PROPS)
(when possible
(list (car (oref ctxt bounds))
(cdr (oref ctxt bounds))
possible))
)))
(defun semantic-analyze-notc-completion-at-point-function ()
"Return possible analysis completions at point.
@ -1192,14 +1193,15 @@ The completions provided are via `semantic-analyze-possible-completions',
but with the 'no-tc option passed in, which means constraints based
on what is being assigned to are ignored.
This function can be used by `completion-at-point-functions'."
(let* ((ctxt (semantic-analyze-current-context))
(possible (semantic-analyze-possible-completions ctxt 'no-tc)))
(when (semantic-active-p)
(let* ((ctxt (semantic-analyze-current-context))
(possible (semantic-analyze-possible-completions ctxt 'no-tc)))
(when possible
(list (car (oref ctxt bounds))
(cdr (oref ctxt bounds))
possible))
))
(when possible
(list (car (oref ctxt bounds))
(cdr (oref ctxt bounds))
possible))
)))
(defun semantic-analyze-nolongprefix-completion-at-point-function ()
"Return possible analysis completions at point.
@ -1207,15 +1209,16 @@ The completions provided are via `semantic-analyze-possible-completions',
but with the 'no-tc and 'no-longprefix option passed in, which means
constraints resulting in a long multi-symbol dereference are ignored.
This function can be used by `completion-at-point-functions'."
(let* ((ctxt (semantic-analyze-current-context))
(possible (semantic-analyze-possible-completions
ctxt 'no-tc 'no-longprefix)))
(when (semantic-active-p)
(let* ((ctxt (semantic-analyze-current-context))
(possible (semantic-analyze-possible-completions
ctxt 'no-tc 'no-longprefix)))
(when possible
(list (car (oref ctxt bounds))
(cdr (oref ctxt bounds))
possible))
))
(when possible
(list (car (oref ctxt bounds))
(cdr (oref ctxt bounds))
possible))
)))
;;; Autoload some functions that are not in semantic/loaddefs