[PATCH v3 1/2] emacs: User-defined sections in notmuch-hello

Michal Sojka sojkam1 at fel.cvut.cz
Fri Jul 8 14:23:40 PDT 2011


On Thu, 07 Jul 2011, Daniel Schoepe wrote:
Non-text part: multipart/signed
> On Thu, 07 Jul 2011 17:23:13 +0200, Michal Sojka <sojkam1 at fel.cvut.cz> wrote:
> > This wouldn't work for me. My all-tags section covers almost entire
> > screen and finding non-zero entries there is not very convenient. I find
> > much more useful to have a section saying: "Hey, you have unread
> > messages only for these three tags". Moreover, it wouldn't help me to see
> > non-zero number of unread messages and when I click the button I would
> > see all the messages, not only the unread ones. It simply seems very
> > confusing to me.
> 
> I agree with you, personally, but I don't think this particular bit
> (:hide-empty-searches) increases code complexity that much (and all of
> it is localized to the functions generating the sections, which possibly
> should be moved to a separate file). I also find it plausible that a
> user might want behavior like this (as, e.g. an overview, if he doesn't
> want an all tags section, but still see what tags he has set).
> 
> Hence I don't see why we should not provide this option.

OK. I changed my mind. I thought that the approach with 'notmuch
search-tags QEURY' followed by 'notmuch count tag:XXX and QUERY' for
returned tags would be faster then 'notmuch search-tags' followed by
'notmuch count tag:XXX and QUERY' for all tags, but it turned out not to
be the case.

I played with the customization interface a bit and found the following
problems:

- It is annoying to insert section titles that includes ": " at the end
  in order to be nicely "rendered". I think this could be appended
  automatically.

- :hide-empty-tags should be renamed in :hide-empty-searches to be
  effective (see the patch below).

- The title of custom tags section was not passed correctly to the
  functions. This is also fixed in the patch below.

-Michal

diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
index 9c18caa..7e81076 100644
--- a/emacs/notmuch-hello.el
+++ b/emacs/notmuch-hello.el
@@ -113,7 +113,7 @@ Typically \",\" in the US and UK and \".\" in Europe."
 	   (:make-count (string :tag "Different query to generate counts"))
 	   (:hide-tags (repeat :tag "Tags that will be hidden" string))
 	   (:initially-hidden (boolean :tag "Hide this on startup?"))
-	   (:hide-empty-tags (boolean :tag "Hide tags with no matching messages"))
+	   (:hide-empty-searches (boolean :tag "Hide tags with no matching messages"))
 	   (:hide-if-empty (boolean :tag "Hide if empty")))))
     `(list (const :tag "" notmuch-hello-insert-tags-section)
 	   (plist :inline t :options ,opts))))
@@ -129,7 +129,7 @@ Typically \",\" in the US and UK and \".\" in Europe."
 	 (plist :inline t
 		:options
 		((:initially-hidden (boolean :tag "Hide this on startup?"))
-		 (:hide-empty-tags
+		 (:hide-empty-searches
 		  (boolean :tag "Hide tags with no matching messages"))
 		 (:hide-if-empty (boolean :tag "Hide if empty"))))))
 
@@ -629,7 +629,7 @@ Supports the following entries in OPTIONS as a plist:
 	(indent-rigidly start (point) notmuch-hello-indent)
 	target-pos))))
 
-(defun notmuch-hello-insert-tags-section (&optional title &rest options)
+(defun notmuch-hello-insert-tags-section (&rest options)
   "Insert a section displaying all tags and message counts for each.
 
 TITLE defaults to \"All tags: \".
@@ -638,7 +638,7 @@ following:
 
 :hide-tags - List of tags that should be excluded."
   (apply 'notmuch-hello-insert-searches
-	 (or title "All tags: ")
+	 (plist-get options :title)
 	 (notmuch-hello-generate-tag-alist
 	  (plist-get options :hide-tags)
 	  (plist-get options :make-query)
@@ -656,8 +656,8 @@ following:
 
 (defun notmuch-hello-insert-alltags ()
   "Insert a section displaying all tags and associated message counts"
-  (notmuch-hello-insert-tags-section nil :initially-hidden
-				     (not notmuch-show-all-tags-list)))
+  (notmuch-hello-insert-tags-section :title "All tags: "
+				     :initially-hidden (not notmuch-show-all-tags-list)))
 
 (defun notmuch-hello-insert-footer ()
   "Insert the notmuch-hello footer."


More information about the notmuch mailing list