[WIP PATCH] emacs: tag-jump allow post tag functions
Mark Walters
markwalters1009 at gmail.com
Thu Dec 15 14:47:05 PST 2016
This adds an option to the tag-jump defcustom to apply a post-tagging
function. One natural option is to go to the next thread/message.
---
This is a first attempt at this. The main change needed is to update
the docstrings.
The structure is a little weird (a list with a plist as an
element). However this has two advantage, it is backward compatible,
and it is possible to hide the more complicated options.
Best wishes
Mark
emacs/notmuch-tag.el | 33 ++++++++++++++++++++++++++++++---
1 file changed, 30 insertions(+), 3 deletions(-)
diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el
index 09d182d..a6506dc 100644
--- a/emacs/notmuch-tag.el
+++ b/emacs/notmuch-tag.el
@@ -42,7 +42,25 @@
(key-sequence :tag "Key")
(radio :tag "Tag operations" (repeat :tag "Tag list" (string :format "%v" :tag "change"))
(variable :tag "Tag variable"))
- (string :tag "Name"))))
+ (string :tag "Name")
+ (choice :tag "Advanced Options"
+ (const :tag "None" nil)
+ (list :tag "Choose"
+ (const :format "" :post-search)
+ (choice :tag "Post tag in search view: "
+ (const :tag "None" ignore)
+ (const :tag "Next" notmuch-search-next-thread)
+ (function :tag "Custom function" :format "%v"))
+ (const :format "" :post-tree)
+ (choice :tag "Post tag in tree view: "
+ (const :tag "None" ignore)
+ (const :tag "Next" notmuch-tree-next-message)
+ (function :tag "Custom function" :format "%v"))
+ (const :format "" :post-show)
+ (choice :tag "Post tag in show view: "
+ (const :tag "None" ignore)
+ (const :tag "Next" notmuch-show-next-message)
+ (function :tag "Custom function" :format "%v")))))))
(defcustom notmuch-tagging-keys
`((,(kbd "a") notmuch-archive-tags "Archive")
@@ -530,9 +548,18 @@ and vice versa."
(name-string (if name
(if reverse (concat "Reverse " name)
name)
- (mapconcat #'identity tag-change " "))))
+ (mapconcat #'identity tag-change " ")))
+ (adv-opts (fourth binding))
+ (post-tag-function
+ (case major-mode
+ (notmuch-search-mode (plist-get adv-opts :post-search))
+ (notmuch-show-mode (plist-get adv-opts :post-show))
+ (notmuch-tree-mode (plist-get adv-opts :post-tree)))))
(push (list key name-string
- `(lambda () (,tag-function ',tag-change)))
+ `(lambda () (,tag-function ',tag-change)
+ ,(if post-tag-function
+ `(,post-tag-function)
+ '(ignore))))
action-map)))
(push (list notmuch-tag-jump-reverse-key
(if reverse
--
2.1.4
More information about the notmuch
mailing list