diff options
Diffstat (limited to 'lisp/+notmuch.el')
-rw-r--r-- | lisp/+notmuch.el | 52 |
1 files changed, 48 insertions, 4 deletions
diff --git a/lisp/+notmuch.el b/lisp/+notmuch.el index 74b9b77..5df6e5b 100644 --- a/lisp/+notmuch.el +++ b/lisp/+notmuch.el | |||
@@ -60,11 +60,11 @@ for search." | |||
60 | 'notmuch-address-history))) | 60 | 'notmuch-address-history))) |
61 | (:else | 61 | (:else |
62 | (defun notmuch-address-selection-function (prompt collection initial-input) | 62 | (defun notmuch-address-selection-function (prompt collection initial-input) |
63 | "Call (`completing-read' | 63 | "Call (`completing-read' |
64 | PROMPT COLLECTION nil nil INITIAL-INPUT 'notmuch-address-history)" | 64 | PROMPT COLLECTION nil nil INITIAL-INPUT 'notmuch-address-history)" |
65 | (completing-read | 65 | (completing-read |
66 | prompt collection nil nil nil | 66 | prompt collection nil nil nil |
67 | 'notmuch-address-history))))) | 67 | 'notmuch-address-history))))) |
68 | 68 | ||
69 | (defcustom +notmuch-spam-tags '("+spam" "+Spam") | 69 | (defcustom +notmuch-spam-tags '("+spam" "+Spam") |
70 | "A list of tag changes to apply when marking a thread as spam." | 70 | "A list of tag changes to apply when marking a thread as spam." |
@@ -101,5 +101,49 @@ This function advances the next thread when finished." | |||
101 | (when (eq beg end) | 101 | (when (eq beg end) |
102 | (notmuch-search-next-thread))) | 102 | (notmuch-search-next-thread))) |
103 | 103 | ||
104 | (defun +notmuch-tree-beginning (&optional arg) | ||
105 | "Move point to beginning of message or tree, depending on ARG." | ||
106 | (interactive "P") | ||
107 | (cond | ||
108 | ((and (window-live-p notmuch-tree-message-window) | ||
109 | (not arg)) | ||
110 | (with-selected-window notmuch-tree-message-window | ||
111 | (beginning-of-buffer))) | ||
112 | (:else (beginning-of-buffer)))) | ||
113 | |||
114 | (defun +notmuch-tree-end (&optional arg) | ||
115 | "Move point to end of message or tree, depending on ARG." | ||
116 | (interactive "P") | ||
117 | (cond | ||
118 | ((and (window-live-p notmuch-tree-message-window) | ||
119 | (not arg)) | ||
120 | (with-selected-window notmuch-tree-message-window | ||
121 | (end-of-buffer))) | ||
122 | (:else (end-of-buffer)))) | ||
123 | |||
124 | (defun +notmuch-make-saved-search (name key search-type &rest queries) | ||
125 | "Wrapper to ease `notmuch-saved-searches' defining. | ||
126 | NAME, KEY, and SEARCH-TYPE are paired with the corresponding keywords in | ||
127 | `notmuch-saved-searches', which see. QUERIES are all concatenated together with | ||
128 | AND. If QUERIES is prepended with more keyword arguments, those are added to | ||
129 | the saved search as well." | ||
130 | (declare (indent 3)) | ||
131 | (let (extra-keywords) | ||
132 | (while (keywordp (car queries)) | ||
133 | (push (cadr queries) extra-keywords) | ||
134 | (push (car queries) extra-keywords) | ||
135 | (setf queries (cddr queries))) | ||
136 | (add-to-list 'notmuch-saved-searches | ||
137 | (append | ||
138 | (list :name name | ||
139 | :key key | ||
140 | :search-type search-type | ||
141 | :query (apply #'+notmuch-query-concat queries)) | ||
142 | (reverse extra-keywords)) | ||
143 | :append | ||
144 | (lambda (a b) | ||
145 | (equal (plist-get a :name) | ||
146 | (plist-get b :name)))))) | ||
147 | |||
104 | (provide '+notmuch) | 148 | (provide '+notmuch) |
105 | ;;; +notmuch.el ends here | 149 | ;;; +notmuch.el ends here |