[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/adaptive-wrap f78efba 02/15: Add adaptive-wrap-extra-in
From: |
Stefan Monnier |
Subject: |
[elpa] externals/adaptive-wrap f78efba 02/15: Add adaptive-wrap-extra-indent. |
Date: |
Sun, 29 Nov 2020 19:09:07 -0500 (EST) |
branch: externals/adaptive-wrap
commit f78efba45d51a0fe2c1da341ca5d76a027626d2d
Author: Jonathan Kotta <jpkotta@gmail.com>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
Add adaptive-wrap-extra-indent.
* adaptive-wrap/adaptive-wrap.el (adaptive-wrap-extra-indent): New var.
(adaptive-wrap-fill-context-prefix): New function.
(adaptive-wrap-prefix-function): Use it.
(adaptive-wrap-prefix-mode): Add to visual-line custom group.
---
adaptive-wrap.el | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 51 insertions(+), 3 deletions(-)
diff --git a/adaptive-wrap.el b/adaptive-wrap.el
index 0f4fc51..28db679 100644
--- a/adaptive-wrap.el
+++ b/adaptive-wrap.el
@@ -28,20 +28,69 @@
;;; Code:
+(defcustom adaptive-wrap-extra-indent 0
+ "Number of extra spaces to indent in `adaptive-wrap-prefix-mode'.
+
+`adaptive-wrap-prefix-mode' indents the visual lines to
+the level of the actual line plus `adaptive-wrap-extra-indent'.
+A negative value will do a relative de-indent.
+
+Examples:
+
+actual indent = 2
+extra indent = -1
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
+ enim ad minim veniam, quis nostrud exercitation ullamco laboris
+ nisi ut aliquip ex ea commodo consequat.
+
+actual indent = 2
+extra indent = 2
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
+ enim ad minim veniam, quis nostrud exercitation ullamco laboris
+ nisi ut aliquip ex ea commodo consequat."
+ :type 'integer
+ :group 'visual-line)
+(make-local-variable 'adaptive-wrap-extra-indent)
+
+(defun adaptive-wrap-fill-context-prefix (beg en)
+ "Like `fill-context-prefix', but with length adjusted by
`adaptive-wrap-extra-indent'."
+ (let* ((fcp (fill-context-prefix beg en))
+ (fcp-len (string-width fcp))
+ (fill-char (if (< 0 fcp-len)
+ (string-to-char (substring fcp -1))
+ ?\ )))
+ (cond
+ ((= 0 adaptive-wrap-extra-indent)
+ fcp)
+ ((< 0 adaptive-wrap-extra-indent)
+ (concat fcp
+ (make-string adaptive-wrap-extra-indent fill-char)))
+ ((< 0 (+ adaptive-wrap-extra-indent fcp-len))
+ (substring fcp
+ 0
+ (+ adaptive-wrap-extra-indent fcp-len)))
+ (t
+ ""))))
+
(defun adaptive-wrap-prefix-function (beg end)
"Indent the region between BEG and END with adaptive filling."
(goto-char beg)
(while (< (point) end)
- (let ((blp (line-beginning-position)))
+ (let ((lbp (line-beginning-position)))
(put-text-property (point)
(progn (search-forward "\n" end 'move) (point))
'wrap-prefix
- (fill-context-prefix blp (point))))))
+ (adaptive-wrap-fill-context-prefix lbp (point))))))
;;;###autoload
(define-minor-mode adaptive-wrap-prefix-mode
"Wrap the buffer text with adaptive filling."
:lighter ""
+ :group 'visual-line
(if adaptive-wrap-prefix-mode
(jit-lock-register #'adaptive-wrap-prefix-function)
(jit-lock-unregister #'adaptive-wrap-prefix-function)
@@ -50,6 +99,5 @@
(widen)
(remove-text-properties (point-min) (point-max) '(wrap-prefix nil))))))
-
(provide 'adaptive-wrap)
;;; adaptive-wrap.el ends here
- [elpa] branch externals/adaptive-wrap created (now 603648e), Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap db52f0b 01/15: Rename adaptive-wrap-prefix to adaptive-wrap., Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap f78efba 02/15: Add adaptive-wrap-extra-indent.,
Stefan Monnier <=
- [elpa] externals/adaptive-wrap 77979be 04/15: * adaptive-wrap.el (adaptive-wrap-extra-indent): Fix buffer-localness., Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap fb4aa4e 06/15: * adaptive-wrap.el (menu-bar-options-menu): Add checkbox for Adaptive Wrap, Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap 7db060b 07/15: * adaptive-wrap.el: Require easymenu (bug#14974)., Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap 07e03a8 08/15: * adaptive-wrap.el: Fix bug#14974 by using define-key-after, Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap ef01f42 09/15: * adaptive-wrap.el (adaptive-wrap-mode): Move after font-lock (bug#15155)., Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap b17b789 10/15: Mark adaptive-wrap-extra-indent as safe if integerp (Bug#23816), Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap 710d484 05/15: Fix error during redisplay: (wrong-type-argument stringp nil), Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap 01e7d1f 14/15: adaptive-wrap: Fontify wrap-prefix, Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap 603648e 15/15: * .gitignore: New file, Stefan Monnier, 2020/11/29
- [elpa] externals/adaptive-wrap 5888dc0 03/15: Clean up copyright notices., Stefan Monnier, 2020/11/29