emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 7a05d1c 115/173: company-cancel: Call pre/post-completion


From: Dmitry Gutov
Subject: [elpa] master 7a05d1c 115/173: company-cancel: Call pre/post-completion at the end
Date: Thu, 23 Jun 2016 00:28:43 +0000 (UTC)

branch: master
commit 7a05d1cb35a408a655f0f9f7b457b6e245a74976
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    company-cancel: Call pre/post-completion at the end
    
    Fixes ##449 in a slightly different way
---
 company.el |   21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/company.el b/company.el
index 117b093..af45141 100644
--- a/company.el
+++ b/company.el
@@ -1525,14 +1525,8 @@ from the rest of the backends in the group, if any, will 
be left at the end."
     (company-call-frontends 'update)))
 
 (defun company-cancel (&optional result)
-  (unwind-protect
-      (when company-prefix
-        (if (stringp result)
-            (progn
-              (company-call-backend 'pre-completion result)
-              (run-hook-with-args 'company-completion-finished-hook result)
-              (company-call-backend 'post-completion result))
-          (run-hook-with-args 'company-completion-cancelled-hook result)))
+  (let ((prefix company-prefix)
+        (backend company-backend))
     (setq company-backend nil
           company-prefix nil
           company-candidates nil
@@ -1551,7 +1545,16 @@ from the rest of the backends in the group, if any, will 
be left at the end."
     (company-echo-cancel t)
     (company-search-mode 0)
     (company-call-frontends 'hide)
-    (company-enable-overriding-keymap nil))
+    (company-enable-overriding-keymap nil)
+    (when prefix
+      ;; FIXME: RESULT can also be e.g. `unique'.  We should call
+      ;; `company-completion-finished-hook' in that case, with right argument.
+      (if (stringp result)
+          (let ((company-backend backend))
+            (company-call-backend 'pre-completion result)
+            (run-hook-with-args 'company-completion-finished-hook result)
+            (company-call-backend 'post-completion result))
+        (run-hook-with-args 'company-completion-cancelled-hook result))))
   ;; Make return value explicit.
   nil)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]