[PATCH 2/4] emacs: tree: bind o to toggle sort order
Mark Walters
markwalters1009 at gmail.com
Fri Jun 26 15:50:33 PDT 2015
---
emacs/notmuch-tree.el | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el
index 8b6cd51..6afed76 100644
--- a/emacs/notmuch-tree.el
+++ b/emacs/notmuch-tree.el
@@ -194,6 +194,10 @@ (defvar notmuch-tree-message-buffer nil
(make-variable-buffer-local 'notmuch-tree-message-buffer)
(put 'notmuch-tree-message-buffer 'permanent-local t)
+(defvar notmuch-tree-oldest-first nil
+ "Controls whether to sort oldest-first or not")
+(make-variable-buffer-local 'notmuch-tree-oldest-first)
+
(defun notmuch-tree-to-message-pane (func)
"Execute FUNC in message pane.
@@ -265,6 +269,7 @@ (defvar notmuch-tree-mode-map
(define-key map "A" 'notmuch-tree-archive-thread)
(define-key map "a" 'notmuch-tree-archive-message-then-next)
(define-key map "=" 'notmuch-tree-refresh-view)
+ (define-key map "o" 'notmuch-tree-toggle-order)
(define-key map "z" 'notmuch-tree-to-tree)
(define-key map "n" 'notmuch-tree-next-matching-message)
(define-key map "p" 'notmuch-tree-prev-matching-message)
@@ -562,6 +567,18 @@ (defun notmuch-tree-refresh-view ()
query-context
target)))
+(defun notmuch-tree-toggle-order ()
+ "Toggle the current search order.
+
+By default, the threads in `notmuch-tree' are displayed
+reverse-chronological order (newest thread at the beginning of
+the buffer).
+
+This command toggles the sort order for the current search."
+ (interactive)
+ (setq notmuch-tree-oldest-first (not notmuch-tree-oldest-first))
+ (notmuch-tree-refresh-view))
+
(defun notmuch-tree-thread-top ()
(when (notmuch-tree-get-message-properties)
(while (not (or (notmuch-tree-get-prop :first) (eobp)))
@@ -872,7 +889,11 @@ (defun notmuch-tree-worker (basic-query &optional query-context target open-targ
(let ((proc (notmuch-start-notmuch
"notmuch-tree" (current-buffer) #'notmuch-tree-process-sentinel
"show" "--body=false" "--format=sexp"
- message-arg search-args))
+ message-arg
+ (if oldest-first
+ "--sort=oldest-first"
+ "--sort=newest-first")
+ search-args))
;; Use a scratch buffer to accumulate partial output.
;; This buffer will be killed by the sentinel, which
;; should be called no matter how the process dies.
--
2.1.4
More information about the notmuch
mailing list