Re: [PATCH] emacs: Add configurable wrapping width for notmuch-wash-wrap-long-lines

Subject: Re: [PATCH] emacs: Add configurable wrapping width for notmuch-wash-wrap-long-lines

Date: Sun, 15 Apr 2012 18:39:12 +0100

To: Daniel Schoepe, notmuch@notmuchmail.org

Cc:

From: Mark Walters


On Fri, 17 Feb 2012, Daniel Schoepe <daniel@schoepe.org> wrote:
> 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).

Hi 

This looks ok but I wonder if slightly different behaviour might be
preferable (and looks simple to implement): rather then always wrapping
at min of notmuch-wash-wrap-lines-length and window-width wrap at min of
(notmuch-wash-wrap-lines-length + depth) and window-width. Then if you
have a wide buffer you can still get 80 chars (say) of useful text even
for well nested messages whilst not having very long lines anywhere.

Best wishes

Mark

> ---
>  emacs/notmuch-wash.el |   36 ++++++++++++++++++++++++++----------
>  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))))
>  
>  ;;
> -- 
> 1.7.9
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch

Thread: