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

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

[nongnu] elpa/ws-butler 0c48a1d102 47/64: Merge pull request #17 from il


From: Stefan Kangas
Subject: [nongnu] elpa/ws-butler 0c48a1d102 47/64: Merge pull request #17 from ilohmar/indent-tabs-symmetry
Date: Fri, 31 Dec 2021 11:09:32 -0500 (EST)

branch: elpa/ws-butler
commit 0c48a1d102f645f68188a2dbf1612c32a5a21e22
Merge: 7e2f32dcfc 404e70e75a
Author: Le Wang <lewang@users.noreply.github.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #17 from ilohmar/indent-tabs-symmetry
    
    Tabify indentation for non-nil indent-tabs-mode
---
 ws-butler.el | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/ws-butler.el b/ws-butler.el
index 93f52524f3..900af1e1b8 100644
--- a/ws-butler.el
+++ b/ws-butler.el
@@ -133,20 +133,25 @@ Also see `require-final-newline'."
 (defun ws-butler-clean-region (beg end)
   "Delete trailing blanks in region BEG END.
 
-If `indent-tabs-mode' is nil, then tabs in indentation is
-replaced by spaces."
+If `indent-tabs-mode' is nil, then tabs in indentation are
+replaced by spaces, and vice versa if t."
   (interactive "*r")
   (ws-butler-with-save
    (narrow-to-region beg end)
    ;;  _much slower would be:       (replace-regexp "[ \t]+$" "")
    (goto-char (point-min))
    (while (not (eobp))
-     ;; convert leading tabs to spaces
-     (unless indent-tabs-mode
-       (let ((eol (point-at-eol)))
-         (skip-chars-forward " " (point-at-eol))
+     ;; convert leading tabs to spaces or v.v.
+     (let ((eol (point-at-eol)))
+       (if indent-tabs-mode
+           (progn
+             (skip-chars-forward "\t" eol)
+             (when (eq (char-after) ?\ )
+               (tabify (point) (progn (skip-chars-forward " \t" eol)
+                                      (point)))))
+         (skip-chars-forward " " eol)
          (when (eq (char-after) ?\t )
-           (untabify (point) (progn (skip-chars-forward " \t" (point-at-eol))
+           (untabify (point) (progn (skip-chars-forward " \t" eol)
                                     (point))))))
      (end-of-line)
      (delete-horizontal-space)



reply via email to

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