emacs: add option to show-next-{, open-}message functions to pop out to parent buffer...
authorJameson Graef Rollins <jrollins@finestructure.net>
Wed, 25 Jan 2012 00:06:20 +0000 (16:06 -0800)
committerDavid Bremner <bremner@debian.org>
Tue, 31 Jan 2012 03:23:49 +0000 (23:23 -0400)
This will allow for keybindings that achieve a smoother message
processing flow by reducing the number of key presses needed for most
common operations.

emacs/notmuch-show.el

index 2871350459dc2e7b349f86e8c8b15473034b5a92..293c00b669cdfbaa563746c2dae4f5cb13c0d6f3 100644 (file)
@@ -1390,14 +1390,19 @@ any effects from previous calls to
   (with-current-notmuch-show-message
    (notmuch-mua-new-forward-message prompt-for-sender)))
 
-(defun notmuch-show-next-message ()
-  "Show the next message."
-  (interactive)
+(defun notmuch-show-next-message (&optional pop-at-end)
+  "Show the next message.
+
+If a prefix argument is given and this is the last message in the
+thread, navigate to the next thread in the parent search buffer."
+  (interactive "P")
   (if (notmuch-show-goto-message-next)
       (progn
        (notmuch-show-mark-read)
        (notmuch-show-message-adjust))
-    (goto-char (point-max))))
+    (if pop-at-end
+       (notmuch-show-next-thread)
+      (goto-char (point-max)))))
 
 (defun notmuch-show-previous-message ()
   "Show the previous message."
@@ -1406,9 +1411,13 @@ any effects from previous calls to
   (notmuch-show-mark-read)
   (notmuch-show-message-adjust))
 
-(defun notmuch-show-next-open-message ()
-  "Show the next message."
-  (interactive)
+(defun notmuch-show-next-open-message (&optional pop-at-end)
+  "Show the next open message.
+
+If a prefix argument is given and this is the last open message
+in the thread, navigate to the next thread in the parent search
+buffer."
+  (interactive "P")
   (let (r)
     (while (and (setq r (notmuch-show-goto-message-next))
                (not (notmuch-show-message-visible-p))))
@@ -1416,7 +1425,9 @@ any effects from previous calls to
        (progn
          (notmuch-show-mark-read)
          (notmuch-show-message-adjust))
-      (goto-char (point-max)))))
+      (if pop-at-end
+         (notmuch-show-next-thread)
+       (goto-char (point-max))))))
 
 (defun notmuch-show-previous-open-message ()
   "Show the previous message."