diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2023-03-12 11:33:28 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2023-03-12 11:33:33 -0700 |
commit | fa6901985cd2c135a84e500a6841d3e4b37d7503 (patch) | |
tree | a2205fc3476b4d5ae2a726d2d72e9df0f67cb82f | |
parent | 204ca8acb593d47baf5520c3ff7fded261c11716 (diff) | |
download | dotfiles-fa6901985cd2c135a84e500a6841d3e4b37d7503.tar.gz |
improve spw/paredit-no-space-after
-rw-r--r-- | .emacs.d/init.el | 16 |
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) |