X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch.el;h=90af68e399b966da5a97f1718b42e9ba1a0a849e;hb=3840b6b4953020b1c739f1892774cfe2ea329bed;hp=40b9fabdbc49c53a17720f1615a3984a8eb15558;hpb=523d2b50fcaae90cbe09975c1f1bc652ff521ec6;p=notmuch diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 40b9fabd..90af68e3 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -374,7 +374,11 @@ Complete list of currently available key bindings: (set (make-local-variable 'scroll-preserve-screen-position) t) (add-to-invisibility-spec (cons 'ellipsis t)) (setq truncate-lines t) - (setq buffer-read-only t)) + (setq buffer-read-only t) + (setq imenu-prev-index-position-function + #'notmuch-search-imenu-prev-index-position-function) + (setq imenu-extract-index-name-function + #'notmuch-search-imenu-extract-index-name-function)) (defun notmuch-search-get-result (&optional pos) "Return the result object for the thread at POS (or point). @@ -1094,8 +1098,8 @@ notmuch buffers exist, run `notmuch'." ;; Find the first notmuch buffer. (setq first (loop for buffer in (buffer-list) - if (notmuch-interesting-buffer buffer) - return buffer)) + if (notmuch-interesting-buffer buffer) + return buffer)) (if first ;; If the first one we found is any other than the starting @@ -1104,6 +1108,23 @@ notmuch buffers exist, run `notmuch'." (switch-to-buffer first)) (notmuch)))) +;;;; Imenu Support + +(defun notmuch-search-imenu-prev-index-position-function () + "Move point to previous message in notmuch-search buffer. +This function is used as a value for +`imenu-prev-index-position-function'." + (notmuch-search-previous-thread)) + +(defun notmuch-search-imenu-extract-index-name-function () + "Return imenu name for line at point. +This function is used as a value for +`imenu-extract-index-name-function'. Point should be at the +beginning of the line." + (let ((subject (notmuch-search-find-subject)) + (author (notmuch-search-find-authors))) + (format "%s (%s)" subject author))) + (setq mail-user-agent 'notmuch-user-agent) (provide 'notmuch)