[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/paredit 56eff64 168/224: Add `paredit-indent-region' and m
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/paredit 56eff64 168/224: Add `paredit-indent-region' and move indentation utilities around. |
Date: |
Sat, 7 Aug 2021 09:22:43 -0400 (EDT) |
branch: elpa/paredit
commit 56eff644d5c55a4c452ae813f91441e847a11c81
Author: Taylor R Campbell <campbell@mumble.net>
Commit: Taylor R Campbell <campbell@mumble.net>
Add `paredit-indent-region' and move indentation utilities around.
---
paredit.el | 63 +++++++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 50 insertions(+), 13 deletions(-)
diff --git a/paredit.el b/paredit.el
index 176494d..5e91197 100644
--- a/paredit.el
+++ b/paredit.el
@@ -2510,19 +2510,6 @@ This assumes that `paredit-in-string-p' has already
returned true."
(goto-char (or position (point)))
(paredit-in-string-escape-p)))
-(defun paredit-indent-sexps ()
- "If in a list, indent all following S-expressions in the list."
- (let* ((start (point))
- (end (paredit-handle-sexp-errors (progn (up-list) (point)) nil)))
- (if end
- (indent-region start end nil))))
-
-(defun paredit-forward-and-indent ()
- "Move forward an S-expression, indenting it with `indent-region'."
- (let ((start (point)))
- (forward-sexp)
- (indent-region start (point) nil)))
-
(defun paredit-skip-whitespace (trailing-p &optional limit)
"Skip past any whitespace, or until the point LIMIT is reached.
If TRAILING-P is nil, skip leading whitespace; otherwise, skip trailing
@@ -2551,6 +2538,56 @@ Do not append to any current kill, and
(last-command nil))
(kill-region start end)))
+;;;;; Reindentation utilities
+
+;++ Should `paredit-indent-sexps' and `paredit-forward-and-indent' use
+;++ `paredit-indent-region' rather than `indent-region'?
+
+(defun paredit-indent-sexps ()
+ "If in a list, indent all following S-expressions in the list."
+ (let* ((start (point))
+ (end (paredit-handle-sexp-errors (progn (up-list) (point)) nil)))
+ (if end
+ (indent-region start end nil))))
+
+(defun paredit-forward-and-indent ()
+ "Move forward an S-expression, indenting it with `indent-region'."
+ (let ((start (point)))
+ (forward-sexp)
+ (indent-region start (point) nil)))
+
+(defun paredit-indent-region (start end)
+ "Indent the region from START to END.
+Don't reindent the line starting at START, however."
+ (if (not (<= start end))
+ (error "Incorrectly related points: %S, %S" start end))
+ (save-excursion
+ (goto-char start)
+ (let ((bol (point-at-bol)))
+ ;; Skip all S-expressions that end on the starting line, but
+ ;; don't go past `end'.
+ (if (and (save-excursion (goto-char end) (not (eq bol (point-at-bol))))
+ (paredit-handle-sexp-errors
+ (catch 'exit
+ (while t
+ (save-excursion
+ (forward-sexp)
+ (if (not (eq bol (point-at-bol)))
+ (throw 'exit t))
+ (if (not (< (point) end))
+ (throw 'exit nil)))
+ (forward-sexp)))
+ nil))
+ (progn
+ ;; Point is still on the same line, but precedes an
+ ;; S-expression that ends on a different line.
+ (if (not (eq bol (point-at-bol)))
+ (error "Internal error -- we moved forward a line!"))
+ (goto-char (+ 1 (point-at-eol)))
+ (if (not (<= (point) end))
+ (error "Internal error -- we frobnitzed the garfnut!"))
+ (indent-region (point) end nil))))))
+
;;;;; S-expression Parsing Utilities
;++ These routines redundantly traverse S-expressions a great deal.
- [nongnu] elpa/paredit aa42c19 140/224: Tweak a `paredit-reindent-defun' test slightly., (continued)
- [nongnu] elpa/paredit aa42c19 140/224: Tweak a `paredit-reindent-defun' test slightly., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 36c9a82 142/224: Add regression test for `paredit-convolute-sexp' screw case., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 4cb9112 144/224: Fix `kill-line' tests now that `show-trailing-whitespace' is nil., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit d2215ef 146/224: Add message to top of `paredit-test' reporting what we're testing., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit fc7c6aa 147/224: Add trivial check.sh to compile paredit and run tests., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 21ec511 154/224: Bump version: 23 beta -> 24 beta., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 6484222 157/224: Add notes for paredit 23 to NEWS., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit dc96f75 161/224: Add clearer names for the enclosing string start/end points., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 6cb5747 166/224: Change `paredit-meta-doublequote' to avoid breaking the line., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 9e5688e 167/224: Add some miscellaneous S-expression parsing utilities., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 56eff64 168/224: Add `paredit-indent-region' and move indentation utilities around.,
ELPA Syncer <=
- [nongnu] elpa/paredit 425e1a4 169/224: Improve indentation and column preservation in `paredit-splice'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 54317c8 171/224: Mark 24 as beta in NEWS., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit e0af01a 195/224: Make slurping and barfing support prefix arguments., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit c39e485 201/224: Bump copyright date: 2013->2014., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 4df6101 205/224: Bump copyright year to 2015., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 99829aa 214/224: Credit Alex Plotnick., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit acbe10f 216/224: Inherit input method when reading character for backslash escape., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 92aaa71 222/224: check.sh: Do not load Emacs init or site files, ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 814999b 219/224: New variables for comment prefixes., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit b1362db 223/224: Work around new quirk in emacs --eval., ELPA Syncer, 2021/08/07