diff options
-rw-r--r-- | init.org | 34 | ||||
-rw-r--r-- | lisp/init-paredit.el | 25 |
2 files changed, 33 insertions, 26 deletions
@@ -801,6 +801,39 @@ Emacs also highlights matching parentheses, but it does so with a delay. Here I (show-paren-mode 1) #+END_SRC +Editing lispy languages is no fun without =paredit=, a mode to enforce balanced parentheses. Enable it automatically when editing Scheme or Elisp. + +#+BEGIN_SRC elisp +(add-hook 'scheme-mode-hook (lambda () (paredit-mode 1))) +(add-hook 'emacs-lisp-mode-hook (lambda () (paredit-mode 1))) +(add-hook 'geiser-repl-mode-hook (lambda () (paredit-mode 1))) +#+END_SRC + +Also enable =paredit= when editing Elisp in the minibuffer. + +#+BEGIN_SRC elisp +;; Enable `paredit-mode' in the minibuffer, during `eval-expression'. +(defun conditionally-enable-paredit-mode () + (if (eq this-command 'eval-expression) + (paredit-mode 1))) + +(add-hook 'minibuffer-setup-hook 'conditionally-enable-paredit-mode) +#+END_SRC + +Some customisations for =paredit=. + +#+BEGIN_SRC elisp +(with-eval-after-load "paredit" + ;; don't hijack \ please + (define-key paredit-mode-map (kbd "\\") nil) + ;; keybindings + (define-key paredit-mode-map (kbd "M-C-<backspace>") 'backward-kill-sexp) + ;; making paredit work with delete-selection-mode + (put 'paredit-forward-delete 'delete-selection 'supersede) + (put 'paredit-backward-delete 'delete-selection 'supersede) + (put 'paredit-newline 'delete-selection t)) +#+END_SRC + TODO: the parentheses adjustments should happen only when I’m in programming mode. #+BEGIN_SRC elisp @@ -1023,7 +1056,6 @@ This is even more stuff to be done after initialising packages. I still need to (load "init-eshell.el") (load "init-modeline.el") (load "init-my-stuff.el") -(load "init-paredit.el") ;; Revert stale document graphics buffers automatically when the files ;; have changed. diff --git a/lisp/init-paredit.el b/lisp/init-paredit.el deleted file mode 100644 index 660aab4..0000000 --- a/lisp/init-paredit.el +++ /dev/null @@ -1,25 +0,0 @@ -(require 'paredit) - -(add-hook 'scheme-mode-hook (lambda () (paredit-mode 1))) -(add-hook 'emacs-lisp-mode-hook (lambda () (paredit-mode 1))) -(add-hook 'geiser-repl-mode-hook (lambda () (paredit-mode 1))) - -;; don't hijack \ please -(define-key paredit-mode-map (kbd "\\") nil) - -;; keybindings -(define-key paredit-mode-map (kbd "M-C-<backspace>") 'backward-kill-sexp) - -;; Enable `paredit-mode' in the minibuffer, during `eval-expression'. -(defun conditionally-enable-paredit-mode () - (if (eq this-command 'eval-expression) - (paredit-mode 1))) - -(add-hook 'minibuffer-setup-hook 'conditionally-enable-paredit-mode) - -;; making paredit work with delete-selection-mode -(put 'paredit-forward-delete 'delete-selection 'supersede) -(put 'paredit-backward-delete 'delete-selection 'supersede) -(put 'paredit-newline 'delete-selection t) - -(provide 'setup-paredit) |