On Wed, 28 Dec 2011 08:29:58 +0000, David Edmondson <d...@dme.org> wrote: > As suggested by j4ni in #notmuch, rename > `notmuch-jump-to-recent-buffer' as `notmuch-cycle-notmuch-buffers' and > have it behave accordingly. > > Consider `message-mode' buffers to be of interest. > --- > emacs/notmuch.el | 42 ++++++++++++++++++++++++++++++------------ > 1 files changed, 30 insertions(+), 12 deletions(-) > > diff --git a/emacs/notmuch.el b/emacs/notmuch.el > index c678c93..6a44d49 100644 > --- a/emacs/notmuch.el > +++ b/emacs/notmuch.el > @@ -1055,21 +1055,39 @@ current search results AND that are tagged with the > given tag." > (interactive) > (notmuch-hello)) > > +(defun notmuch-interesting-buffer (b) > + "Is the current buffer of interest to a notmuch user?" > + (with-current-buffer b > + (memq major-mode '(notmuch-show-mode > + notmuch-search-mode > + notmuch-hello-mode > + message-mode)))) > + > ;;;###autoload > -(defun notmuch-jump-to-recent-buffer () > - "Jump to the most recent notmuch buffer (search, show or hello). > +(defun notmuch-cycle-notmuch-buffers () > + "Cycle through any existing notmuch buffers (search, show or hello). > > -If no recent buffer is found, run `notmuch'." > +If the current buffer is the only notmuch buffer, bury it. If no > +notmuch buffers exist, run `notmuch'." > (interactive) > - (let ((last > - (loop for buffer in (buffer-list) > - if (with-current-buffer buffer > - (memq major-mode '(notmuch-show-mode > - notmuch-search-mode > - notmuch-hello-mode))) > - return buffer))) > - (if last > - (switch-to-buffer last) > + > + (let (start first) > + ;; If the current buffer is a notmuch buffer, remember it and then > + ;; bury it. > + (when (notmuch-interesting-buffer (current-buffer)) > + (setq start (current-buffer)) > + (bury-buffer)) > + > + ;; Find the first notmuch buffer. > + (setq first (loop for buffer in (buffer-list) > + if (notmuch-interesting-buffer buffer) > + return buffer)) > + > + (if first > + ;; If the first one we found is any other than the starting > + ;; buffer, switch to it. > + (unless (eq first start) > + (switch-to-buffer first)) > (notmuch)))) > > (setq mail-user-agent 'notmuch-user-agent) > -- > 1.7.7.3
Signed-off-by: Pieter Praet <pie...@praet.org> ! Might I ask, to what key(chord) have you bound this ? Due to its usefulness, I'm inclined to bind it to [SPC], but on second though, that might be a bit on the intense side... Peace -- Pieter _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch