X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=emacs%2Fnotmuch-address.el;h=aafbe5fb8328a4ce1b92a9aa482ffa36dbd7fd6e;hp=498ef8ae4e9f86400952708ebf89a4eb531a89e6;hb=0cf457b73b4b666314d1a09ac3e31bd0fa2346a6;hpb=89f78d38c1f7c9416e5bd9521dd694bb4f90572f diff --git a/emacs/notmuch-address.el b/emacs/notmuch-address.el index 498ef8ae..aafbe5fb 100644 --- a/emacs/notmuch-address.el +++ b/emacs/notmuch-address.el @@ -1,4 +1,4 @@ -;; notmuch-address.el --- address completion with notmuch +;;; notmuch-address.el --- address completion with notmuch ;; ;; Copyright © David Edmondson ;; @@ -19,10 +19,14 @@ ;; ;; Authors: David Edmondson +;;; Code: + (require 'message) (require 'notmuch-parser) (require 'notmuch-lib) +(require 'notmuch-company) ;; +(declare-function company-manual-begin "company") (defcustom notmuch-address-command 'internal "The command which generates possible addresses. It must take a @@ -72,9 +76,21 @@ finished") (defun notmuch-address-message-insinuate () (message "calling notmuch-address-message-insinuate is no longer needed")) +(defcustom notmuch-address-use-company t + "If available, use company mode for address completion" + :type 'boolean + :group 'notmuch-send) + (defun notmuch-address-setup () - (let ((pair (cons notmuch-address-completion-headers-regexp - #'notmuch-address-expand-name))) + (let* ((use-company (and notmuch-address-use-company + (eq notmuch-address-command 'internal) + (require 'company nil t))) + (pair (cons notmuch-address-completion-headers-regexp + (if use-company + #'company-manual-begin + #'notmuch-address-expand-name)))) + (when use-company + (notmuch-company-setup)) (unless (memq pair message-completion-alist) (setq message-completion-alist (push pair message-completion-alist))))) @@ -234,3 +250,5 @@ called when harvesting finishes." ;; (provide 'notmuch-address) + +;;; notmuch-address.el ends here