From 9a0dbf505c044f427eb629ef7f324e165dbcc1aa Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Sat, 10 Apr 2021 14:29:05 -0500 Subject: Fix paredit-mode bindings in SLIME's REPL I could (a) put these in a different place (in the `setup slime' form, for example), or (b) streamlined funcitons or ... something, but I did it this way and it works fine so that's that. Oh, I also wrote a longish docstring. --- init.el | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/init.el b/init.el index 1876aa6..4824b75 100644 --- a/init.el +++ b/init.el @@ -719,12 +719,25 @@ if ripgrep is installed, otherwise `consult-grep'." ielm-mode lisp-mode lisp-interaction-mode - scheme-mode) - - (defun disable-electric-pair-local-mode () - (electric-pair-local-mode -1)) - - (:hook disable-electric-pair-local-mode) + scheme-mode + slime-repl-mode) + + (defun paredit-disable-electric-pair-local-mode () + "Disable `electric-pair-local-mode' when `paredit-mode' is enabled." + (electric-indent-local-mode (if paredit-mode -1 +1))) + + (defun paredit-properly-bind-backspace () + "Properly bind DEL and C-d in `paredit-mode'. + +`paredit-mode''s DEL binding is shadowed by that for +`lisp-mode-shared-map', so in this hook I remove the binding I +don't want." + (define-key lisp-mode-shared-map (kbd "DEL") nil) + (define-key paredit-mode-map (kbd "DEL") #'paredit-backward-delete) + (define-key paredit-mode-map (kbd "C-d") #'paredit-forward-delete)) + + (:hook paredit-disable-electric-pair-local-mode + paredit-properly-bind-backspace) (require 'eldoc) (eldoc-add-command 'paredit-backward-delete 'paredit-close-round)) -- cgit 1.4.1-21-gabe81