mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
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.
This commit is contained in:
parent
e5faf380d1
commit
07b2ef26de
1 changed files with 20 additions and 6 deletions
26
notmuch.el
26
notmuch.el
|
@ -61,7 +61,7 @@
|
||||||
(error "notmuch search process already running for query `%s'" query)
|
(error "notmuch search process already running for query `%s'" query)
|
||||||
)
|
)
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
(beginning-of-buffer)
|
(goto-char (point-min))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(call-process "notmuch" nil t nil "show" thread-id)
|
(call-process "notmuch" nil t nil "show" thread-id)
|
||||||
)
|
)
|
||||||
|
@ -79,10 +79,19 @@
|
||||||
(define-key map "\r" 'notmuch-search-show-thread)
|
(define-key map "\r" 'notmuch-search-show-thread)
|
||||||
(define-key map "+" 'notmuch-search-add-tag)
|
(define-key map "+" 'notmuch-search-add-tag)
|
||||||
(define-key map "-" 'notmuch-search-remove-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)
|
map)
|
||||||
"Keymap for \"notmuch search\" buffers.")
|
"Keymap for \"notmuch search\" buffers.")
|
||||||
(fset 'notmuch-search-mode-map notmuch-search-mode-map)
|
(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
|
;;;###autoload
|
||||||
(defun notmuch-search-mode ()
|
(defun notmuch-search-mode ()
|
||||||
"Major mode for handling the output of \"notmuch search\""
|
"Major mode for handling the output of \"notmuch search\""
|
||||||
|
@ -110,7 +119,7 @@
|
||||||
|
|
||||||
(defun notmuch-search-markup-thread-ids ()
|
(defun notmuch-search-markup-thread-ids ()
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(beginning-of-buffer)
|
(goto-char (point-min))
|
||||||
(while (not (eobp))
|
(while (not (eobp))
|
||||||
(notmuch-search-markup-this-thread-id)
|
(notmuch-search-markup-this-thread-id)
|
||||||
(next-line))))
|
(next-line))))
|
||||||
|
@ -189,12 +198,17 @@
|
||||||
(error "notmuch search process already running for query `%s'" query)
|
(error "notmuch search process already running for query `%s'" query)
|
||||||
)
|
)
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
(beginning-of-buffer)
|
(goto-char (point-min))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(call-process "notmuch" nil t nil "search" query)
|
(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)
|
(defun notmuch-search-filter (query)
|
||||||
"Run \"notmuch search\" to refine the current search results.
|
"Run \"notmuch search\" to refine the current search results.
|
||||||
|
|
Loading…
Reference in a new issue