William Casarin <jb55@jb55.com> writes: > This is the notmuch-tree version of > notmuch-show-archive-message-than-next-or-exit. > > Signed-off-by: William Casarin <jb55@jb55.com> > --- > emacs/notmuch-tree.el | 30 ++++++++++++++++++++---------- > 1 file changed, 20 insertions(+), 10 deletions(-) > > diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el > index 367b10c4..fd6f9f83 100644 > --- a/emacs/notmuch-tree.el > +++ b/emacs/notmuch-tree.el > @@ -563,6 +563,15 @@ message will be \"unarchived\", i.e. the tag changes in > (notmuch-tree-archive-message unarchive) > (notmuch-tree-next-matching-message)) > > +(defun notmuch-tree-archive-message-then-next-or-exit () > + "Archive current message, then show next open message in current thread. > + > +If at the last open message in the current thread, then exit back > +to search results." > + (interactive) > + (notmuch-tree-archive-message) > + (notmuch-tree-next-matching-message t)) > + > (defun notmuch-tree-next-message () > "Move to next message." > (interactive) > @@ -588,23 +597,24 @@ nil otherwise." > (forward-line (if prev -1 nil))) > (not last))) > > -(defun notmuch-tree-matching-message (&optional prev) > +(defun notmuch-tree-matching-message (&optional prev pop-at-end) > "Move to the next or previous matching message" > (interactive "P") > (forward-line (if prev -1 nil)) > - (notmuch-tree-goto-matching-message prev) > - (when (window-live-p notmuch-tree-message-window) > - (notmuch-tree-show-message-in))) > + (if (and pop-at-end (not (notmuch-tree-goto-matching-message prev))) bah, this should be (if (and (not (notmuch-tree-goto-matching-message prev)) pop-at-end) since short-circuit evaulation prevents the goto-matching-message from getting called. I'll push out a v2 later if this gets enough Concept ACKs. > + (notmuch-tree-quit pop-at-end) > + (when (window-live-p notmuch-tree-message-window) > + (notmuch-tree-show-message-in)))) > > -(defun notmuch-tree-prev-matching-message () > +(defun notmuch-tree-prev-matching-message (&optional pop-at-end) > "Move to previous matching message." > - (interactive) > - (notmuch-tree-matching-message t)) > + (interactive "P") > + (notmuch-tree-matching-message t pop-at-end)) > > -(defun notmuch-tree-next-matching-message () > +(defun notmuch-tree-next-matching-message (&optional pop-at-end) > "Move to next matching message." > - (interactive) > - (notmuch-tree-matching-message)) > + (interactive "P") > + (notmuch-tree-matching-message nil pop-at-end)) > > (defun notmuch-tree-refresh-view () > "Refresh view." > -- > 2.23.0 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch