[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