[PATCH 1/2] notmuch.el: Allow citation suffixes to be shown as well as prefixes.

2010-04-07 Thread Carl Worth
On Tue,  6 Apr 2010 09:39:19 +0200, Sebastian Spaeth  
wrote:
> From: David Edmondson 
> 
> In many conversations the last few lines of a citation are more
> interesting than the first few lines, hence allow those to be shown if
> desired.

Thanks, David! (and Sebastian).

I've pushed out this change, (along with a followup that actually
enables this functionality by default), and I absolutely love it
already.

> Modify the face used for the citation button to distinguish it from
> the surrounding citation.

This piece looks totally independent, so I separated it out.

I was going to push it out separately, but I didn't actually find that
it did anything by default. (For me, font-lock-comment-delimiter-face
inherits from font-lock-comment-face with no changes.)

And actually, that makes me realize that we should be defining our own
notmuch face names for all the faces we use. Instead of just using
font-lock (or even message-mode) face names, we should use our own, (but
make them inherit liberally from other modes where that makes sense.

With that, plus changing a bunch of our current defvar calls into
defcustom calls, and I think we'd have a fairly reasonable customize
interface where people could tweak the appearance of notmuch without
having to write any emacs lisp.

-Carl
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 



[PATCH 1/2] notmuch.el: Allow citation suffixes to be shown as well as prefixes.

2010-04-06 Thread Sebastian Spaeth
From: David Edmondson 

In many conversations the last few lines of a citation are more
interesting than the first few lines, hence allow those to be shown if
desired.

Modify the face used for the citation button to distinguish it from
the surrounding citation.

Signed-off-by: Sebastian Spaeth 
---
 emacs/notmuch-show.el |   36 +---
 1 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index cc1f905..f172f6b 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -111,10 +111,20 @@ Can use up to one integer format parameter, i.e. %d")
   "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.
+  "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 0
+  "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,16 +689,20 @@ 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))
-- 
1.6.3.3



[PATCH 1/2] notmuch.el: Allow citation suffixes to be shown as well as prefixes.

2010-04-06 Thread Sebastian Spaeth
From: David Edmondson d...@dme.org

In many conversations the last few lines of a citation are more
interesting than the first few lines, hence allow those to be shown if
desired.

Modify the face used for the citation button to distinguish it from
the surrounding citation.

Signed-off-by: Sebastian Spaeth sebast...@sspaeth.de
---
 emacs/notmuch-show.el |   36 +---
 1 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index cc1f905..f172f6b 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -111,10 +111,20 @@ Can use up to one integer format parameter, i.e. %d)
   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.
+  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 0
+  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,16 +689,20 @@ 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))
-- 
1.6.3.3

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch