[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/paredit b7f234a 067/224: Preserve column in `paredit-reind
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/paredit b7f234a 067/224: Preserve column in `paredit-reindent-defun'. |
Date: |
Sat, 7 Aug 2021 09:22:20 -0400 (EDT) |
branch: elpa/paredit
commit b7f234ab0e201b5e8366ad27ecd0fd70f5101b55
Author: Taylor R Campbell <campbell@mumble.net>
Commit: Taylor R Campbell <campbell@mumble.net>
Preserve column in `paredit-reindent-defun'.
Ignore-this: 9c3342808317128eefc0b83bf63cfb15
Also use `lisp-fill-paragraph' rather than `fill-paragraph'.
Thanks to Eitan Postavsky for the suggestion.
darcs-hash:20110320183704-00fcc-d64d8a2d2e06db8a206a0fadb3b9dbe0f8c10abf
---
paredit.el | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/paredit.el b/paredit.el
index 23acb5f..637dd72 100644
--- a/paredit.el
+++ b/paredit.el
@@ -984,11 +984,22 @@ If the point is in a string or a comment, fill the
paragraph instead,
(interactive "P")
(if (or (paredit-in-string-p)
(paredit-in-comment-p))
- (fill-paragraph argument)
- (save-excursion
- (end-of-defun)
- (beginning-of-defun)
- (indent-sexp))))
+ (lisp-fill-paragraph argument)
+ (let ((column (current-column))
+ (indentation (paredit-current-indentation)))
+ (save-excursion (end-of-defun) (beginning-of-defun) (indent-sexp))
+ ;; Preserve the point's position either in the indentation or in
+ ;; the code: if on code, move with the code; if in indentation,
+ ;; leave it in the indentation, either where it was (if that's
+ ;; still indentation) or at the end of the indentation (if the
+ ;; code moved far enough left).
+ (let ((indentation* (paredit-current-indentation)))
+ (goto-char
+ (+ (point-at-bol)
+ (cond ((not (< column indentation))
+ (+ column (- indentation* indentation)))
+ ((<= indentation* column) indentation*)
+ (t column))))))))
;;;; Comment Insertion
@@ -2479,6 +2490,11 @@ If no parse state is supplied, compute one from the
beginning of the
(forward-sexp))))
t)
nil))
+
+(defun paredit-current-indentation ()
+ (save-excursion
+ (back-to-indentation)
+ (current-column)))
;;;; Initialization
- [nongnu] elpa/paredit 896c165 039/224: Implement variable `paredit-space-for-delimiter-predicates'., (continued)
- [nongnu] elpa/paredit 896c165 039/224: Implement variable `paredit-space-for-delimiter-predicates'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit e23adec 036/224: Omit vestigial debug message in `paredit-backward-slurp-into-string'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit c0a9160 041/224: Make `paredit-newline' keep invalid structure inside comments., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 05b2cad 043/224: Generalize `paredit-kill' to work inside any string-like object., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit e380e42 048/224: Implement `paredit-{for, back}ward-{up, down}'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 3ce96a4 050/224: Fix format arguments in `paredit-check-region-state-comment'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 73c481a 061/224: Simplify and clarify implementation of `paredit-backslash'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit b51f220 055/224: In `paredit-newline', ignore parse errors during `indent-sexp'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 0011090 066/224: Fix bounds checking in `paredit-find-next-string-start'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit bd0e5ba 072/224: Don't mask errors during `buffer-string' in `paredit-unescape-string'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit b7f234a 067/224: Preserve column in `paredit-reindent-defun'.,
ELPA Syncer <=
- [nongnu] elpa/paredit 2a94a48 103/224: Set `indent-tabs-mode' and `current-column' in `paredit-test'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit e06ab40 063/224: Spell `paredit-recenter-on-sexp' to match convention in Emacs., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 0a7619c 089/224: Fix `imbalanced' -> `unbalanced' in `paredit-kill-ring-save' docstring., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 9faf474 073/224: Use `scan-sexps' for noninteractive `check-parens'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit a79aa2c 082/224: Fix end-of-line and end-of-buffer corner cases of `paredit-semicolon'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 8a85899 098/224: Omit vestigial debugging message from `paredit-test' in test.el., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 678d843 107/224: Make the exhortation about bug reports slightly less harsh., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit f5e7959 081/224: Show point in `paredit-splice-sexp-killing-forward' example., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 4800e25 101/224: Use `let*' rather than `let' in `paredit-indent-sexps'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit dd8c16f 105/224: Omit vestigial unattached asterisk in summary at top., ELPA Syncer, 2021/08/07