mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
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:
parent
fa5279113b
commit
a466921760
3 changed files with 12 additions and 152 deletions
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
150
emacs/notmuch.el
150
emacs/notmuch.el
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue