notmuch.el: Add a binding ('o') and command to toggle current search order.
authorCarl Worth <cworth@cworth.org>
Fri, 13 Nov 2009 07:16:19 +0000 (23:16 -0800)
committerCarl Worth <cworth@cworth.org>
Fri, 13 Nov 2009 07:16:19 +0000 (23:16 -0800)
This ended up being a bit easier than I thought. Just flip the controlling
variable and then run `notmuch-search-refresh-view'.

notmuch.el

index 05e7c4d1cece5e075e0e6b3f23d7a618750549a1..872397646857956e1a8f67db2077e689a6f704a3 100644 (file)
@@ -615,6 +615,7 @@ thread from that buffer can be show when done with this one)."
     (define-key map "b" 'notmuch-search-scroll-down)
     (define-key map "f" 'notmuch-search-filter)
     (define-key map "n" 'next-line)
+    (define-key map "o" 'notmuch-search-toggle-order)
     (define-key map "p" 'previous-line)
     (define-key map "q" 'kill-this-buffer)
     (define-key map "s" 'notmuch-search)
@@ -820,6 +821,24 @@ same relative position within the new buffer."
        (beginning-of-line)
       (goto-char here))))
 
+(defun notmuch-search-toggle-order ()
+  "Toggle the current search order.
+
+By default, the \"inbox\" view created by `notmuch' is displayed
+in chronological order (oldest thread at the beginning of the
+buffer), while any global searches created by `notmuch-search'
+are displayed in reverse-chronological order (newest thread at
+the beginning of the buffer).
+
+This command toggles the sort order for the current search.
+
+Note that any fitlered searches created by
+`notmuch-search-filter' retain the search order of the parent
+search."
+  (interactive)
+  (set 'notmuch-search-oldest-first (not notmuch-search-oldest-first))
+  (notmuch-search-refresh-view))
+
 (defun notmuch-search-filter (query)
   "Filter the current search results based on an additional query string.