]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-company.el
emacs: add notmuch-address-post-completion-hook
[notmuch] / emacs / notmuch-company.el
index b881d6dc9aa3f7a8c4f2b257507e8cdb397bec67..91c4804f4a086c95a1f755e10b43eaf4fd421929 100644 (file)
@@ -16,7 +16,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 (defun notmuch-company-setup ()
   (company-mode)
   (make-local-variable 'company-backends)
-  (setq company-backends '(notmuch-company)))
+  (setq company-backends '(notmuch-company))
+  ;; Disable automatic company completion unless an internal
+  ;; completion method is configured. Company completion (using
+  ;; internal completion) can still be accessed via standard company
+  ;; functions, e.g., company-complete.
+  (unless (eq notmuch-address-command 'internal)
+    (setq-local company-idle-delay nil)))
 
 ;;;###autoload
 (defun notmuch-company (command &optional arg &rest _ignore)
@@ -72,7 +78,7 @@
                          (lambda (callback)
                            ;; First run quick asynchronous harvest based on what the user entered so far
                            (notmuch-address-harvest
-                            (format "to:%s*" arg) nil
+                            arg nil
                             (lambda (_proc _event)
                               (funcall callback (notmuch-address-matching arg))
                               ;; Then start the (potentially long-running) full asynchronous harvest if necessary
@@ -80,6 +86,7 @@
       (match (if (string-match notmuch-company-last-prefix arg)
                 (match-end 0)
               0))
+      (post-completion (run-hook-with-args 'notmuch-address-completion-hook arg))
       (no-cache t))))