X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch.el;h=8b483995cf7f660099e9e2bda7c1bd6c721d9380;hb=8225ff21ec85a70749b2c58283c0a9f714303b4b;hp=11113fe8ca9d1a2edce1545de0f2ace3352b61f2;hpb=e06943f85ea31721d375731b93e5468570d1c375;p=notmuch diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 11113fe8..8b483995 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -89,7 +89,7 @@ For example: (with-output-to-string (with-current-buffer standard-output (apply 'call-process notmuch-command nil t - nil "search-tags" search-terms))) + nil "search" "--output=tags" "--exclude=false" search-terms))) "\n+" t)) (defun notmuch-select-tag-with-completion (prompt &rest search-terms) @@ -249,10 +249,17 @@ For a mouse binding, return nil." (set-buffer-modified-p nil) (view-buffer (current-buffer) 'kill-buffer-if-not-modified)))) -(defcustom notmuch-search-hook '(hl-line-mode) +(require 'hl-line) + +(defun notmuch-hl-line-mode () + (prog1 (hl-line-mode) + (when hl-line-overlay + (overlay-put hl-line-overlay 'priority 1)))) + +(defcustom notmuch-search-hook '(notmuch-hl-line-mode) "List of functions to call when notmuch displays the search results." :type 'hook - :options '(hl-line-mode) + :options '(notmuch-hl-line-mode) :group 'notmuch-search :group 'notmuch-hooks) @@ -494,9 +501,9 @@ Complete list of currently available key bindings: "Return a list of authors for the current region" (notmuch-search-properties-in-region 'notmuch-search-subject beg end)) -(defun notmuch-search-show-thread (&optional crypto-switch) +(defun notmuch-search-show-thread () "Display the currently selected thread." - (interactive "P") + (interactive) (let ((thread-id (notmuch-search-find-thread-id)) (subject (notmuch-prettify-subject (notmuch-search-find-subject)))) (if (> (length thread-id) 0) @@ -504,8 +511,7 @@ Complete list of currently available key bindings: (current-buffer) notmuch-search-query-string ;; Name the buffer based on the subject. - (concat "*" (truncate-string-to-width subject 30 nil nil t) "*") - crypto-switch) + (concat "*" (truncate-string-to-width subject 30 nil nil t) "*")) (message "End of search results.")))) (defun notmuch-search-reply-to-thread (&optional prompt-for-sender) @@ -568,7 +574,7 @@ a list of strings of the form \"+TAG\" or \"-TAG\". the messages that are about to be tagged" :type 'hook - :options '(hl-line-mode) + :options '(notmuch-hl-line-mode) :group 'notmuch-hooks) (defcustom notmuch-after-tag-hook nil @@ -579,7 +585,7 @@ a list of strings of the form \"+TAG\" or \"-TAG\". 'query' will be a string containing the search query that determines the messages that were tagged" :type 'hook - :options '(hl-line-mode) + :options '(notmuch-hl-line-mode) :group 'notmuch-hooks) (defun notmuch-search-set-tags (tags) @@ -866,16 +872,18 @@ non-authors is found, assume that all of the authors match." (goto-char (point-max)) (if (/= (match-beginning 1) line) (insert (concat "Error: Unexpected output from notmuch search:\n" (substring string line (match-beginning 1)) "\n"))) - (let ((beg (point))) - (notmuch-search-show-result date count authors - (notmuch-prettify-subject subject) tags) - (notmuch-search-color-line beg (point) tag-list) - (put-text-property beg (point) 'notmuch-search-thread-id thread-id) - (put-text-property beg (point) 'notmuch-search-authors authors) - (put-text-property beg (point) 'notmuch-search-subject subject) - (when (string= thread-id notmuch-search-target-thread) - (set 'found-target beg) - (set 'notmuch-search-target-thread "found"))) + ;; We currently just throw away excluded matches. + (unless (eq (aref count 1) ?0) + (let ((beg (point))) + (notmuch-search-show-result date count authors + (notmuch-prettify-subject subject) tags) + (notmuch-search-color-line beg (point) tag-list) + (put-text-property beg (point) 'notmuch-search-thread-id thread-id) + (put-text-property beg (point) 'notmuch-search-authors authors) + (put-text-property beg (point) 'notmuch-search-subject subject) + (when (string= thread-id notmuch-search-target-thread) + (set 'found-target beg) + (set 'notmuch-search-target-thread "found")))) (set 'line (match-end 0))) (set 'more nil) (while (and (< line (length string)) (= (elt string line) ?\n)) @@ -954,7 +962,7 @@ PROMPT is the string to prompt with." completions))) (t (list string))))))) ;; this was simpler than convincing completing-read to accept spaces: - (define-key keymap (kbd "") 'minibuffer-complete) + (define-key keymap (kbd "TAB") 'minibuffer-complete) (let ((history-delete-duplicates t)) (read-from-minibuffer prompt nil keymap nil 'notmuch-search-history nil nil)))))