From b68df9926a57f2764d2d97cbe7b0a08f6f77ae63 Mon Sep 17 00:00:00 2001 From: rearman Date: Thu, 26 Jun 2025 16:44:04 -0400 Subject: [PATCH] Better options for lisp, make auto-balance defun use existing parens --- init.el | 3 +-- re/re-bindings.el | 6 ++++-- re/re-repl-defuns.el | 8 ++++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/init.el b/init.el index 4e32bd0..0c2ff8a 100644 --- a/init.el +++ b/init.el @@ -46,7 +46,6 @@ ;; Damper dealiŋ (delete-selection-mode t) -;; (global-sedit-mouse-mode t) (global-acme-mouse-mode t) (setq disabled-command-function nil @@ -80,7 +79,7 @@ (add-hook 'dired-mode-hook (lambda nil (dired-hide-details-mode t) - (keymap-set dired-mode-map "RET" #'dired-find-alternate-file) + ;; (keymap-set dired-mode-map "RET" #'dired-find-alternate-file) (keymap-set dired-mode-map "f" #'re/dired-find-marked-files))) ;; Bookmarks diff --git a/re/re-bindings.el b/re/re-bindings.el index e39726e..66af562 100644 --- a/re/re-bindings.el +++ b/re/re-bindings.el @@ -77,17 +77,19 @@ (dolist (hook *re/lisp-mode-hooks*) (add-hook hook - (lambda () + (lambda nil (acme-mouse-mode 0) (sedit-mouse-mode 1) + (electric-pair-mode 1) (keymap-set lisp-mode-shared-map "]" (re/balance-and-eval-sexp #'sedit-auto-prettify-sexp))))) (add-hook 'lisp-interaction-mode-hook - (lambda () + (lambda nil (acme-mouse-mode 0) (sedit-mouse-mode 1) + (electric-pair-mode 1) (keymap-set lisp-interaction-mode-map "]" (re/balance-and-eval-sexp #'eval-print-last-sexp)))) diff --git a/re/re-repl-defuns.el b/re/re-repl-defuns.el index 2a2eb63..2c6d808 100644 --- a/re/re-repl-defuns.el +++ b/re/re-repl-defuns.el @@ -26,10 +26,14 @@ (defun re/balance-sexp () "Balance the sexp before point. -Either delete or add as many ')' as needed." +Either delete, move forward, or add as many ')' as needed." (let ((distance (re/sexp-unbalanced-count))) (cond ((re/sexp-need-paren-p) - (insert-char 41 distance)) + (if (looking-at ")") + (progn + (forward-char) + (re/balance-sexp)) + (insert-char 41 distance))) ((re/sexp-drop-paren-p) (backward-delete-char distance))))) -- 2.39.5