(defun notmuch-foreach-mime-part (function mm-handle)
(cond ((stringp (car mm-handle))
- (dolist (part (cdr mm-handle))
- (notmuch-foreach-mime-part function part)))
- ((bufferp (car mm-handle))
- (funcall function mm-handle))
- (t (dolist (part mm-handle)
- (notmuch-foreach-mime-part function part)))))
+ (dolist (part (cdr mm-handle))
+ (notmuch-foreach-mime-part function part)))
+ ((bufferp (car mm-handle))
+ (funcall function mm-handle))
+ (t (dolist (part mm-handle)
+ (notmuch-foreach-mime-part function part)))))
(defun notmuch-count-attachments (mm-handle)
(let ((count 0))
(notmuch-foreach-mime-part
(lambda (p)
(let ((disposition (mm-handle-disposition p)))
- (and (listp disposition)
- (or (equal (car disposition) "attachment")
- (and (equal (car disposition) "inline")
- (assq 'filename disposition)))
- (cl-incf count))))
+ (and (listp disposition)
+ (or (equal (car disposition) "attachment")
+ (and (equal (car disposition) "inline")
+ (assq 'filename disposition)))
+ (cl-incf count))))
mm-handle)
count))
(lambda (p)
(let ((disposition (mm-handle-disposition p)))
(and (listp disposition)
- (or (equal (car disposition) "attachment")
- (and (equal (car disposition) "inline")
- (assq 'filename disposition)))
- (or (not queryp)
- (y-or-n-p
- (concat "Save '" (cdr (assq 'filename disposition)) "' ")))
- (mm-save-part p))))
+ (or (equal (car disposition) "attachment")
+ (and (equal (car disposition) "inline")
+ (assq 'filename disposition)))
+ (or (not queryp)
+ (y-or-n-p
+ (concat "Save '" (cdr (assq 'filename disposition)) "' ")))
+ (mm-save-part p))))
mm-handle))
(require 'hl-line)
(goto-char (point-min)))
(defface notmuch-message-summary-face
- '((((class color) (background light)) (:background "#f0f0f0"))
- (((class color) (background dark)) (:background "#303030")))
- "Face for the single-line message summary in notmuch-show-mode."
- :group 'notmuch-show
- :group 'notmuch-faces)
+ '((((class color) (background light)) (:background "#f0f0f0"))
+ (((class color) (background dark)) (:background "#303030")))
+ "Face for the single-line message summary in notmuch-show-mode."
+ :group 'notmuch-show
+ :group 'notmuch-faces)
(defface notmuch-search-date
'((t :inherit default))
(setq truncate-lines t)
(setq buffer-read-only t)
(setq imenu-prev-index-position-function
- #'notmuch-search-imenu-prev-index-position-function)
+ #'notmuch-search-imenu-prev-index-position-function)
(setq imenu-extract-index-name-function
- #'notmuch-search-imenu-extract-index-name-function))
+ #'notmuch-search-imenu-extract-index-name-function))
(defun notmuch-search-get-result (&optional pos)
"Return the result object for the thread at POS (or point).
(current-buffer)
notmuch-search-query-string
;; Name the buffer based on the subject.
- (concat "*" (truncate-string-to-width subject 30 nil nil t) "*"))
+ (concat "*"
+ (truncate-string-to-width subject 30 nil nil t)
+ "*"))
(message "End of search results."))))
(defun notmuch-tree-from-search-current-query ()
(not (string= notmuch-search-target-thread "found")))
(set 'never-found-target-thread t)))))
(when (and never-found-target-thread
- notmuch-search-target-line)
- (goto-char (point-min))
- (forward-line (1- notmuch-search-target-line)))))))))
+ notmuch-search-target-line)
+ (goto-char (point-min))
+ (forward-line (1- notmuch-search-target-line)))))))))
(define-widget 'notmuch--custom-face-edit 'lazy
"Custom face edit with a tag Edit Face"
(the following text would be placed in your ~/.emacs file):
(setq notmuch-search-line-faces \\='((\"unread\" . (:foreground \"green\"))
- (\"deleted\" . (:foreground \"red\"
+ (\"deleted\" . (:foreground \"red\"
:background \"blue\"))))
The FACE must be a face name (a symbol or string), a property
background."
:type '(alist :key-type (string)
:value-type (radio (face :tag "Face name")
- (notmuch--custom-face-edit)))
+ (notmuch--custom-face-edit)))
:group 'notmuch-search
:group 'notmuch-faces)
(visible-string formatted-authors)
(invisible-string "")
(padding ""))
-
;; Truncate the author string to fit the specification.
(if (> (length formatted-authors)
(length formatted-sample))
(length visible-string)
(length "..."))
? ))))
-
;; Use different faces to show matching and non-matching authors.
(if (string-match "\\(.*\\)|\\(.*\\)" visible-string)
;; The visible string contains both matching and
;; The invisible string may contain both matching and
;; non-matching authors.
invisible-string (notmuch-search-author-propertize invisible-string)))
-
;; If there is any invisible text, add it as a tooltip to the
;; visible text.
(when (not (string= invisible-string ""))
- (setq visible-string (propertize visible-string 'help-echo (concat "..." invisible-string))))
-
+ (setq visible-string
+ (propertize visible-string
+ 'help-echo (concat "..." invisible-string))))
;; Insert the visible and, if present, invisible author strings.
(insert visible-string)
(when (not (string= invisible-string ""))
(insert (propertize (format format-string
(notmuch-sanitize (plist-get result :subject)))
'face 'notmuch-search-subject)))
-
((string-equal field "authors")
(notmuch-search-insert-authors
format-string (notmuch-sanitize (plist-get result :authors))))
-
((string-equal field "tags")
(let ((tags (plist-get result :tags))
(orig-tags (plist-get result :orig-tags)))
(longest-length 0))
(cl-loop for tuple in notmuch-saved-searches
if (let ((quoted-query
- (regexp-quote (notmuch-saved-search-get tuple :query))))
+ (regexp-quote
+ (notmuch-saved-search-get tuple :query))))
(and (string-match (concat "^" quoted-query) query)
(> (length (match-string 0 query))
longest-length)))
(concat "*notmuch-saved-search-" saved-search-name "*"))
(saved-search
(concat "*notmuch-search-"
- (replace-regexp-in-string (concat "^" (regexp-quote saved-search-query))
- (concat "[ " saved-search-name " ]")
- query)
+ (replace-regexp-in-string
+ (concat "^" (regexp-quote saved-search-query))
+ (concat "[ " saved-search-name " ]")
+ query)
"*"))
(t
(concat "*notmuch-search-" query "*"))
PROMPT is the string to prompt with."
(let*
((all-tags
- (mapcar (lambda (tag) (notmuch-escape-boolean-term tag))
- (process-lines notmuch-command "search" "--output=tags" "*")))
+ (mapcar (lambda (tag) (notmuch-escape-boolean-term tag))
+ (process-lines notmuch-command "search" "--output=tags" "*")))
(completions
- (append (list "folder:" "path:" "thread:" "id:" "date:" "from:" "to:"
- "subject:" "attachment:")
- (mapcar (lambda (tag) (concat "tag:" tag)) all-tags)
- (mapcar (lambda (tag) (concat "is:" tag)) all-tags)
- (mapcar (lambda (mimetype) (concat "mimetype:" mimetype)) (mailcap-mime-types)))))
+ (append (list "folder:" "path:" "thread:" "id:" "date:" "from:" "to:"
+ "subject:" "attachment:")
+ (mapcar (lambda (tag) (concat "tag:" tag)) all-tags)
+ (mapcar (lambda (tag) (concat "is:" tag)) all-tags)
+ (mapcar (lambda (mimetype) (concat "mimetype:" mimetype))
+ (mailcap-mime-types)))))
(let ((keymap (copy-keymap minibuffer-local-map))
(current-query (cl-case major-mode
(notmuch-search-mode (notmuch-search-get-query))
(if no-display
(set-buffer buffer)
(switch-to-buffer buffer))
- (notmuch-search-mode)
+ ;; avoid wiping out third party buffer-local variables in the case
+ ;; where we're just refreshing or changing the sort order of an
+ ;; existing search results buffer
+ (unless (eq major-mode 'notmuch-search-mode)
+ (notmuch-search-mode))
;; Don't track undo information for this buffer
(set 'buffer-undo-list t)
(set 'notmuch-search-query-string query)
Runs a new search matching only messages that match both the
current search results AND that are tagged with the given tag."
(interactive
- (list (notmuch-select-tag-with-completion "Filter by tag: " notmuch-search-query-string)))
- (notmuch-search (concat notmuch-search-query-string " and tag:" tag) notmuch-search-oldest-first))
+ (list (notmuch-select-tag-with-completion "Filter by tag: "
+ notmuch-search-query-string)))
+ (notmuch-search (concat notmuch-search-query-string " and tag:" tag)
+ notmuch-search-oldest-first))
(defun notmuch-search-by-tag (tag)
"Display threads matching TAG in a notmuch-search buffer."
If the current buffer is the only notmuch buffer, bury it. If no
notmuch buffers exist, run `notmuch'."
(interactive)
-
(let (start first)
;; If the current buffer is a notmuch buffer, remember it and then
;; bury it.