]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch.el
Add 'm' and ' ' bindings to notmuch-folder view
[notmuch] / notmuch.el
index d41e6daf5e5a1351a88966327986bd1e117d2271..af45a21a24b5c345682de16786b868f3b736c97b 100644 (file)
@@ -95,13 +95,13 @@ move past the indentation when testing this pattern, (so that the
 pattern can still test against the entire line).")
 
 (defvar notmuch-show-signature-button-format
-  "[ %d-line hidden signature. Click/Enter to show ]"
+  "[ %d-line signature. Click/Enter to toggle visibility. ]"
   "String used to construct button text for hidden signatures
 
 Can use up to one integer format parameter, i.e. %d")
 
 (defvar notmuch-show-citation-button-format
-  "[ %d-line hidden citation. Click/Enter to show ]"
+  "[ %d more citation lines. Click/Enter to toggle visibility. ]"
   "String used to construct button text for hidden citations.
 
 Can use up to one integer format parameter, i.e. %d")
@@ -109,8 +109,11 @@ Can use up to one integer format parameter, i.e. %d")
 (defvar notmuch-show-signature-lines-max 12
   "Maximum length of signature that will be hidden by default.")
 
-(defvar notmuch-show-citation-lines-min 4
-  "Minimum length of citation that will be hidden.")
+(defvar notmuch-show-citation-lines-prefix 4
+  "Always show at least this many lines of a citation.
+
+If there is one more line, show that, otherwise collapse
+remaining lines into a button.")
 
 (defvar notmuch-command "notmuch"
   "Command to run the notmuch binary.")
@@ -619,7 +622,7 @@ which this thread was originally shown."
 (define-button-type 'notmuch-button-invisibility-toggle-type
   'action 'notmuch-toggle-invisible-action
   'follow-link t
-  'face "default")
+  'face 'font-lock-comment-face)
 (define-button-type 'notmuch-button-citation-toggle-type 'help-echo "mouse-1, RET: Show citation"
   :supertype 'notmuch-button-invisibility-toggle-type)
 (define-button-type 'notmuch-button-signature-toggle-type 'help-echo "mouse-1, RET: Show signature"
@@ -683,13 +686,16 @@ is what to put on the button."
       (let* ((cite-start (match-beginning 0))
             (cite-end  (match-end 0))
             (cite-lines (count-lines cite-start cite-end)))
-       (if (>= cite-lines notmuch-show-citation-lines-min)
-           (notmuch-show-region-to-button
-            cite-start cite-end
-            "citation"
-            indent
-            (format notmuch-show-citation-button-format cite-lines)
-            ))))
+       (when (> cite-lines (1+ notmuch-show-citation-lines-prefix))
+         (goto-char cite-start)
+         (forward-line notmuch-show-citation-lines-prefix)
+         (notmuch-show-region-to-button
+          (point) cite-end
+          "citation"
+          indent
+          (format notmuch-show-citation-button-format
+                  (- cite-lines notmuch-show-citation-lines-prefix))
+          ))))
     (if (and (< (point) end)
             (re-search-forward signature-regexp end t))
        (let* ((sig-start (match-beginning 0))
@@ -1440,12 +1446,14 @@ current search results AND that are tagged with the given tag."
     (define-key map "?" 'notmuch-help)
     (define-key map "x" 'kill-this-buffer)
     (define-key map "q" 'kill-this-buffer)
+    (define-key map "m" 'message-mail)
     (define-key map ">" 'notmuch-folder-last)
     (define-key map "<" 'notmuch-folder-first)
     (define-key map "=" 'notmuch-folder)
     (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)