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).
This commit is contained in:
Daniel Schoepe 2012-02-17 19:34:44 +01:00 committed by David Bremner
parent eff5f9126f
commit 88b922afdc

View file

@ -87,6 +87,14 @@ If there is one more line than the sum of
`notmuch-wash-citation-lines-suffix', show that, otherwise `notmuch-wash-citation-lines-suffix', show that, otherwise
collapse the remaining lines into a button.") 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) (defun notmuch-wash-toggle-invisible-action (cite-button)
(let ((invis-spec (button-get cite-button 'invisibility-spec))) (let ((invis-spec (button-get cite-button 'invisibility-spec)))
(if (invisible-p invis-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) (defun notmuch-wash-wrap-long-lines (msg depth)
"Wrap any long lines in the message to the width of the window. "Wrap long lines in the message.
When doing so, maintaining citation leaders in the wrapped text." 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) (let* ((coolj-wrap-follows-window-size nil)
(fill-column (- (window-width) (limit (if (numberp notmuch-wash-wrap-lines-length)
depth (min notmuch-wash-wrap-lines-length
;; 2 to avoid poor interaction with (window-width))
;; `word-wrap'. (window-width)))
2))) (fill-column (- limit
depth
;; 2 to avoid poor interaction with
;; `word-wrap'.
2)))
(coolj-wrap-region (point-min) (point-max)))) (coolj-wrap-region (point-min) (point-max))))
;; ;;