Mercurial > emacs
changeset 79120:3516a7d8862b
(longlines-wrap-follows-window-size): Integer value
specifies wrapping margin.
(longlines-mode, longlines-window-change-function): Set
window-specific wrapping margin based on the above.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Wed, 17 Oct 2007 02:47:39 +0000 |
parents | f17c3647c3fe |
children | 70b8ad88064e |
files | lisp/longlines.el |
diffstat | 1 files changed, 21 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/longlines.el Wed Oct 17 02:47:28 2007 +0000 +++ b/lisp/longlines.el Wed Oct 17 02:47:39 2007 +0000 @@ -55,7 +55,11 @@ "Non-nil means wrapping and filling happen at the edge of the window. Otherwise, `fill-column' is used, regardless of the window size. This does not work well when the buffer is displayed in multiple windows -with differing widths." +with differing widths. + +If the value is an integer, that specifies the distance from the +right edge of the window at which wrapping occurs. For any other +non-nil value, wrapping occurs 2 characters from the right edge." :group 'longlines :type 'boolean) @@ -117,8 +121,14 @@ 'longlines-search-function) (add-to-list 'buffer-substring-filters 'longlines-encode-string) (when longlines-wrap-follows-window-size - (set (make-local-variable 'fill-column) - (- (window-width) window-min-width)) + (let ((dw (if (and (integerp longlines-wrap-follows-window-size) + (>= longlines-wrap-follows-window-size 0) + (< longlines-wrap-follows-window-size + (window-width))) + longlines-wrap-follows-window-size + 2))) + (set (make-local-variable 'fill-column) + (- (window-width) dw))) (add-hook 'window-configuration-change-hook 'longlines-window-change-function nil t)) (let ((buffer-undo-list t) @@ -415,9 +425,14 @@ (defun longlines-window-change-function () "Re-wrap the buffer if the window width has changed. This is called by `window-configuration-change-hook'." - (when (/= fill-column (- (window-width) window-min-width)) - (setq fill-column (- (window-width) window-min-width)) - (longlines-wrap-region (point-min) (point-max)))) + (let ((dw (if (and (integerp longlines-wrap-follows-window-size) + (>= longlines-wrap-follows-window-size 0) + (< longlines-wrap-follows-window-size (window-width))) + longlines-wrap-follows-window-size + 2))) + (when (/= fill-column (- (window-width) dw)) + (setq fill-column (- (window-width) dw)) + (longlines-wrap-region (point-min) (point-max))))) ;; Isearch