aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2007-10-17 02:50:23 +0000
committerChong Yidong2007-10-17 02:50:23 +0000
commitc455889deb499b2f5fc5af9b766c39b17f3405f2 (patch)
tree23a84696b0d4c3bbaeba756d092238a3b001a487
parentcdbd4b4b1c62df28ee9003c49176919a5ef0cb24 (diff)
downloademacs-c455889deb499b2f5fc5af9b766c39b17f3405f2.tar.gz
emacs-c455889deb499b2f5fc5af9b766c39b17f3405f2.zip
(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.
-rw-r--r--lisp/longlines.el27
1 files changed, 21 insertions, 6 deletions
diff --git a/lisp/longlines.el b/lisp/longlines.el
index 07977910a22..c820150c27a 100644
--- a/lisp/longlines.el
+++ b/lisp/longlines.el
@@ -55,7 +55,11 @@ when the file is saved to disk."
55 "Non-nil means wrapping and filling happen at the edge of the window. 55 "Non-nil means wrapping and filling happen at the edge of the window.
56Otherwise, `fill-column' is used, regardless of the window size. This 56Otherwise, `fill-column' is used, regardless of the window size. This
57does not work well when the buffer is displayed in multiple windows 57does not work well when the buffer is displayed in multiple windows
58with differing widths." 58with differing widths.
59
60If the value is an integer, that specifies the distance from the
61right edge of the window at which wrapping occurs. For any other
62non-nil value, wrapping occurs 2 characters from the right edge."
59 :group 'longlines 63 :group 'longlines
60 :type 'boolean) 64 :type 'boolean)
61 65
@@ -117,8 +121,14 @@ are indicated with a symbol."
117 'longlines-search-function) 121 'longlines-search-function)
118 (add-to-list 'buffer-substring-filters 'longlines-encode-string) 122 (add-to-list 'buffer-substring-filters 'longlines-encode-string)
119 (when longlines-wrap-follows-window-size 123 (when longlines-wrap-follows-window-size
120 (set (make-local-variable 'fill-column) 124 (let ((dw (if (and (integerp longlines-wrap-follows-window-size)
121 (- (window-width) window-min-width)) 125 (>= longlines-wrap-follows-window-size 0)
126 (< longlines-wrap-follows-window-size
127 (window-width)))
128 longlines-wrap-follows-window-size
129 2)))
130 (set (make-local-variable 'fill-column)
131 (- (window-width) dw)))
122 (add-hook 'window-configuration-change-hook 132 (add-hook 'window-configuration-change-hook
123 'longlines-window-change-function nil t)) 133 'longlines-window-change-function nil t))
124 (let ((buffer-undo-list t) 134 (let ((buffer-undo-list t)
@@ -415,9 +425,14 @@ This is called by `post-command-hook' after each command."
415(defun longlines-window-change-function () 425(defun longlines-window-change-function ()
416 "Re-wrap the buffer if the window width has changed. 426 "Re-wrap the buffer if the window width has changed.
417This is called by `window-configuration-change-hook'." 427This is called by `window-configuration-change-hook'."
418 (when (/= fill-column (- (window-width) window-min-width)) 428 (let ((dw (if (and (integerp longlines-wrap-follows-window-size)
419 (setq fill-column (- (window-width) window-min-width)) 429 (>= longlines-wrap-follows-window-size 0)
420 (longlines-wrap-region (point-min) (point-max)))) 430 (< longlines-wrap-follows-window-size (window-width)))
431 longlines-wrap-follows-window-size
432 2)))
433 (when (/= fill-column (- (window-width) dw))
434 (setq fill-column (- (window-width) dw))
435 (longlines-wrap-region (point-min) (point-max)))))
421 436
422;; Isearch 437;; Isearch
423 438