mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
notmuch.el: More magic for magic space bar: Show next thread from search.
This is implemented by stashing away the parent notmuch-search buffer into a variable within the notmuch-show buffer. Then, when magic space bar triggers an archive of the current thread, it switches to the parent search buffer and shows the next thread.
This commit is contained in:
parent
daedd2442a
commit
9a02b950a3
1 changed files with 19 additions and 5 deletions
24
notmuch.el
24
notmuch.el
|
@ -199,13 +199,22 @@ message and advance to the next message.
|
|||
|
||||
Finally, if there is no further message to advance to, and this
|
||||
last message is already read, then archive the entire current
|
||||
thread, (remove the \"inbox\" tag from each message)."
|
||||
thread, (remove the \"inbox\" tag from each message). Also kill
|
||||
this buffer, and display the next thread from the search from
|
||||
which this thread was originally shown."
|
||||
(interactive)
|
||||
(let ((next (notmuch-show-find-next-message))
|
||||
(unread (member "unread" (notmuch-show-get-tags))))
|
||||
(if (and (not unread)
|
||||
(equal next (point)))
|
||||
(notmuch-show-archive-thread)
|
||||
(progn
|
||||
(notmuch-show-archive-thread)
|
||||
(let ((parent-buffer notmuch-show-parent-buffer))
|
||||
(kill-this-buffer)
|
||||
(if parent-buffer
|
||||
(progn
|
||||
(switch-to-buffer parent-buffer)
|
||||
(notmuch-search-show-thread)))))
|
||||
(if (< (notmuch-show-find-next-message) (window-end))
|
||||
(notmuch-show-mark-read-then-next-message)
|
||||
(scroll-up nil)))))
|
||||
|
@ -364,12 +373,17 @@ view, (remove the \"inbox\" tag from each), with
|
|||
mode-name "notmuch-show")
|
||||
(setq buffer-read-only t))
|
||||
|
||||
(defun notmuch-show (thread-id)
|
||||
"Run \"notmuch show\" with the given thread ID and display results."
|
||||
(defun notmuch-show (thread-id &optional parent-buffer)
|
||||
"Run \"notmuch show\" with the given thread ID and display results.
|
||||
|
||||
The optional PARENT-BUFFER is the notmuch-search buffer from
|
||||
which this notmuch-show command was executed, (so that the next
|
||||
thread from that buffer can be show when done with this one)."
|
||||
(interactive "sNotmuch show: ")
|
||||
(let ((buffer (get-buffer-create (concat "*notmuch-show-" thread-id "*"))))
|
||||
(switch-to-buffer buffer)
|
||||
(notmuch-show-mode)
|
||||
(set (make-local-variable 'notmuch-show-parent-buffer) parent-buffer)
|
||||
(let ((proc (get-buffer-process (current-buffer)))
|
||||
(inhibit-read-only t))
|
||||
(if proc
|
||||
|
@ -480,7 +494,7 @@ global search.
|
|||
(interactive)
|
||||
(let ((thread-id (notmuch-search-find-thread-id)))
|
||||
(forward-line)
|
||||
(notmuch-show thread-id)))
|
||||
(notmuch-show thread-id (current-buffer))))
|
||||
|
||||
(defun notmuch-call-notmuch-process (&rest args)
|
||||
(let ((error-buffer (get-buffer-create "*Notmuch errors*")))
|
||||
|
|
Loading…
Reference in a new issue