Re: [PATCH] notmuch-show: add notmuch-show-auto-mark-read option

Subject: Re: [PATCH] notmuch-show: add notmuch-show-auto-mark-read option

Date: Tue, 07 Aug 2012 16:49:24 +0100

To: Michal Nazarewicz, notmuch@notmuchmail.org

Cc:

From: Mark Walters


On Tue, 07 Aug 2012, Michal Nazarewicz <mpn@google.com> wrote:
>> On Mon, 06 Aug 2012, Michal Nazarewicz <mpn@google.com> wrote:
>>> @@ -1374,9 +1382,11 @@ current thread."
>>>    "Are the headers of the current message visible?"
>>>    (notmuch-show-get-prop :headers-visible))
>>>  
>>> -(defun notmuch-show-mark-read ()
>>> -  "Mark the current message as read."
>>> -  (notmuch-show-tag-message "-unread"))
>>> +(defun notmuch-show-mark-read (&optional force)
>>> +  "Mark the current message as read if FORCE or
>>> +`notmuch-show-auto-mark-read' is non-nil."
>>> +  (when (or force notmuch-show-auto-mark-read)
>>> +    (notmuch-show-tag-message "-unread")))
>
> Mark Walters <markwalters1009@gmail.com> writes:
>> As an alternative approach would allowing a list of tags (or even tag
>> changes) to apply when a message is "read" do what you want and be more
>> flexible?
>
> Something like the following (not tested)?

Yes this was what I had in mind. I like this (both the symmetry with
reply tags and the added flexibility) but I will let others
comment. (There is one small bug in your draft: see below)

Best wishes

Mark

> From: Michal Nazarewicz <mina86@mina86.com>
> Date: Mon, 6 Aug 2012 15:31:20 +0200
> Subject: [PATCH] notmuch-show: add notmuch-show-mark-read-tags option
>
> The `notmuch-show-mark-read-tags' lists tags that are to be applied when
> message is read.  By default, the only value is "-unread" which will remove
> the unread tag.  Among other uses, this variable can be used to stop
> notmuch-show from modifying tags when message is shown (by setting the
> variable to an empty list).
> ---
>  emacs/notmuch-show.el |   12 ++++++++++--
>  1 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
> index dcfc190..92a4beb 100644
> --- a/emacs/notmuch-show.el
> +++ b/emacs/notmuch-show.el
> @@ -183,6 +183,13 @@ provided with an MLA argument nor `completing-read' input."
>  	     notmuch-show-stash-mlarchive-link-alist))
>    :group 'notmuch-show)
>  
> +(defcustom notmuch-show-mark-read-tags '("-unread")
> +  "List of tags to apply when message is read, ie. shown in notmuch-show
> +buffer."
> +  :type '(repeat string)
> +  :group 'notmuch-show)
> +
> +
>  (defmacro with-current-notmuch-show-message (&rest body)
>    "Evaluate body with current buffer set to the text of current message"
>    `(save-excursion
> @@ -1383,8 +1390,9 @@ current thread."
>    (notmuch-show-get-prop :headers-visible))
>  
>  (defun notmuch-show-mark-read ()
> -  "Mark the current message as read."
> -  (notmuch-show-tag-message "-unread"))
> +  "Apply `notmuch-show-mark-read-tags' to the message."
> +  (when notmuch-show-mark-read-tags
> +    (apply notmuch-show-tag-message notmuch-show-mark-read-tags)))

 This needs to be (apply 'notmuch-show-tag-message ...)
>  
>  ;; Functions for getting attributes of several messages in the current
>  ;; thread.
>
> -- 
> Best regards,                                         _     _
> .o. | Liege of Serenely Enlightened Majesty of      o' \,=./ `o
> ..o | Computer Science,  Michał “mina86” Nazarewicz    (o o)
> ooo +----<email/xmpp: mpn@google.com>--------------ooO--(_)--Ooo--

Thread: