summaryrefslogtreecommitdiff
path: root/tw
diff options
context:
space:
mode:
authorTimo Wilken2023-10-30 17:29:29 +0100
committerTimo Wilken2023-10-30 17:29:42 +0100
commitbfd732d421c07c7c5e3633e675632dc17a27fc4e (patch)
tree1f934f94a4a01033a1e0f82f94553208a8aaa387 /tw
parentf7b81e6a0f395a02df9c882866deae0e397c2f72 (diff)
Fix smartparens setup
Diffstat (limited to 'tw')
-rw-r--r--tw/home.scm1
-rw-r--r--tw/home/files/emacs-init.el31
2 files changed, 30 insertions, 2 deletions
diff --git a/tw/home.scm b/tw/home.scm
index d1308065..bfa9f5c5 100644
--- a/tw/home.scm
+++ b/tw/home.scm
@@ -337,6 +337,7 @@
emacs-evil-traces
emacs-evil-commentary
emacs-evil-replace-with-register
+ emacs-evil-cleverparens
emacs-evil-org
emacs-evil-markdown
emacs-evil-tex
diff --git a/tw/home/files/emacs-init.el b/tw/home/files/emacs-init.el
index 56db4fa6..03255351 100644
--- a/tw/home/files/emacs-init.el
+++ b/tw/home/files/emacs-init.el
@@ -430,6 +430,28 @@ If CREATE is true and the resulting directory does not exist, create it."
(evil-define-key 'normal ledger-mode-map
(kbd "TAB") #'ledger-indent-line))
+(use-package lisp
+ :init (which-key-add-key-based-replacements
+ "<leader>k" '("sexp-nav" . "S-expression navigation"))
+ :bind (("<leader>kl" . forward-sexp)
+ ("<leader>kh" . backward-sexp)
+ ("<leader>kL" . forward-list)
+ ("<leader>kH" . backward-list)
+ ("<leader>kj" . down-list)
+ ("<leader>kk" . up-list)
+ ("<leader>kK" . backward-up-list)
+ ("<leader>kd" . kill-sexp)
+ ("<leader>kD" . backward-kill-sexp)
+ ("<leader>kb" . beginning-of-defun)
+ ("<leader>kB" . beginning-of-defun-comments)
+ ("<leader>ke" . end-of-defun)
+ ("<leader>kv" . mark-sexp)
+ ("<leader>kV" . mark-defun)
+ ("<leader>kN" . narrow-to-defun)
+ ("<leader>ks" . insert-pair)
+ ("<leader>kr" . raise-sexp)
+ ("<leader>kc" . check-parens)))
+
(defun tw/resize-repl-window ()
"Make the REPL window small, so it stays out of the way."
(shrink-window (- (window-height) 5)))
@@ -757,9 +779,14 @@ For use in `org-latex-classes'."
:commands (global-evil-surround-mode) :demand t
:config (global-evil-surround-mode +1))
-(use-package evil-smartparens
+(use-package smartparens ; required by evil-cleverparens
+ :custom
+ ;; (sp-sexp-prefix '() "Set up Guix gexp-related sexp prefixes.")
+ )
+
+(use-package evil-cleverparens
:after (evil smartparens)
- :hook smartparens-enabled-hook)
+ :hook ((lisp-mode lisp-data-mode scheme-mode) . evil-cleverparens-mode))
(use-package evil-multiedit
;; See: https://github.com/hlissner/evil-multiedit#usage