about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el')
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el45
1 files changed, 45 insertions, 0 deletions
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el
new file mode 100644
index 000000000000..c15c4526c2ee
--- /dev/null
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el
@@ -0,0 +1,45 @@
+;;; lisp.el --- Generic LISP preferences -*- lexical-binding: t -*-
+;; Author: William Carroll <wpcarro@gmail.com>
+
+;;; Commentary:
+;; This hosts things like Paredit settings
+
+;;; Code:
+
+(defconst wpc/lisp-mode-hooks
+  '(emacs-lisp-mode-hook
+    clojure-mode-hook
+    clojurescript-mode-hook))
+
+;; Elisp
+(use-package elisp-slime-nav
+  :ghook
+  'emacs-lisp-mode
+  'ielm-mode)
+
+;; Here is some of the thinking behind some of the keybindings:
+;;
+;; slurp    s
+;; barf     S
+;; forward  )
+;; backward (
+;;
+;; Known concession: s and S eclipse Vim bindings. There is a precedent already
+;; for eclipsing the s binding for window splitting. Shift-s feel appropriate
+;; for barfing, since eclisping the b KBD feels less acceptable than eclisping
+;; the s KBD.
+
+;; paredit LISP editing
+(use-package paredit
+  :general
+  (general-unbind paredit-mode-map "C-j" "M-q")
+  (n paredit-mode-map
+     "s)" 'paredit-forward-slurp-sexp
+     "s(" 'paredit-backward-slurp-sexp
+     "S)" 'paredit-forward-barf-sexp
+     "S(" 'paredit-backward-barf-sexp
+     "gr" 'paredit-raise-sexp)
+  :ghook (wpc/lisp-mode-hooks #'enable-paredit-mode))
+
+(provide 'wpc-lisp)
+;;; lisp.el ends here