[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/paredit ace4f62 074/224: Count S-expressions more carefull
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/paredit ace4f62 074/224: Count S-expressions more carefully in `paredit-insert-pair'. |
Date: |
Sat, 7 Aug 2021 09:22:22 -0400 (EDT) |
branch: elpa/paredit
commit ace4f62faec2aa1f157ab9c647d023df15d44888
Author: Taylor R Campbell <campbell@mumble.net>
Commit: Taylor R Campbell <campbell@mumble.net>
Count S-expressions more carefully in `paredit-insert-pair'.
Ignore-this: 1b8fe110a0983c730918eb16ed81911a
Suggested by Eitan Postavsky.
I'm not yet sure this is right (and I'm not yet sure of the similar
change to `paredit-count-sexps-forward' and thus `C-u M-('), but I'll
try it out.
darcs-hash:20110320194242-00fcc-635c1cdba60f9a6b395561a64349876b6e524d29
---
paredit.el | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/paredit.el b/paredit.el
index a05ed06..6d8d827 100644
--- a/paredit.el
+++ b/paredit.el
@@ -732,15 +732,32 @@ If such a comment exists, delete the comment (including
all leading
(insert open)
(save-excursion
;; Move past the desired region.
- (cond (n (funcall forward
- (save-excursion
- (forward-sexp (prefix-numeric-value n))
- (point))))
- (regionp (funcall forward (+ end (if spacep 2 1)))))
+ (cond (n
+ (funcall forward
+ (paredit-scan-sexps-hack (point)
+ (prefix-numeric-value n))))
+ (regionp
+ (funcall forward (+ end (if spacep 2 1)))))
(insert close)
(if (paredit-space-for-delimiter-p t close)
(insert " "))))))
+;++ This needs a better name...
+
+(defun paredit-scan-sexps-hack (point n)
+ (save-excursion
+ (goto-char point)
+ (let ((direction (if (< 0 n) +1 -1))
+ (magnitude (abs n))
+ (count 0))
+ (catch 'exit
+ (while (< count magnitude)
+ (let ((p (scan-sexps (point) direction)))
+ (if (not p) (throw 'exit nil))
+ (goto-char p))
+ (setq count (+ count 1)))))
+ (point)))
+
(defun paredit-region-safe-for-insert-p ()
(save-excursion
(let ((beginning (region-beginning))
- [nongnu] elpa/paredit 342fee5 017/224: Changes for version 21., (continued)
- [nongnu] elpa/paredit 342fee5 017/224: Changes for version 21., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 1bb9831 002/224: Changes for versions 2--6., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 36f2f18 009/224: Changes for version 13., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 446316e 034/224: Ignore errors while indenting after inserting a comment., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit fd2c399 049/224: Implement `paredit-kill-ring-save' and `paredit-kill-region'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 79b5d96 054/224: Bump version: 22 beta -> 23., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 3f6b294 062/224: Fix comment in `paredit-forward' on `up-list' vs `forward-char'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit f9ab2e7 080/224: Show point in `paredit-splice-sexp-killing-backward' example., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 0efc755 088/224: Fix typo: `imbalanced' -> `unbalanced' in `paredit-mode' docstring., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 2ed66de 092/224: Use `?\ ' rather than `?\s' to appease GNU Emacs 21., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit ace4f62 074/224: Count S-expressions more carefully in `paredit-insert-pair'.,
ELPA Syncer <=
- [nongnu] elpa/paredit 43bf81f 028/224: Implement `paredit-copy-as-kill'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit e80ffcc 112/224: Check for expected errors in `paredit-backward-delete'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 3bf30f9 115/224: Omit redundant `paredit-backward-delete' test., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit ba0de55 120/224: Add brief docstring to `paredit-check-region-state'., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 951813a 131/224: Fix `paredit-move-past-close' within a character escape., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 901acb8 012/224: Changes for version 16., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 602e328 011/224: Changes for version 15., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 760ae70 004/224: Changes for version 8., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 004d257 013/224: Changes for version 17., ELPA Syncer, 2021/08/07
- [nongnu] elpa/paredit 7f89e54 014/224: Changes for version 18., ELPA Syncer, 2021/08/07