emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/notmuch-indicator bfb48f7773 28/36: Accept :face in not


From: ELPA Syncer
Subject: [elpa] externals/notmuch-indicator bfb48f7773 28/36: Accept :face in notmuch-indicator-args
Date: Wed, 21 Sep 2022 00:59:21 -0400 (EDT)

branch: externals/notmuch-indicator
commit bfb48f7773d097a93dd083d733fdf2e850a31999
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>

    Accept :face in notmuch-indicator-args
---
 notmuch-indicator.el | 44 +++++++++++++++++++++++++++++---------------
 1 file changed, 29 insertions(+), 15 deletions(-)

diff --git a/notmuch-indicator.el b/notmuch-indicator.el
index 4254a59b15..ef798ec795 100644
--- a/notmuch-indicator.el
+++ b/notmuch-indicator.el
@@ -84,21 +84,30 @@
 (defcustom notmuch-indicator-args '((:terms "tag:unread and tag:inbox" :label 
"@"))
   "List of plists specifying terms for `notmuch-count(1)'.
 
-Each plist consists of two properties, both of which accept a
-string value:
+Each plist consists of one mandarory property and two optional
+ones:
 
-1. The `:terms' holds the command-line arguments passed to
-   `notmuch-count(1)' (read the Notmuch documentation for the
-   technicalities).
+1. The `:terms', which is required, is a string that holds the
+   command-line arguments passed to `notmuch-count(1)' (read the
+   Notmuch documentation for the technicalities).
 
-2. The `:label' is an arbitrary string that is prepended to
-   the return value of the above.
+2. The `:label', which is optional, is an arbitrary string that
+   is prepended to the return value of the above.  If nil or
+   omitted, no label is displayed.
 
-Multiple plists represent separate `notmuch-count(1)' queries.
-These are run sequentially.  Their return values are joined into
-a single string.
+3. The `face', which is optional, is the symbol of a face that is
+   applied to the `:label'.  It should not be quoted, so like
+   :face bold.  Good candidates are `bold', `italic', `success',
+   `warning', `error', though anything will do.  If nil or
+   omitted, no face is used.
 
-For instance, a value like the following defines two commands:
+Multiple plist lists represent separate `notmuch-count(1)'
+queries.  These are run sequentially.  Their return values are
+joined into a single string.
+
+For instance, a value like the following defines two commands (in
+the source code the quotes are escaped---please check the Help
+buffer for the clean code (I dislike markup in doc strings)):
 
     (setq notmuch-indicator-args
           \='((:terms \"tag:unread and tag:inbox\" :label \"@\")
@@ -141,9 +150,11 @@ option `notmuch-indicator-refresh-count'."
    (shell-command-to-string
     (format "notmuch count %s" terms))))
 
-(defun notmuch-indicator--format-label (label count)
-  "Format LABEL and COUNT of `notmuch-indicator-args'."
-  (format "%s%s " (or label  "") count))
+(defun notmuch-indicator--format-label (label count face)
+  "Format LABEL, COUNT, FACE of `notmuch-indicator-args'."
+  (if (and face label)
+      (format "%s%s " (propertize label 'face face) count)
+    (format "%s%s " (or label "") count)))
 
 (defun notmuch-indicator--format-output (properties)
   "Format PROPERTIES of `notmuch-indicator-args'."
@@ -151,7 +162,10 @@ option `notmuch-indicator-refresh-count'."
     (if (and (zerop (string-to-number count))
              notmuch-indicator-hide-empty-counters)
         ""
-      (notmuch-indicator--format-label (plist-get properties :label) count))))
+      (notmuch-indicator--format-label
+       (plist-get properties :label)
+       count
+       (plist-get properties :face)))))
 
 (defun notmuch-indicator--return-count ()
   "Parse `notmuch-indicator-args' and format them as single string."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]