[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/paredit 3889955 212/224: Don't reindent single-line edits
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/paredit 3889955 212/224: Don't reindent single-line edits in paredit-raise-sexp. |
Date: |
Sat, 7 Aug 2021 09:22:53 -0400 (EDT) |
branch: elpa/paredit
commit 38899558cf242187966d8bf1771a3c8e48eb5090
Author: Taylor R Campbell <campbell+paredit@mumble.net>
Commit: Taylor R Campbell <campbell+paredit@mumble.net>
Don't reindent single-line edits in paredit-raise-sexp.
Add a couple trivial tests for paredit-raise-sexp.
Bug reported by Alex Plotnick.
---
paredit.el | 10 +++++++++-
test.el | 8 ++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/paredit.el b/paredit.el
index 3b69058..c54997d 100644
--- a/paredit.el
+++ b/paredit.el
@@ -2156,7 +2156,15 @@ If the point is on an S-expression, such as a string or
a symbol, not
(delete-region (point) (scan-sexps (point) 1))
(let* ((indent-start (point))
(indent-end (save-excursion (insert sexps) (point))))
- (indent-region indent-start indent-end nil)))))
+ ;; If the expression spans multiple lines, its indentation is
+ ;; probably broken, so reindent it -- but don't reindent
+ ;; anything that we didn't touch outside the expression.
+ ;;
+ ;; XXX What if the *column* of the starting point was preserved
+ ;; too? Should we avoid reindenting in that case?
+ (if (not (eq (save-excursion (goto-char indent-start) (point-at-eol))
+ (save-excursion (goto-char indent-end) (point-at-eol))))
+ (indent-region indent-start indent-end nil))))))
;;; The effects of convolution on the surrounding whitespace are pretty
;;; random. If you have better suggestions, please let me know.
diff --git a/test.el b/test.el
index f3444af..307747b 100644
--- a/test.el
+++ b/test.el
@@ -1409,3 +1409,11 @@ Four arguments: the paredit command, the text of the
buffer
("(let ((x 0)) a (progn|) b)" "(progn |(let ((x 0)) a b))")
("(let ((x 0)) a (progn| ) b)" "(progn |(let ((x 0)) a b))")
("(let ((x 0)) a (progn |) b)" "(progn |(let ((x 0)) a b))")))
+
+(paredit-test 'paredit-raise-sexp
+ `((,(concat
+ "(let ((x 5))\n (let ((y 3))\n |(foo bar\n baz)\n"
+ " (quux))\n (wrong indent))")
+ "(let ((x 5))\n |(foo bar\n baz)\n (wrong indent))")
+ ("(define (f x #!optional\n (|wrong indent))\n (+ 1 2))"
+ "(define (f x #!optional\n |wrong)\n (+ 1 2))")))
- [nongnu] elpa/paredit 6304b64 191/224: Suggest `M-x enable-paredit-mode RET'., (continued)
- [nongnu] elpa/paredit 6304b64 191/224: Suggest `M-x enable-paredit-mode RET'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit b68216f 197/224: Add news item about changes to HTML reference., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit cde0dbb 199/224: Note nicer slurpage into an empty list in NEWS., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit d36f200 200/224: Add autoload cookie for `enable-paredit-mode'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit bf19566 198/224: Note omission of `backward-down-list' in NEWS., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 848a68b 204/224: Bump version number 24->25., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 35dc7b1 207/224: Appease `version-to-list' syntax in Version: keyword., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 9a696fd 208/224: Make the mode line lighter a configurable variable., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 7c27746 211/224: Fix some wording about paredit-space-for-delmiter-predicates., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 38690fe 209/224: Bump copyright year to 2016., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 3889955 212/224: Don't reindent single-line edits in paredit-raise-sexp.,
ELPA Syncer <=
- [nongnu] elpa/paredit 961b02f 217/224: Ignore unused argument in paredit-override-check-parens-interactively, ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 27548db 220/224: Disable minibuffer message delays in tests., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit b1c332a 218/224: Bump copyright year., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 09658a4 221/224: Trailing newline., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit dc60d93 029/224: Document the effect of a prefix argument to the `paredit-mode' command., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 190797e 030/224: Add warning to documentation of prefix arguments to `paredit-mode'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 41a0a34 033/224: Omit unused variable `orig' in `paredit-move-past-close-and-reindent'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 04e6f50 035/224: Put space between closing delimiters and opening double quotes., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 70d40b5 040/224: Refine scope of reindentation after raise, splice, and insert-comment., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 896c165 039/224: Implement variable `paredit-space-for-delimiter-predicates'., ELPA Syncer, 2021/08/07