emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/ws-butler 81143ac737 25/64: Add customization for virtual


From: Stefan Kangas
Subject: [nongnu] elpa/ws-butler 81143ac737 25/64: Add customization for virtual space preservation.
Date: Fri, 31 Dec 2021 11:09:29 -0500 (EST)

branch: elpa/ws-butler
commit 81143ac7370ff14efd8e7dafa4cfc71094312cbc
Author: Le Wang <le.wang@agworld.com.au>
Commit: Le Wang <le.wang@agworld.com.au>

    Add customization for virtual space preservation.
    
    - #9
---
 ws-butler.el | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/ws-butler.el b/ws-butler.el
index 5f0298c73f..76752970ba 100644
--- a/ws-butler.el
+++ b/ws-butler.el
@@ -55,6 +55,17 @@
 
 (eval-when-compile (require 'cl))
 
+(defcustom ws-butler-keep-whitespace-before-point
+  "Keep whitespace at current point after save.
+
+This is particularly to preserve indentation.
+
+N.B. The spaces are removed in the file on disk.  So in a sense
+only the \"virtual\" space is preserved in the buffer.
+"
+  t)
+
+
 (defvar ws-butler-saved)
 
 (defmacro ws-butler-with-save (&rest forms)
@@ -159,15 +170,16 @@ replaced by spaces.
 (defun ws-butler-before-save ()
   "Trim white space before save.
 
-This will also ensure point doesn't jump due to white space
-trimming.  (i.e. keep whitespace after EOL text but before
-point."
+Setting `ws-butler-keep-whitespace-before-point' will also
+ensure point doesn't jump due to white space trimming.
+"
   ;; save data to restore later
-  (ws-butler-with-save
-   (widen)
-   (setq ws-butler-presave-coord (list
-                                  (line-number-at-pos (point))
-                                  (current-column))))
+  (when ws-butler-keep-whitespace-before-point
+    (ws-butler-with-save
+     (widen)
+     (setq ws-butler-presave-coord (list
+                                    (line-number-at-pos (point))
+                                    (current-column)))))
   (let (last-end)
     (ws-butler-map-changes
      (lambda (_prop beg end)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]