]> git.earman.xyz Git - emacsinit.git/commitdiff
Better options for lisp, make auto-balance defun use existing parens
authorrearman <rearman@r717.net>
Thu, 26 Jun 2025 20:44:04 +0000 (16:44 -0400)
committerrearman <rearman@r717.net>
Thu, 26 Jun 2025 20:44:04 +0000 (16:44 -0400)
init.el
re/re-bindings.el
re/re-repl-defuns.el

diff --git a/init.el b/init.el
index 4e32bd03876532b012a2d1fc9814a21f74338856..0c2ff8a86cea4224619c95a2910c3a9173f70bb7 100644 (file)
--- 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
index e39726e2e985b94f7bcbe4a985b8cf4d977d020e..66af56279ec6d956872ab410f138e458544be7e5 100644 (file)
 
 (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))))
index 2a2eb637d207f4a5902fe32ecb92858ecf917556..2c6d8083d53cd69d989c998d677678d0caa23b35 100644 (file)
 
 (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)))))