contrib: pick: bind M-p and M-n to prev/next thread
authorMark Walters <markwalters1009@gmail.com>
Sun, 25 Aug 2013 19:55:34 +0000 (20:55 +0100)
committerDavid Bremner <bremner@debian.org>
Tue, 3 Sep 2013 09:12:36 +0000 (06:12 -0300)
This adds functions to go to the previous or next thread to
pick. Prev-thread behaves similarly to prev-message in show: if you
are on the top line of a thread it will go to the top of the previous
thread, otherwise it will go to the top of the current thread. Next
thread will always go to the top of the next thread (or the end of
buffer). These are bound to "M-p" and "M-n" by default (matching the
bindings in show).

contrib/notmuch-pick/notmuch-pick.el

index d016014430d94071c9b08d626550532546ce4c6c..f7caaa8272d2ea13496d4a89fffcddfe4d69c9fc 100644 (file)
@@ -250,6 +250,8 @@ FUNC."
     (define-key map "p" 'notmuch-pick-prev-matching-message)
     (define-key map "N" 'notmuch-pick-next-message)
     (define-key map "P" 'notmuch-pick-prev-message)
     (define-key map "p" 'notmuch-pick-prev-matching-message)
     (define-key map "N" 'notmuch-pick-next-message)
     (define-key map "P" 'notmuch-pick-prev-message)
+    (define-key map (kbd "M-p") 'notmuch-pick-prev-thread)
+    (define-key map (kbd "M-n") 'notmuch-pick-next-thread)
     (define-key map "-" 'notmuch-pick-remove-tag)
     (define-key map "+" 'notmuch-pick-add-tag)
     (define-key map "*" 'notmuch-pick-tag-thread)
     (define-key map "-" 'notmuch-pick-remove-tag)
     (define-key map "+" 'notmuch-pick-add-tag)
     (define-key map "*" 'notmuch-pick-tag-thread)
@@ -601,6 +603,17 @@ message will be \"unarchived\", i.e. the tag changes in
     (while (not (or (notmuch-pick-get-prop :first) (eobp)))
       (forward-line -1))))
 
     (while (not (or (notmuch-pick-get-prop :first) (eobp)))
       (forward-line -1))))
 
+(defun notmuch-pick-prev-thread ()
+  (interactive)
+  (forward-line -1)
+  (notmuch-pick-thread-top))
+
+(defun notmuch-pick-next-thread ()
+  (interactive)
+  (forward-line 1)
+  (while (not (or (notmuch-pick-get-prop :first) (eobp)))
+    (forward-line 1)))
+
 (defun notmuch-pick-thread-mapcar (function)
   "Iterate through all messages in the current thread
  and call FUNCTION for side effects."
 (defun notmuch-pick-thread-mapcar (function)
   "Iterate through all messages in the current thread
  and call FUNCTION for side effects."