[PATCH] emacs: Add `notmuch-jump-to-recent-buffer'.

Tomi Ollila tomi.ollila at iki.fi
Tue Dec 20 00:02:11 PST 2011


On Mon, 22 Nov 2010 11:51:04 +0000, David Edmondson <dme at dme.org> wrote:

> >From a Carl Worth idea: Add `notmuch-jump-to-recent-buffer', which
> will select the most recently used notmuch buffer (search, show or
> hello). If no recent buffer is found, run `notmuch'.
> 
> It is expected that the user will global bind this command to a key
> sequence.
> ---

See comments inline below.

>  emacs/notmuch.el |   18 ++++++++++++++++++
>  1 files changed, 18 insertions(+), 0 deletions(-)
> 
> diff --git a/emacs/notmuch.el b/emacs/notmuch.el
> index e8d4d98..67271d1 100644
> --- a/emacs/notmuch.el
> +++ b/emacs/notmuch.el
> @@ -962,6 +962,24 @@ current search results AND that are tagged with the given tag."
>    (interactive)
>    (notmuch-hello))
>  
> +;;;###autoload
> +(defun notmuch-jump-to-recent-buffer ()
> +  "Jump to the most recent notmuch buffer (search, show or hello).
> +
> +If no recent buffer is found, run `notmuch'."
> +  (interactive)
> +  (let ((last
> +	 (loop for buffer in (buffer-list)
> +	       if (progn

Are the last few lines above working... if without '(' and no
loop (nor for) function in my emacs (where notmuch loaded).

> +		    (set-buffer buffer)

I really like Aaron's comment about with-current-buffer...

> +		    (or (eq major-mode 'notmuch-show-mode)
> +			(eq major-mode 'notmuch-search-mode)
> +			(eq major-mode 'notmuch-hello-mode)))

... memq is also nice; in case used the list should be done beforehand with
(let* ...

> +	       return buffer)))
> +    (if last
> +	(switch-to-buffer last)
> +      (notmuch))))
> +
>  (setq mail-user-agent 'notmuch-user-agent)
>  
>  (provide 'notmuch)
> -- 
> 1.7.2.3
> 

Tomi 


More information about the notmuch mailing list