]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-address.el
emacs: Only set one variable per setq form
[notmuch] / emacs / notmuch-address.el
index 15c709da70a43b6eb0aa7dc8128b8c322df11846..4db7096c9b136b35ce0c1ee60b75d5e5c4c6a7f0 100644 (file)
 (declare-function company-manual-begin "company")
 
 (defvar notmuch-address-last-harvest 0
-  "Time of last address harvest")
+  "Time of last address harvest.")
 
 (defvar notmuch-address-completions (make-hash-table :test 'equal)
   "Hash of email addresses for completion during email composition.
-  This variable is set by calling `notmuch-address-harvest'.")
+This variable is set by calling `notmuch-address-harvest'.")
 
 (defvar notmuch-address-full-harvest-finished nil
   "t indicates that full completion address harvesting has been
@@ -66,17 +66,18 @@ disabled."
          (const :tag "Disable address completion" nil)
          (string :tag "Use external completion command"))
   :group 'notmuch-send
+  :group 'notmuch-address
   :group 'notmuch-external)
 
 (defcustom notmuch-address-internal-completion '(sent nil)
   "Determines how internal address completion generates candidates.
 
 This should be a list of the form '(DIRECTION FILTER), where
- DIRECTION is either sent or received and specifies whether the
- candidates are searched in messages sent by the user or received
- by the user (note received by is much faster), and FILTER is
- either nil or a filter-string, such as \"date:1y..\" to append
- to the query."
+DIRECTION is either sent or received and specifies whether the
+candidates are searched in messages sent by the user or received
+by the user (note received by is much faster), and FILTER is
+either nil or a filter-string, such as \"date:1y..\" to append
+to the query."
   :type '(list :tag "Use internal address completion"
               (radio
                :tag "Base completion on messages you have"
@@ -93,6 +94,7 @@ This should be a list of the form '(DIRECTION FILTER), where
         (setq notmuch-address-completions (clrhash notmuch-address-completions))
         (setq notmuch-address-full-harvest-finished nil))
   :group 'notmuch-send
+  :group 'notmuch-address
   :group 'notmuch-external)
 
 (defcustom notmuch-address-save-filename nil
@@ -104,6 +106,7 @@ should make sure it is not somewhere publicly readable."
   :type '(choice (const :tag "Off" nil)
                 (file :tag "Filename"))
   :group 'notmuch-send
+  :group 'notmuch-address
   :group 'notmuch-external)
 
 (defcustom notmuch-address-selection-function 'notmuch-address-selection-function
@@ -115,6 +118,7 @@ See documentation of function `notmuch-address-selection-function'
 to know how address selection is made by default."
   :type 'function
   :group 'notmuch-send
+  :group 'notmuch-address
   :group 'notmuch-external)
 
 (defcustom notmuch-address-post-completion-functions nil
@@ -122,8 +126,7 @@ to know how address selection is made by default."
 
 The completed address is passed as an argument to each function.
 Note that this hook will be invoked for completion in headers
-matching `notmuch-address-completion-headers-regexp'.
-"
+matching `notmuch-address-completion-headers-regexp'."
   :type 'hook
   :group 'notmuch-address
   :group 'notmuch-hooks)
@@ -143,20 +146,21 @@ matching `notmuch-address-completion-headers-regexp'.
   (message "calling notmuch-address-message-insinuate is no longer needed"))
 
 (defcustom notmuch-address-use-company t
-  "If available, use company mode for address completion"
+  "If available, use company mode for address completion."
   :type 'boolean
-  :group 'notmuch-send)
+  :group 'notmuch-send
+  :group 'notmuch-address)
 
 (defun notmuch-address-setup ()
   (let* ((setup-company (and notmuch-address-use-company
-                          (require 'company nil t)))
+                            (require 'company nil t)))
         (pair (cons notmuch-address-completion-headers-regexp
-                      #'notmuch-address-expand-name)))
-      (when setup-company
-       (notmuch-company-setup))
-      (unless (memq pair message-completion-alist)
-       (setq message-completion-alist
-             (push pair message-completion-alist)))))
+                    #'notmuch-address-expand-name)))
+    (when setup-company
+      (notmuch-company-setup))
+    (unless (member pair message-completion-alist)
+      (setq message-completion-alist
+           (push pair message-completion-alist)))))
 
 (defun notmuch-address-toggle-internal-completion ()
   "Toggle use of internal completion for current buffer.
@@ -191,10 +195,11 @@ external commands."
    ((eq notmuch-address-command 'internal)
     (unless (notmuch-address--harvest-ready)
       ;; First, run quick synchronous harvest based on what the user
-      ;; entered so far
+      ;; entered so far.
       (notmuch-address-harvest original t))
     (prog1 (notmuch-address-matching original)
-      ;; Then start the (potentially long-running) full asynchronous harvest if necessary
+      ;; Then start the (potentially long-running) full asynchronous
+      ;; harvest if necessary.
       (notmuch-address-harvest-trigger)))
    (t
     (process-lines notmuch-address-command original))))
@@ -237,7 +242,8 @@ external commands."
            (push chosen notmuch-address-history)
            (delete-region beg end)
            (insert chosen)
-           (run-hook-with-args 'notmuch-address-post-completion-functions chosen))
+           (run-hook-with-args 'notmuch-address-post-completion-functions
+                               chosen))
        (message "No matches.")
        (ding))))
    (t nil)))
@@ -280,7 +286,7 @@ external commands."
 (defvar notmuch-address-harvest-procs '(nil . nil)
   "The currently running harvests.
 
-The car is a partial harvest, and the cdr is a full harvest")
+The car is a partial harvest, and the cdr is a full harvest.")
 
 (defun notmuch-address-harvest (&optional addr-prefix synchronous callback)
   "Collect addresses completion candidates.
@@ -296,7 +302,6 @@ matching ADDR-PREFIX*' are queried.
 Address harvesting may take some time so the address collection runs
 asynchronously unless SYNCHRONOUS is t. In case of asynchronous
 execution, CALLBACK is called when harvesting finishes."
-
   (let* ((sent (eq (car notmuch-address-internal-completion) 'sent))
         (config-query (cadr notmuch-address-internal-completion))
         (prefix-query (when addr-prefix
@@ -312,13 +317,13 @@ execution, CALLBACK is called when harvesting finishes."
                            (when config-query
                              (format " and (%s)" config-query)))
                  from-or-to-me-query))
-        (args `("address" "--format=sexp" "--format-version=2"
+        (args `("address" "--format=sexp" "--format-version=4"
                 ,(if sent "--output=recipients" "--output=sender")
                 "--deduplicate=address"
                 ,query)))
     (if synchronous
        (mapc #'notmuch-address-harvest-addr
-                                  (apply 'notmuch-call-notmuch-sexp args))
+             (apply 'notmuch-call-notmuch-sexp args))
       ;; Asynchronous
       (let* ((current-proc (if addr-prefix
                               (car notmuch-address-harvest-procs)
@@ -329,7 +334,6 @@ execution, CALLBACK is called when harvesting finishes."
        ;; Kill any existing process
        (when current-proc
          (kill-buffer (process-buffer current-proc))) ; this also kills the process
-
        (setq current-proc
              (apply 'notmuch-start-notmuch proc-name proc-buf
                     callback                           ; process sentinel
@@ -377,22 +381,23 @@ to be a saved address hash."
                      notmuch-address-internal-completion)
               (equal (plist-get load-plist :version)
                      notmuch-address--save-hash-version))
-      (setq notmuch-address-last-harvest (plist-get load-plist :last-harvest)
-           notmuch-address-completions (plist-get load-plist :completions)
-           notmuch-address-full-harvest-finished t)
+      (setq notmuch-address-last-harvest (plist-get load-plist :last-harvest))
+      (setq notmuch-address-completions (plist-get load-plist :completions))
+      (setq notmuch-address-full-harvest-finished t)
       ;; Return t to say load was successful.
       t)))
 
 (defun notmuch-address--save-address-hash ()
   (when notmuch-address-save-filename
     (if (or (not (file-exists-p notmuch-address-save-filename))
-             ;; The file exists, check it is a file we saved
+           ;; The file exists, check it is a file we saved
            (notmuch-address--get-address-hash))
        (with-temp-file notmuch-address-save-filename
-         (let ((save-plist (list :version notmuch-address--save-hash-version
-                                 :completion-settings notmuch-address-internal-completion
-                                 :last-harvest notmuch-address-last-harvest
-                                 :completions notmuch-address-completions)))
+         (let ((save-plist
+                (list :version notmuch-address--save-hash-version
+                      :completion-settings notmuch-address-internal-completion
+                      :last-harvest notmuch-address-last-harvest
+                      :completions notmuch-address-completions)))
            (print "notmuch-address-hash" (current-buffer))
            (print save-plist (current-buffer))))
       (message "\
@@ -404,16 +409,17 @@ appear to be an address savefile.  Not overwriting."
   (let ((now (float-time)))
     (when (> (- now notmuch-address-last-harvest) 86400)
       (setq notmuch-address-last-harvest now)
-      (notmuch-address-harvest nil nil
-                              (lambda (proc event)
-                                ;; If harvest fails, we want to try
-                                ;; again when the trigger is next
-                                ;; called
-                                (if (string= event "finished\n")
-                                    (progn
-                                      (notmuch-address--save-address-hash)
-                                      (setq notmuch-address-full-harvest-finished t))
-                                  (setq notmuch-address-last-harvest 0)))))))
+      (notmuch-address-harvest
+       nil nil
+       (lambda (proc event)
+        ;; If harvest fails, we want to try
+        ;; again when the trigger is next
+        ;; called
+        (if (string= event "finished\n")
+            (progn
+              (notmuch-address--save-address-hash)
+              (setq notmuch-address-full-harvest-finished t))
+          (setq notmuch-address-last-harvest 0)))))))
 
 ;;