about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el
blob: c15c4526c2ee94fd161b87e1f0d06d6bbd14bd32 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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