Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 8F77D4196F0 for ; Thu, 29 Apr 2010 00:32:17 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lEZUe0re9lZA for ; Thu, 29 Apr 2010 00:32:16 -0700 (PDT) Received: from mail-ww0-f53.google.com (mail-ww0-f53.google.com [74.125.82.53]) by olra.theworths.org (Postfix) with ESMTP id 2D082431FC1 for ; Thu, 29 Apr 2010 00:32:16 -0700 (PDT) Received: by wwe15 with SMTP id 15so508808wwe.26 for ; Thu, 29 Apr 2010 00:32:15 -0700 (PDT) Received: by 10.216.157.73 with SMTP id n51mr1824103wek.159.1272526333652; Thu, 29 Apr 2010 00:32:13 -0700 (PDT) Received: from ut.hh.sledj.net (gmp-ea-fw-1b.sun.com [192.18.8.1]) by mx.google.com with ESMTPS id z3sm5037021wbs.22.2010.04.29.00.32.11 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 29 Apr 2010 00:32:12 -0700 (PDT) Received: by ut.hh.sledj.net (Postfix, from userid 1000) id C9F2659411F; Thu, 29 Apr 2010 08:32:32 +0100 (BST) From: David Edmondson To: notmuch@notmuchmail.org Subject: [PATCH] emacs: Allow control over faces for search mode columns. Date: Thu, 29 Apr 2010 08:32:31 +0100 Message-Id: <1272526351-26770-1-git-send-email-dme@dme.org> X-Mailer: git-send-email 1.7.0 X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2010 07:32:17 -0000 Add face declarations for the date, count, matching author and subject columns in search mode and apply those faces when building the search mode display. --- This is intended to support 'fruit salad' mode: http://dme.org/images/2010-04-29-081213_1590x1197_scrot.png emacs/notmuch.el | 59 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 43 insertions(+), 16 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index d36a92d..7c9c028 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -285,27 +285,48 @@ For a mouse binding, return nil." "Face for the single-line message summary in notmuch-show-mode." :group 'notmuch) -(defface notmuch-tag-face +(defface notmuch-search-date + '((t :inherit default)) + "Face used in search mode for dates." + :group 'notmuch) + +(defface notmuch-search-count + '((t :inherit default)) + "Face used in search mode for the count matching the query." + :group 'notmuch) + +(defface notmuch-search-subject + '((t :inherit default)) + "Face used in search mode for subjects." + :group 'notmuch) + +(defface notmuch-search-matching-authors + '((t :inherit default)) + "Face used in search mode for authors matching the query." + :group 'notmuch) + +(defface notmuch-search-non-matching-authors '((((class color) (background dark)) - (:foreground "OliveDrab1")) + (:foreground "grey30")) (((class color) (background light)) - (:foreground "navy blue" :bold t)) + (:foreground "grey60")) (t - (:bold t))) - "Notmuch search mode face used to highligh tags." + (:italic t))) + "Face used in search mode for authors not matching the query." :group 'notmuch) -(defface notmuch-search-non-matching-authors +(defface notmuch-tag-face '((((class color) (background dark)) - (:foreground "grey30")) + (:foreground "OliveDrab1")) (((class color) (background light)) - (:foreground "grey60")) - (t (:italic t))) - "Face used in search mode for authors not matching the query." + (:foreground "navy blue" :bold t)) + (t + (:bold t))) + "Face used in search mode face for tags." :group 'notmuch) ;;;###autoload @@ -599,21 +620,27 @@ matching will be applied." ;; `notmuch-search-process-filter'. (save-match-data (if (string-match "\\(.*\\)|\\(..*\\)" truncated-string) - (concat (match-string 1 truncated-string) "," + (concat (propertize (concat (match-string 1 truncated-string) ",") + 'face 'notmuch-search-matching-authors) (propertize (match-string 2 truncated-string) 'face 'notmuch-search-non-matching-authors)) - truncated-string))))) + (propertize truncated-string 'face 'notmuch-search-matching-authors)))))) (defun notmuch-search-insert-field (field date count authors subject tags) (cond ((string-equal field "date") - (insert (format (cdr (assoc field notmuch-search-result-format)) date))) + (insert (propertize (format (cdr (assoc field notmuch-search-result-format)) date) + 'face 'notmuch-search-date))) ((string-equal field "count") - (insert (format (cdr (assoc field notmuch-search-result-format)) count))) + (insert (propertize (format (cdr (assoc field notmuch-search-result-format)) count) + 'face 'notmuch-search-count))) + ((string-equal field "subject") + (insert (propertize (format (cdr (assoc field notmuch-search-result-format)) subject) + 'face 'notmuch-search-subject))) + ((string-equal field "authors") (notmuch-search-insert-authors (cdr (assoc field notmuch-search-result-format)) authors)) - ((string-equal field "subject") - (insert (format (cdr (assoc field notmuch-search-result-format)) subject))) + ((string-equal field "tags") (insert (concat "(" (propertize tags 'font-lock-face 'notmuch-tag-face) ")"))))) -- 1.7.0