]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch.el
emacs: Add --entire-thread option to "notmuch show" command line.
[notmuch] / notmuch.el
index a6b71b777795d3c6b8b53a2dc75cf16b402c7fc6..84247aa57b54926c6d1dd762289da8426215b1a4 100644 (file)
@@ -55,7 +55,6 @@
   (let ((map (make-sparse-keymap)))
     (define-key map "?" 'notmuch-help)
     (define-key map "q" 'kill-this-buffer)
-    (define-key map "x" 'kill-this-buffer)
     (define-key map (kbd "C-p") 'notmuch-show-previous-line)
     (define-key map (kbd "C-n") 'notmuch-show-next-line)
     (define-key map (kbd "M-TAB") 'notmuch-show-previous-button)
@@ -70,6 +69,8 @@
     (define-key map "v" 'notmuch-show-view-all-mime-parts)
     (define-key map "-" 'notmuch-show-remove-tag)
     (define-key map "+" 'notmuch-show-add-tag)
+    (define-key map "X" 'notmuch-show-mark-read-then-archive-then-exit)
+    (define-key map "x" 'notmuch-show-archive-thread-then-exit)
     (define-key map "A" 'notmuch-show-mark-read-then-archive-thread)
     (define-key map "a" 'notmuch-show-archive-thread)
     (define-key map "p" 'notmuch-show-previous-message)
@@ -158,7 +159,7 @@ Unlike builtin `next-line' this version accepts no arguments."
 
 By advancing forward until reaching a visible character.
 
-Unlike builtin `next-line' this version accepts no arguments."
+Unlike builtin `previous-line' this version accepts no arguments."
   (interactive)
   (set 'this-command 'previous-line)
   (call-interactively 'previous-line)
@@ -273,6 +274,18 @@ buffer."
   (interactive)
   (notmuch-show-archive-thread-maybe-mark-read nil))
 
+(defun notmuch-show-archive-thread-then-exit ()
+  "Archive each message in thread, then exit back to search results."
+  (interactive)
+  (notmuch-show-archive-thread)
+  (kill-this-buffer))
+
+(defun notmuch-show-mark-read-then-archive-then-exit ()
+  "Remove unread tags from thread, then archive and exit to search results."
+  (interactive)
+  (notmuch-show-mark-read-then-archive-thread)
+  (kill-this-buffer))
+
 (defun notmuch-show-view-raw-message ()
   "View the raw email of the current message."
   (interactive)
@@ -545,7 +558,7 @@ which this thread was originally shown."
   (goto-char (button-start (previous-button (point)))))
 
 (defun notmuch-toggle-invisible-action (cite-button)
-  (let ((invis-spec (button-get button 'invisibility-spec)))
+  (let ((invis-spec (button-get cite-button 'invisibility-spec)))
         (if (invisible-p invis-spec)
             (remove-from-invisibility-spec invis-spec)
           (add-to-invisibility-spec invis-spec)
@@ -826,9 +839,13 @@ For a mouse binding, return nil."
 (defun notmuch-help ()
   "Display help for the current notmuch mode."
   (interactive)
-  (let ((mode major-mode))
-    (with-help-window (help-buffer)
-      (princ (substitute-command-keys (notmuch-substitute-command-keys (documentation mode t)))))))
+  (let* ((mode major-mode)
+        (doc (substitute-command-keys (notmuch-substitute-command-keys (documentation mode t)))))
+    (with-current-buffer (generate-new-buffer "*notmuch-help*")
+      (insert doc)
+      (goto-char (point-min))
+      (set-buffer-modified-p nil)
+      (view-buffer (current-buffer) 'kill-buffer-if-not-modified))))
 
 ;;;###autoload
 (defun notmuch-show-mode ()
@@ -916,7 +933,7 @@ thread from that buffer can be show when done with this one)."
       (erase-buffer)
       (goto-char (point-min))
       (save-excursion
-       (call-process notmuch-command nil t nil "show" thread-id)
+       (call-process notmuch-command nil t nil "show" "--entire-thread" thread-id)
        (notmuch-show-markup-messages)
        )
       (run-hooks 'notmuch-show-hook)
@@ -1003,12 +1020,12 @@ thread from that buffer can be show when done with this one)."
 (defun notmuch-search-next-thread ()
   "Select the next thread in the search results."
   (interactive)
-  (next-line))
+  (forward-line 1))
 
 (defun notmuch-search-previous-thread ()
   "Select the previous thread in the search results."
   (interactive)
-  (previous-line))
+  (forward-line -1))
 
 (defun notmuch-search-last-thread ()
   "Select the last thread in the search results."
@@ -1077,12 +1094,11 @@ Complete list of currently available key bindings:
   (if (not notmuch-tag-face-alist)
       (add-to-list 'notmuch-search-font-lock-keywords (list
                "(\\([^)]*\\))$" '(1  'notmuch-tag-face)))
-    (progn
-  (setq notmuch-search-tags (mapcar 'car notmuch-tag-face-alist))
-  (loop for notmuch-search-tag  in notmuch-search-tags
-    do (add-to-list 'notmuch-search-font-lock-keywords (list
-                               (concat "([^)]*\\(" notmuch-search-tag "\\)[^)]*)$")
-                   `(1  ,(cdr (assoc notmuch-search-tag notmuch-tag-face-alist))))))))
+    (let ((notmuch-search-tags (mapcar 'car notmuch-tag-face-alist)))
+      (loop for notmuch-search-tag  in notmuch-search-tags
+           do (add-to-list 'notmuch-search-font-lock-keywords (list
+                       (concat "([^)]*\\(" notmuch-search-tag "\\)[^)]*)$")
+                       `(1  ,(cdr (assoc notmuch-search-tag notmuch-tag-face-alist))))))))
   (set (make-local-variable 'font-lock-defaults)
          '(notmuch-search-font-lock-keywords t)))