paredit --> smartparens. master
authorRicardo Wurmus <rekado@elephly.net>
Thu, 14 May 2020 14:37:59 +0000 (16:37 +0200)
committerRicardo Wurmus <rekado@elephly.net>
Thu, 14 May 2020 14:37:59 +0000 (16:37 +0200)
init.org

index d858395fd9d9491bbe9c140e57568bf1f3cb4fa2..5d32d0bba8e875a4ee8df1a9104ed42958fd09f8 100644 (file)
--- a/init.org
+++ b/init.org
@@ -79,7 +79,7 @@ To install all packages via GNU Guix I can either use a manifest file or use the
     emacs-web-mode \
     emacs-wget \
     emacs-znc \
-    emacs-paredit \
+    emacs-smartparens \
     magit \
     sicp \
     mu
@@ -865,7 +865,7 @@ I don’t like a cluttered modeline, so I like to hide mode lighters with =rich-
 #+BEGIN_SRC elisp
 ;; clean up mode line
 (require 'rich-minority)
-(setq rm-whitelist '(" God" " Paredit"))
+(setq rm-whitelist '(" God" " Smartparens"))
 
 ;; show time in modeline but not load average
 (setq display-time-format "%H:%M")
@@ -941,40 +941,31 @@ 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, Common Lisp, or Elisp.
+Editing lispy languages is no fun without =smartparens= (or =paredit=), a mode to enforce balanced parentheses.  Smartparens can be used not only for lispy languages but for all programming languages.
 
 #+BEGIN_SRC elisp
-(add-hook 'scheme-mode-hook (lambda () (paredit-mode 1)))
-(add-hook 'emacs-lisp-mode-hook (lambda () (paredit-mode 1)))
-(add-hook 'lisp-mode-hook (lambda () (paredit-mode 1)))
-(add-hook 'geiser-repl-mode-hook (lambda () (paredit-mode 1)))
+(add-hook 'prog-mode-hook (lambda () (smartparens-mode 1)))
 #+END_SRC
 
-Also enable =paredit= when editing Elisp in the minibuffer.
+Also enable =smartparens= when editing Elisp in the minibuffer.
 
 #+BEGIN_SRC elisp
-;; Enable `paredit-mode' in the minibuffer, during `eval-expression'.
-(defun conditionally-enable-paredit-mode ()
+;; Enable `smartparens-mode' in the minibuffer, during `eval-expression'.
+(defun conditionally-enable-smartparens-mode ()
   (if (eq this-command 'eval-expression)
-      (paredit-mode 1)))
+      (smartparens-mode 1)))
 
-(add-hook 'minibuffer-setup-hook 'conditionally-enable-paredit-mode)
+(add-hook 'minibuffer-setup-hook 'conditionally-enable-smartparens-mode)
 #+END_SRC
 
-Some customisations for =paredit=.
+Some customisations for =smartparens=.
 
 #+BEGIN_SRC elisp
 (eval-when-compile
-  (require 'paredit))
-(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))
+  (require 'smartparens))
+(with-eval-after-load "smartparens"
+  (setq smartparens-strict-mode t)
+  (sp-use-paredit-bindings))
 #+END_SRC
 
 TODO: the parentheses adjustments should happen only when I’m in programming mode.