[PATCH 4/4] emacs: add refresh all buffers function

Mark Walters markwalters1009 at gmail.com
Fri Sep 16 13:40:56 PDT 2016


On Sat, 10 Sep 2016, Ioan-Adrian Ratiu <adi at adirat.com> wrote:
> This new notmuch-refresh-all-buffers function calls each buffer's major
> mode specific refresh function using the generic function
> notmuch-refresh-this-buffer.
>
> It is very useful because by passing a non-nil arg to the buffer specific
> refresh functions it refreshes all notmuch buffers in the background and
> this again is very useful when doing periodic timer-based mail syncing.
>
> Signed-off-by: Ioan-Adrian Ratiu <adi at adirat.com>
> ---
>  emacs/notmuch-lib.el | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
>
> diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
> index 6618365..4cc2041 100644
> --- a/emacs/notmuch-lib.el
> +++ b/emacs/notmuch-lib.el
> @@ -428,6 +428,21 @@ in a window on screen, no-display has no effect."
>    (notmuch-poll)
>    (notmuch-refresh-this-buffer))
>  
> +(defun notmuch-refresh-all-buffers (&optional no-display)
> +  "Invoke `notmuch-refresh-this-buffer' on all notmuch major-mode buffers.
> +
> +If no-display is non-nil all buffers are silently refreshed, i.e. they are
> +not foregrounded even if not displayed in any window. If no-display is nil
> +then each buffer's mode-specific refresh function uses its default behaviour."
> +  (let ((buffers (buffer-list)))
> +    (while buffers
> +      (setq buffer (car buffers)
> +	    buffers (cdr buffers)
> +	    buffer-mode (buffer-local-value 'major-mode buffer))

I think this is a case where dolist might be more idiomatic (and maybe
you want buffer to be local to this function?)

> +      (when (string-prefix-p "notmuch" (format "%s" buffer-mode))
> +	(with-current-buffer buffer
> +	  (notmuch-refresh-this-buffer no-display))))))

Is there a problem with this being slow if there are lots of show
buffers? notmuch show is synchronous? I am not saying it is a problem,
just wondered if you had considered it.

Best wishes

Mark

> +
>  (defun notmuch-prettify-subject (subject)
>    ;; This function is used by `notmuch-search-process-filter' which
>    ;; requires that we not disrupt its' matching state.
> -- 
> 2.9.3
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> https://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list