summaryrefslogtreecommitdiff
path: root/lisp/init-paredit.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/init-paredit.el')
-rw-r--r--lisp/init-paredit.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/lisp/init-paredit.el b/lisp/init-paredit.el
new file mode 100644
index 0000000..660aab4
--- /dev/null
+++ b/lisp/init-paredit.el
@@ -0,0 +1,25 @@
+(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)