aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch.el
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-11-02 18:23:06 -0800
committerGravatar Carl Worth <cworth@cworth.org>2009-11-02 18:23:06 -0800
commit07b2ef26de452e6ef9f98747e36077c2620d3bce (patch)
tree398a43dede5645dc8724416f2333c5e47da1e24e /notmuch.el
parente5faf380d1c1f544a9ac02672ce3a2b805106900 (diff)
notmuch.el: Add '<' and '>' bindings to goto first/last thread.
Also, take care to remove a final blank line to avoid the point going beyond the last thread in the buffer.
Diffstat (limited to 'notmuch.el')
-rw-r--r--notmuch.el26
1 files changed, 20 insertions, 6 deletions
diff --git a/notmuch.el b/notmuch.el
index 4e350a80..54f4a581 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -61,7 +61,7 @@
(error "notmuch search process already running for query `%s'" query)
)
(erase-buffer)
- (beginning-of-buffer)
+ (goto-char (point-min))
(save-excursion
(call-process "notmuch" nil t nil "show" thread-id)
)
@@ -79,10 +79,19 @@
(define-key map "\r" 'notmuch-search-show-thread)
(define-key map "+" 'notmuch-search-add-tag)
(define-key map "-" 'notmuch-search-remove-tag)
+ (define-key map "<" 'beginning-of-buffer)
+ (define-key map ">" 'notmuch-search-goto-last-thread)
+ (define-key map "\M->" 'notmuch-search-goto-last-thread)
map)
"Keymap for \"notmuch search\" buffers.")
(fset 'notmuch-search-mode-map notmuch-search-mode-map)
+(defun notmuch-search-goto-last-thread (&optional arg)
+ "Move point to the last thread in the buffer."
+ (interactive "^P")
+ (end-of-buffer arg)
+ (beginning-of-line))
+
;;;###autoload
(defun notmuch-search-mode ()
"Major mode for handling the output of \"notmuch search\""
@@ -110,7 +119,7 @@
(defun notmuch-search-markup-thread-ids ()
(save-excursion
- (beginning-of-buffer)
+ (goto-char (point-min))
(while (not (eobp))
(notmuch-search-markup-this-thread-id)
(next-line))))
@@ -189,12 +198,17 @@
(error "notmuch search process already running for query `%s'" query)
)
(erase-buffer)
- (beginning-of-buffer)
+ (goto-char (point-min))
(save-excursion
(call-process "notmuch" nil t nil "search" query)
- )
- (notmuch-search-markup-thread-ids)
- )))
+ (notmuch-search-markup-thread-ids)
+ ; A well-behaved program ends its output with a newline, but we
+ ; don't actually want the blank line at the end of the file.
+ (goto-char (point-max))
+ (if (looking-at "^$")
+ (delete-backward-char 1)
+ )
+ ))))
(defun notmuch-search-filter (query)
"Run \"notmuch search\" to refine the current search results.