aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schoepe <daniel@schoepe.org>2012-02-17 19:34:44 +0100
committerDavid Bremner <bremner@debian.org>2012-06-29 22:38:52 -0300
commit88b922afdce6944d0f17d8cdf42372dfee8561c3 (patch)
tree5c8481b1deef3cbd92e940e7794cc841d1fe836f
parenteff5f9126f64723873687bc5a17ae2b17f4376ca (diff)
emacs: Add configurable wrapping width for notmuch-wash-wrap-long-lines
This introduces a variable to control after how many characters a line is wrapped by notmuch-wash-wrap-long-lines (still wrapping at the window width if it is lower).
-rw-r--r--emacs/notmuch-wash.el36
1 files changed, 26 insertions, 10 deletions
diff --git a/emacs/notmuch-wash.el b/emacs/notmuch-wash.el
index 56981d0..7d003a2 100644
--- a/emacs/notmuch-wash.el
+++ b/emacs/notmuch-wash.el
@@ -87,6 +87,14 @@ If there is one more line than the sum of
`notmuch-wash-citation-lines-suffix', show that, otherwise
collapse the remaining lines into a button.")
+(defvar notmuch-wash-wrap-lines-length nil
+ "Wrap line after at most this many characters.
+
+If this is nil, lines in messages will be wrapped to fit in the
+current window. If this is a number, lines will be wrapped after
+this many characters or at the window width (whichever one is
+lower).")
+
(defun notmuch-wash-toggle-invisible-action (cite-button)
(let ((invis-spec (button-get cite-button 'invisibility-spec)))
(if (invisible-p invis-spec)
@@ -276,16 +284,24 @@ Perform several transformations on the message body:
;;
(defun notmuch-wash-wrap-long-lines (msg depth)
- "Wrap any long lines in the message to the width of the window.
-
-When doing so, maintaining citation leaders in the wrapped text."
-
- (let ((coolj-wrap-follows-window-size nil)
- (fill-column (- (window-width)
- depth
- ;; 2 to avoid poor interaction with
- ;; `word-wrap'.
- 2)))
+ "Wrap long lines in the message.
+
+If `notmuch-wash-wrap-lines-length' is a number, this will wrap
+the message lines to the minimum of the width of the window or
+its value. Otherwise, this function will wrap long lines in the
+message at the window width. When doing so, citation leaders in
+the wrapped text are maintained."
+
+ (let* ((coolj-wrap-follows-window-size nil)
+ (limit (if (numberp notmuch-wash-wrap-lines-length)
+ (min notmuch-wash-wrap-lines-length
+ (window-width))
+ (window-width)))
+ (fill-column (- limit
+ depth
+ ;; 2 to avoid poor interaction with
+ ;; `word-wrap'.
+ 2)))
(coolj-wrap-region (point-min) (point-max))))
;;