]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix Semantic completion-at-point functions in non-Semantic buffers
authorDmitry Gutov <dgutov@yandex.ru>
Sun, 14 Dec 2014 10:59:05 +0000 (12:59 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Sun, 14 Dec 2014 10:59:05 +0000 (12:59 +0200)
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.

lisp/cedet/ChangeLog
lisp/cedet/semantic.el

index c132a423f19e9866db99f253165ef6c17bd3f863..46296d3e39f693f3896d32900267ff475967ab92 100644 (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
index 6bd090cf83856eb70005217500834cd8d51d4fbb..50e2082600b89390c24a189b97354c22cdc443bf 100644 (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)))
-
-    ;; 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))
-    ))
+  (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))
+      )))
 
 (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 possible
-      (list (car (oref ctxt bounds))
-           (cdr (oref ctxt bounds))
-           possible))
-    ))
+  (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))
+      )))
 
 ;;; Autoload some functions that are not in semantic/loaddefs