]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-show.el
Fix typo in notmuch.h documentation regarding database open modes
[notmuch] / emacs / notmuch-show.el
index ed95afbd25673c77a4b67c329730dacac1982020..6f5a55d470756e8a3eb42f92bca663a6aad1c258 100644 (file)
@@ -110,11 +110,21 @@ 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-prefix 4
-  "Always show at least this many lines of a citation.
+(defvar notmuch-show-citation-lines-prefix 3
+  "Always show at least this many lines at the start of a citation.
 
-If there is one more line, show that, otherwise collapse
-remaining lines into a button.")
+If there is one more line than the sum of
+`notmuch-show-citation-lines-prefix' and
+`notmuch-show-citation-lines-suffix', show that, otherwise
+collapse remaining lines into a button.")
+
+(defvar notmuch-show-citation-lines-suffix 3
+  "Always show at least this many lines at the end of a citation.
+
+If there is one more line than the sum of
+`notmuch-show-citation-lines-prefix' and
+`notmuch-show-citation-lines-suffix', show that, otherwise
+collapse remaining lines into a button.")
 
 (defvar notmuch-show-message-begin-regexp    "\fmessage{")
 (defvar notmuch-show-message-end-regexp      "\fmessage}")
@@ -679,29 +689,35 @@ 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)))
-       (when (> cite-lines (1+ notmuch-show-citation-lines-prefix))
+       (overlay-put (make-overlay cite-start cite-end) 'face 'message-cited-text-face)
+       (when (> cite-lines (1+ (+ notmuch-show-citation-lines-prefix notmuch-show-citation-lines-suffix)))
          (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))
-          ))))
+         (let ((hidden-start (point)))
+           (goto-char cite-end)
+           (forward-line (- notmuch-show-citation-lines-suffix))
+           (notmuch-show-region-to-button
+            hidden-start (point)
+            "citation"
+            indent
+            (format notmuch-show-citation-button-format
+                    (- cite-lines notmuch-show-citation-lines-prefix notmuch-show-citation-lines-suffix))
+            )))))
     (if (and (< (point) end)
             (re-search-forward signature-regexp end t))
        (let* ((sig-start (match-beginning 0))
               (sig-end (match-end 0))
               (sig-lines (1- (count-lines sig-start end))))
          (if (<= sig-lines notmuch-show-signature-lines-max)
-             (notmuch-show-region-to-button
-              sig-start
-              end
-              "signature"
-              indent
-              (format notmuch-show-signature-button-format sig-lines)
-              ))))))
+             (progn
+               (overlay-put (make-overlay sig-start end) 'face 'message-cited-text-face)
+               (notmuch-show-region-to-button
+                sig-start
+                end
+                "signature"
+                indent
+                (format notmuch-show-signature-button-format sig-lines)
+                )))))))
 
 (defun notmuch-show-markup-part (beg end depth)
   (if (re-search-forward notmuch-show-part-begin-regexp nil t)
@@ -966,10 +982,14 @@ The optional PARENT-BUFFER is the notmuch-search buffer from
 which this notmuch-show command was executed, (so that the next
 thread from that buffer can be show when done with this one).
 
-The optional QUERY-CONTEXT is a notmuch search term. Only messages from the thread
-matching this search term are shown if non-nil.
+The optional QUERY-CONTEXT is a notmuch search term. Only
+messages from the thread matching this search term are shown if
+non-nil.
 
-The optional BUFFER-NAME provides the neame of the buffer in which the message thread is shown. If it is nil (which occurs when the command is called interactively) the argument to the function is used. "
+The optional BUFFER-NAME provides the name of the buffer in which
+the message thread is shown. If it is nil (which occurs when the
+command is called interactively) the argument to the function is
+used."
   (interactive "sNotmuch show: ")
   (when (null buffer-name)
     (setq buffer-name (concat "*notmuch-" thread-id "*")))