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 37009418C3C for ; Wed, 19 May 2010 01:55:00 -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, RCVD_IN_DNSWL_NONE=-0.0001] 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 k6fnXfWaQW0Q for ; Wed, 19 May 2010 01:54:48 -0700 (PDT) Received: from mail-ew0-f213.google.com (mail-ew0-f213.google.com [209.85.219.213]) by olra.theworths.org (Postfix) with ESMTP id 0614240CAE9 for ; Wed, 19 May 2010 01:53:47 -0700 (PDT) Received: by mail-ew0-f213.google.com with SMTP id 5so1814155ewy.0 for ; Wed, 19 May 2010 01:53:47 -0700 (PDT) Received: by 10.213.51.212 with SMTP id e20mr3608242ebg.85.1274259227479; Wed, 19 May 2010 01:53:47 -0700 (PDT) Received: from ut.hh.sledj.net (host83-217-165-81.dsl.vispa.com [83.217.165.81]) by mx.google.com with ESMTPS id 13sm3495931ewy.9.2010.05.19.01.53.43 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 19 May 2010 01:53:45 -0700 (PDT) Received: by ut.hh.sledj.net (Postfix, from userid 1000) id 562F3594098; Wed, 19 May 2010 08:03:45 +0100 (BST) From: David Edmondson To: notmuch@notmuchmail.org Subject: [PATCH 06/13] emacs: Allow control over faces for search mode columns. Date: Wed, 19 May 2010 08:03:33 +0100 Message-Id: <1274252620-1249-7-git-send-email-dme@dme.org> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1274252620-1249-1-git-send-email-dme@dme.org> References: <1274252620-1249-1-git-send-email-dme@dme.org> 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: Wed, 19 May 2010 08:55:00 -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. --- 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.1