X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=emacs%2Fnotmuch.el;h=40b9fabdbc49c53a17720f1615a3984a8eb15558;hp=079a3d1fdd1e9b7053d053f40b04e6607c4f335c;hb=0b76e4a6f45b051bfcaf9f058d3162b423007294;hpb=fae3d361f282ce52430a28d73a40d024783e08d2 diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 079a3d1f..40b9fabd 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -313,8 +313,12 @@ there will be called at other points of notmuch execution." :group 'notmuch-faces) (defface notmuch-search-flagged-face - '((t - (:weight bold))) + '((((class color) + (background dark)) + (:foreground "LightBlue1")) + (((class color) + (background light)) + (:foreground "blue"))) "Face used in search mode face for flagged threads. This face is the default value for the \"flagged\" tag in @@ -324,7 +328,7 @@ This face is the default value for the \"flagged\" tag in (defface notmuch-search-unread-face '((t - (:foreground "blue"))) + (:weight bold))) "Face used in search mode for unread threads. This face is the default value for the \"unread\" tag in @@ -398,17 +402,17 @@ returns nil" (next-single-property-change (or pos (point)) 'notmuch-search-result nil (point-max)))) -(defun notmuch-search-foreach-result (beg end function) - "Invoke FUNCTION for each result between BEG and END. +(defun notmuch-search-foreach-result (beg end fn) + "Invoke FN for each result between BEG and END. -FUNCTION should take one argument. It will be applied to the +FN should take one argument. It will be applied to the character position of the beginning of each result that overlaps the region between points BEG and END. As a special case, if (= -BEG END), FUNCTION will be applied to the result containing point +BEG END), FN will be applied to the result containing point BEG." (lexical-let ((pos (notmuch-search-result-beginning beg)) - ;; End must be a marker in case function changes the + ;; End must be a marker in case fn changes the ;; text. (end (copy-marker end)) ;; Make sure we examine at least one result, even if @@ -419,7 +423,7 @@ BEG." ;; pos. (while (and pos (or (< pos end) first)) (when (notmuch-search-get-result pos) - (funcall function pos)) + (funcall fn pos)) (setq pos (notmuch-search-result-end pos) first nil)))) ;; Unindent the function argument of notmuch-search-foreach-result so @@ -562,12 +566,15 @@ Returns (TAG-CHANGES REGION-BEGIN REGION-END)." See `notmuch-tag' for information on the format of TAG-CHANGES. When called interactively, this uses the region if the region is active. When called directly, BEG and END provide the region. -If these are nil or not provided, this applies to the thread at -point. +If these are nil or not provided, then, if the region is active +this applied to all threads meeting the region, and if the region +is inactive this applies to the thread at point. If ONLY-MATCHED is non-nil, only tag matched messages." (interactive (notmuch-search-interactive-tag-changes)) - (unless (and beg end) (setq beg (point) end (point))) + (unless (and beg end) + (setq beg (car (notmuch-search-interactive-region)) + end (cadr (notmuch-search-interactive-region)))) (let ((search-string (notmuch-search-find-stable-query-region beg end only-matched))) (notmuch-tag search-string tag-changes) @@ -670,9 +677,16 @@ of the result." (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" + ;; I could not persuage custom-face-edit to respect the :tag + ;; property so create a widget specially + :tag "Manually specify face" + :type 'custom-face-edit) + (defcustom notmuch-search-line-faces - '(("unread" 'notmuch-search-unread-face) - ("flagged" 'notmuch-search-flagged-face)) + '(("unread" . notmuch-search-unread-face) + ("flagged" . notmuch-search-flagged-face)) "Alist of tags to faces for line highlighting in notmuch-search. Each element looks like (TAG . FACE). A thread with TAG will have FACE applied. @@ -690,7 +704,9 @@ matching tags are merged, with earlier attributes overriding later. A message having both \"deleted\" and \"unread\" tags with the above settings would have a green foreground and blue background." - :type '(alist :key-type (string) :value-type (custom-face-edit)) + :type '(alist :key-type (string) + :value-type (radio (face :tag "Face name") + (notmuch--custom-face-edit))) :group 'notmuch-search :group 'notmuch-faces) @@ -924,8 +940,8 @@ PROMPT is the string to prompt with." "Return the current query in this search buffer" notmuch-search-query-string) -;;;###autoload (put 'notmuch-search 'notmuch-doc "Search for messages.") +;;;###autoload (defun notmuch-search (&optional query oldest-first target-thread target-line no-display) "Display threads matching QUERY in a notmuch-search buffer. @@ -1057,8 +1073,9 @@ current search results AND that are tagged with the given tag." (with-current-buffer b (memq major-mode '(notmuch-show-mode notmuch-search-mode + notmuch-tree-mode notmuch-hello-mode - message-mode)))) + notmuch-message-mode)))) ;;;###autoload (defun notmuch-cycle-notmuch-buffers ()