[notmuch] [PATCH -v4] notmuch.el: Add face support to search and show mode
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Wed, 25 Nov 2009 04:58:00 +0000 (10:28 +0530)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:35:42 +0000 (09:35 -0800)
29/aff82769261175a5b908b7a1dadee56254c714 [new file with mode: 0644]

diff --git a/29/aff82769261175a5b908b7a1dadee56254c714 b/29/aff82769261175a5b908b7a1dadee56254c714
new file mode 100644 (file)
index 0000000..c037fb9
--- /dev/null
@@ -0,0 +1,149 @@
+Return-Path: <aneesh.kumar@linux.vnet.ibm.com>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 1A469431FBF\r
+       for <notmuch@notmuchmail.org>; Tue, 24 Nov 2009 20:58:11 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id hOHz6nH1n6cu for <notmuch@notmuchmail.org>;\r
+       Tue, 24 Nov 2009 20:58:10 -0800 (PST)\r
+Received: from e23smtp08.au.ibm.com (e23smtp08.au.ibm.com [202.81.31.141])\r
+       by olra.theworths.org (Postfix) with ESMTP id A486A431FAE\r
+       for <notmuch@notmuchmail.org>; Tue, 24 Nov 2009 20:58:09 -0800 (PST)\r
+Received: from d23relay03.au.ibm.com (d23relay03.au.ibm.com [202.81.31.245])\r
+       by e23smtp08.au.ibm.com (8.14.3/8.13.1) with ESMTP id nAPFw6Sr027971\r
+       for <notmuch@notmuchmail.org>; Thu, 26 Nov 2009 02:58:06 +1100\r
+Received: from d23av02.au.ibm.com (d23av02.au.ibm.com [9.190.235.138])\r
+       by d23relay03.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id\r
+       nAP4w5Ci1777826\r
+       for <notmuch@notmuchmail.org>; Wed, 25 Nov 2009 15:58:05 +1100\r
+Received: from d23av02.au.ibm.com (loopback [127.0.0.1])\r
+       by d23av02.au.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id\r
+       nAP4w5wO010412\r
+       for <notmuch@notmuchmail.org>; Wed, 25 Nov 2009 15:58:05 +1100\r
+Received: from localhost.localdomain ([9.124.31.111])\r
+       by d23av02.au.ibm.com (8.14.3/8.13.1/NCO v10.0 AVin) with ESMTP id\r
+       nAP4w25A010362; Wed, 25 Nov 2009 15:58:03 +1100\r
+From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>\r
+To: notmuch@notmuchmail.org\r
+Date: Wed, 25 Nov 2009 10:28:00 +0530\r
+Message-Id:\r
+ <1259125080-18708-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com>\r
+X-Mailer: git-send-email 1.6.5.2.74.g610f9\r
+Subject: [notmuch] [PATCH -v4] notmuch.el: Add face support to search and\r
+       show mode\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.12\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 25 Nov 2009 04:58:11 -0000\r
+\r
+This add two faces, notmuch-show-subject-face and\r
+notmuch-tag-face. The first face is used to show the subject\r
+line in the notmuch-show-mode and the second one to show tags\r
+in the notmuch-search-mode.\r
+\r
+We can selectively highlight each tag by setting notmuch-tag-face-alist as below\r
+\r
+(defface notmuch-tag-unread-face\r
+ '((((class color) (background light)) (:foreground "goldenrod" :bold t))\r
+    (((class color) (background dark)) (:foreground "goldenrod" :bold t)))\r
+  "Notmuch search mode face used to highligh tags.")\r
+\r
+(defface notmuch-tag-inbox-face\r
+ '((((class color) (background light)) (:foreground "red" :bold t))\r
+    (((class color) (background dark)) (:foreground "red" :bold t)))\r
+  "Notmuch search mode face used to highligh tags.")\r
+\r
+(setq notmuch-tag-face-alist '(("unread" . 'notmuch-tag-unread-face)\r
+                                ("inbox" . 'notmuch-tag-inbox-face)))\r
+(require 'notmuch)\r
+\r
+Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>\r
+---\r
+ notmuch.el |   38 ++++++++++++++++++++++++++++++++++++--\r
+ 1 files changed, 36 insertions(+), 2 deletions(-)\r
+\r
+diff --git a/notmuch.el b/notmuch.el\r
+index 551048a..5737f77 100644\r
+--- a/notmuch.el\r
++++ b/notmuch.el\r
+@@ -663,6 +663,17 @@ which this thread was originally shown."\r
+       (notmuch-show-markup-message)))\r
+   (notmuch-show-hide-markers))\r
\r
++(defface notmuch-show-subject-face\r
++ '((((class color)) (:foreground "red")))\r
++  "Notmuch show mode face used to highligh subject line."\r
++  :group 'notmuch)\r
++\r
++(defvar notmuch-show-font-lock-keywords\r
++  (list ;; header in font-lock-type-face\r
++   (list "\\(Subject:.*$\\)"\r
++       '(1  'notmuch-show-subject-face)))\r
++  "Additonal expression to hightlight in notmuch-show-mode")\r
++\r
+ ;;;###autoload\r
+ (defun notmuch-show-mode ()\r
+   "Major mode for viewing a thread with notmuch.\r
+@@ -695,7 +706,9 @@ view, (remove the \"inbox\" tag from each), with\r
+   (use-local-map notmuch-show-mode-map)\r
+   (setq major-mode 'notmuch-show-mode\r
+       mode-name "notmuch-show")\r
+-  (setq buffer-read-only t))\r
++  (setq buffer-read-only t)\r
++  (set (make-local-variable 'font-lock-defaults)\r
++         '(notmuch-show-font-lock-keywords t)))\r
\r
+ ;;;###autoload\r
\r
+@@ -835,6 +848,16 @@ thread from that buffer can be show when done with this one)."\r
+   (goto-char (point-max))\r
+   (forward-line -1))\r
\r
++(defface notmuch-tag-face\r
++ '((((class color)) (:foreground "red")))\r
++  "Notmuch search mode face used to highligh tags."\r
++  :group 'notmuch)\r
++\r
++(defvar notmuch-tag-face-alist nil\r
++  "List containing the tag list that need to be highlighed")\r
++\r
++(defvar notmuch-search-font-lock-keywords  nil)\r
++\r
+ ;;;###autoload\r
+ (defun notmuch-search-mode ()\r
+   "Major mode for searching mail with notmuch.\r
+@@ -865,7 +888,18 @@ global search.\r
+   (setq truncate-lines t)\r
+   (setq major-mode 'notmuch-search-mode\r
+       mode-name "notmuch-search")\r
+-  (setq buffer-read-only t))\r
++  (setq buffer-read-only t)\r
++  (if (not notmuch-tag-face-alist)\r
++      (add-to-list 'notmuch-search-font-lock-keywords (list\r
++              "\\(([^)]*)$\\)" '(1  'notmuch-tag-face)))\r
++    (progn\r
++  (setq notmuch-search-tags (mapcar 'car notmuch-tag-face-alist))\r
++  (loop for notmuch-search-tag  in notmuch-search-tags\r
++    do (add-to-list 'notmuch-search-font-lock-keywords (list\r
++                              (concat "\\(" notmuch-search-tag "\\)")\r
++                  `(1  ,(cdr (assoc notmuch-search-tag notmuch-tag-face-alist))))))))\r
++  (set (make-local-variable 'font-lock-defaults)\r
++         '(notmuch-search-font-lock-keywords t)))\r
\r
+ (defun notmuch-search-find-thread-id ()\r
+   "Return the thread for the current thread"\r
+-- \r
+1.6.5.2.74.g610f9\r
+\r