emacs: Rip out all of the notmuch-folder code.

We are asserting that the new notmuch-hello implementation, (available
by just calling `notmuch') is just as easy to use as the old
notmuch-folder. So let's remove what's now a largely redundant
implementation.

To make this transition easier, we are still supporting the
notmuch-folders variable name, and we still provide `notmuch-folder'
as an alias which can be invoked to get the new notmuch-hello
functionality.
This commit is contained in:
Carl Worth 2010-04-26 22:42:07 -07:00
parent fa5279113b
commit a466921760
3 changed files with 12 additions and 152 deletions

View file

@ -399,6 +399,12 @@ diagonal."
(if (not (widget-at))
(widget-forward 1)))))
;;;###autoload
(defun notmuch-folder ()
"Deprecated function for invoking notmuch---calling `notmuch' is preferred now."
(interactive)
(notmuch-hello))
;;
(provide 'notmuch-hello)

View file

@ -28,11 +28,6 @@
"Notmuch mail reader for Emacs."
:group 'mail)
(defcustom notmuch-folders '(("inbox" . "tag:inbox") ("unread" . "tag:unread"))
"List of searches for the notmuch folder view"
:type '(alist :key-type (string) :value-type (string))
:group 'notmuch)
(defcustom notmuch-search-oldest-first t
"Show the oldest mail first when searching."
:type 'boolean
@ -45,6 +40,9 @@
:type '(alist :key-type string :value-type string)
:group 'notmuch)
(defvar notmuch-folders nil
"Deprecated name for what is now known as `notmuch-saved-searches'.")
(defun notmuch-saved-searches ()
"Common function for querying the notmuch-saved-searches variable.

View file

@ -740,9 +740,9 @@ same relative position within the new buffer."
If this variable is non empty, then it should name a script to be
invoked by `notmuch-search-poll-and-refresh-view' and
`notmuch-folder-poll-and-refresh-view' (each have a default
keybinding of 'G'). The script could do any of the following
depending on the user's needs:
`notmuch-hello-poll-and-update' (each have a default keybinding
of 'G'). The script could do any of the following depending on
the user's needs:
1. Invoke a program to transfer mail to the local mail store
2. Invoke \"notmuch new\" to incorporate the new mail
@ -812,148 +812,4 @@ current search results AND that are tagged with the given tag."
(setq mail-user-agent 'notmuch-user-agent)
(defvar notmuch-folder-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "?" 'notmuch-help)
(define-key map "x" 'kill-this-buffer)
(define-key map "q" 'kill-this-buffer)
(define-key map "m" 'notmuch-mua-mail)
(define-key map "e" 'notmuch-folder-show-empty-toggle)
(define-key map ">" 'notmuch-folder-last)
(define-key map "<" 'notmuch-folder-first)
(define-key map "=" 'notmuch-folder)
(define-key map "G" 'notmuch-folder-poll-and-refresh-view)
(define-key map "s" 'notmuch-search)
(define-key map [mouse-1] 'notmuch-folder-show-search)
(define-key map (kbd "RET") 'notmuch-folder-show-search)
(define-key map " " 'notmuch-folder-show-search)
(define-key map "p" 'notmuch-folder-previous)
(define-key map "n" 'notmuch-folder-next)
map)
"Keymap for \"notmuch folder\" buffers.")
(fset 'notmuch-folder-mode-map notmuch-folder-mode-map)
(defun notmuch-folder-mode ()
"Major mode for showing notmuch 'folders'.
This buffer contains a list of message counts returned by a
customizable set of searches of your email archives. Each line in
the buffer shows the name of a saved search and the resulting
message count.
Pressing RET on any line opens a search window containing the
results for the saved search on that line.
Here is an example of how the search list could be
customized, (the following text would be placed in your ~/.emacs
file):
(setq notmuch-folders '((\"inbox\" . \"tag:inbox\")
(\"unread\" . \"tag:inbox AND tag:unread\")
(\"notmuch\" . \"tag:inbox AND to:notmuchmail.org\")))
Of course, you can have any number of folders, each configured
with any supported search terms (see \"notmuch help search-terms\").
Currently available key bindings:
\\{notmuch-folder-mode-map}"
(interactive)
(kill-all-local-variables)
(use-local-map 'notmuch-folder-mode-map)
(setq truncate-lines t)
(hl-line-mode 1)
(setq major-mode 'notmuch-folder-mode
mode-name "notmuch-folder")
(setq buffer-read-only t))
(defun notmuch-folder-next ()
"Select the next folder in the list."
(interactive)
(forward-line 1)
(if (eobp)
(forward-line -1)))
(defun notmuch-folder-previous ()
"Select the previous folder in the list."
(interactive)
(forward-line -1))
(defun notmuch-folder-first ()
"Select the first folder in the list."
(interactive)
(goto-char (point-min)))
(defun notmuch-folder-last ()
"Select the last folder in the list."
(interactive)
(goto-char (point-max))
(forward-line -1))
(defun notmuch-folder-count (search)
(car (process-lines notmuch-command "count" search)))
(defvar notmuch-folder-show-empty t
"Whether `notmuch-folder-mode' should display empty folders.")
(defun notmuch-folder-show-empty-toggle ()
"Toggle the listing of empty folders"
(interactive)
(setq notmuch-folder-show-empty (not notmuch-folder-show-empty))
(notmuch-folder))
(defun notmuch-folder-add (folders)
(if folders
(let* ((name (car (car folders)))
(inhibit-read-only t)
(search (cdr (car folders)))
(count (notmuch-folder-count search)))
(if (or notmuch-folder-show-empty
(not (equal count "0")))
(progn
(insert name)
(indent-to 16 1)
(insert count)
(insert "\n")
)
)
(notmuch-folder-add (cdr folders)))))
(defun notmuch-folder-find-name ()
(save-excursion
(beginning-of-line)
(let ((beg (point)))
(re-search-forward "\\([ \t]*[^ \t]+\\)")
(filter-buffer-substring (match-beginning 1) (match-end 1)))))
(defun notmuch-folder-show-search (&optional folder)
"Show a search window for the search related to the specified folder."
(interactive)
(if (null folder)
(setq folder (notmuch-folder-find-name)))
(let ((search (assoc folder notmuch-folders)))
(if search
(notmuch-search (cdr search) notmuch-search-oldest-first))))
(defun notmuch-folder-poll-and-refresh-view ()
"Invoke `notmuch-poll' to import mail, then refresh the folder view."
(interactive)
(notmuch-poll)
(notmuch-folder))
;;;###autoload
(defun notmuch-folder ()
"Show the notmuch folder view and update the displayed counts."
(interactive)
(let ((buffer (get-buffer-create "*notmuch-folders*")))
(switch-to-buffer buffer)
(let ((inhibit-read-only t)
(n (line-number-at-pos)))
(erase-buffer)
(notmuch-folder-mode)
(notmuch-folder-add notmuch-folders)
(goto-char (point-min))
(goto-line n))))
(provide 'notmuch)