summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2023-03-12 11:33:28 -0700
committerSean Whitton <spwhitton@spwhitton.name>2023-03-12 11:33:33 -0700
commitfa6901985cd2c135a84e500a6841d3e4b37d7503 (patch)
treea2205fc3476b4d5ae2a726d2d72e9df0f67cb82f
parent204ca8acb593d47baf5520c3ff7fded261c11716 (diff)
downloaddotfiles-fa6901985cd2c135a84e500a6841d3e4b37d7503.tar.gz
improve spw/paredit-no-space-after
-rw-r--r--.emacs.d/init.el16
1 files changed, 9 insertions, 7 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index 3d13f92c..cce2e89e 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -4566,13 +4566,15 @@ likely to keep parentheses balanced."
try-expand-dabbrev-from-kill)))
(defun spw/paredit-no-space-after (endp delimiter)
- (or endp (cl-case delimiter
- (?\( (cl-case (char-before)
- (?, nil)
- (?@ (not (char-equal ?, (char-before (1- (point))))))))
- (?\" (not (and (char-equal ?# (char-before (1- (point))))
- (memql (char-before) '(?p ?P ??)))))
- (t t))))
+ (rx-let ((comma-at (: ?, (0+ (any ?, ?@))))
+ (sharpsign (: (opt comma-at) ?#)))
+ (or endp (save-excursion
+ (skip-syntax-backward "^-" (pos-bol))
+ (not (looking-at
+ (cl-case delimiter
+ (?\" (rx sharpsign (| ?? ?p ?P ?~ "!~")))
+ (?\( (rx (| comma-at (: sharpsign (| ?? ?~ "!~")))))
+ (t (rx sharpsign (| ?? ?~ "!~"))))))))))
(add-to-list
'paredit-space-for-delimiter-predicates #'spw/paredit-no-space-after)