summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/km-mail.el15
1 files changed, 15 insertions, 0 deletions
diff --git a/lisp/km-mail.el b/lisp/km-mail.el
index 345d2bb..b25934c 100644
--- a/lisp/km-mail.el
+++ b/lisp/km-mail.el
@@ -57,6 +57,21 @@
(mark-whole-buffer)
(call-interactively #'notmuch-search-archive-thread))
+;;;###autoload
+(defun km/notmuch-show-at-point ()
+ "Call `notmuch-show' with message or thread ID at point."
+ (interactive)
+ (let ((id (save-excursion
+ (skip-syntax-backward "^\\s-")
+ (and (looking-at
+ (rx (group (zero-or-one (or "id:" "thread:")))
+ (one-or-more (any "-" "_" "." "@" "/" alnum))))
+ (concat (and (string= (match-string 1) "") "id:")
+ (match-string-no-properties 0))))))
+ (if id
+ (notmuch-show id)
+ (call-interactively #'notmuch-show))))
+
;;; Mail sync