[notmuch] [PATCH -v3] notmuch.el: Add face support to search and show mode
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Mon, 23 Nov 2009 05:21:20 +0000 (10:51 +0530)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:35:40 +0000 (09:35 -0800)
dd/db69e9cde6e8dcf188589cc1d807e82bf4cf1b [new file with mode: 0644]

diff --git a/dd/db69e9cde6e8dcf188589cc1d807e82bf4cf1b b/dd/db69e9cde6e8dcf188589cc1d807e82bf4cf1b
new file mode 100644 (file)
index 0000000..46e374d
--- /dev/null
@@ -0,0 +1,152 @@
+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 2F5D6431FBC\r
+       for <notmuch@notmuchmail.org>; Sun, 22 Nov 2009 21:21:31 -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 b363J-i9C7WQ for <notmuch@notmuchmail.org>;\r
+       Sun, 22 Nov 2009 21:21:30 -0800 (PST)\r
+Received: from e23smtp09.au.ibm.com (e23smtp09.au.ibm.com [202.81.31.142])\r
+       by olra.theworths.org (Postfix) with ESMTP id C0311431FAE\r
+       for <notmuch@notmuchmail.org>; Sun, 22 Nov 2009 21:21:29 -0800 (PST)\r
+Received: from d23relay03.au.ibm.com (d23relay03.au.ibm.com [202.81.31.245])\r
+       by e23smtp09.au.ibm.com (8.14.3/8.13.1) with ESMTP id nANGLSZL004459\r
+       for <notmuch@notmuchmail.org>; Tue, 24 Nov 2009 03:21:28 +1100\r
+Received: from d23av01.au.ibm.com (d23av01.au.ibm.com [9.190.234.96])\r
+       by d23relay03.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id\r
+       nAN5LRxk1429548\r
+       for <notmuch@notmuchmail.org>; Mon, 23 Nov 2009 16:21:27 +1100\r
+Received: from d23av01.au.ibm.com (loopback [127.0.0.1])\r
+       by d23av01.au.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id\r
+       nAN5LRBK000320\r
+       for <notmuch@notmuchmail.org>; Mon, 23 Nov 2009 16:21:27 +1100\r
+Received: from localhost.localdomain (N20wks267599wss.in.ibm.com\r
+       [9.124.31.111] (may be forged))\r
+       by d23av01.au.ibm.com (8.14.3/8.13.1/NCO v10.0 AVin) with ESMTP id\r
+       nAN5LPrP032642; Mon, 23 Nov 2009 16:21:25 +1100\r
+From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>\r
+To: notmuch@notmuchmail.org\r
+Date: Mon, 23 Nov 2009 10:51:20 +0530\r
+Message-Id:\r
+ <1258953680-11605-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 -v3] 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: Mon, 23 Nov 2009 05:21:31 -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 |   40 ++++++++++++++++++++++++++++++++++++++--\r
+ 1 files changed, 38 insertions(+), 2 deletions(-)\r
+\r
+diff --git a/notmuch.el b/notmuch.el\r
+index 1f24461..2aa6d5a 100644\r
+--- a/notmuch.el\r
++++ b/notmuch.el\r
+@@ -686,6 +686,18 @@ which this thread was originally shown."\r
+   (force-window-update)\r
+   (redisplay t))\r
\r
++(defface notmuch-show-subject-face\r
++ '((((class color) (background light)) (:foreground "yellow" :bold t))\r
++    (((class color) (background dark)) (:foreground "yellow" :bold t)))\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
+@@ -726,7 +738,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
+@@ -855,6 +869,17 @@ 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) (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
++  :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
+@@ -885,7 +910,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
+   (save-excursion\r
+-- \r
+1.6.5.2.74.g610f9\r
+\r