doomemacs/modules/editor/lispy/config.el

53 lines
1.8 KiB
EmacsLisp
Raw Normal View History

;;; editor/lispy/config.el -*- lexical-binding: t; -*-
(use-package! lispy
2020-04-11 01:07:20 +02:00
:hook ((lisp-mode . lispy-mode)
(emacs-lisp-mode . lispy-mode)
2021-02-06 23:31:32 +01:00
(ielm-mode . lispy-mode)
(scheme-mode . lispy-mode)
(racket-mode . lispy-mode)
(hy-mode . lispy-mode)
(lfe-mode . lispy-mode)
(dune-mode . lispy-mode)
2021-05-04 16:22:55 -04:00
(clojure-mode . lispy-mode)
(fennel-mode . lispy-mode))
:init
(add-hook! 'eval-expression-minibuffer-setup-hook
(defun doom-init-lispy-in-eval-expression-h ()
"Enable `lispy-mode' in the minibuffer for `eval-expression'."
(lispy-mode)
;; When `lispy-key-theme' has `parinfer', the TAB key doesn't do
;; completion, neither (kbd "<tab>"/"TAB"/"C-i")/[tab]/"\C-i" works in
;; terminal as tested so remapping is used as a workaround
(local-set-key (vector 'remap (lookup-key lispy-mode-map (kbd "TAB"))) #'completion-at-point)))
:config
(setq lispy-close-quotes-at-end-p t)
(add-hook 'lispy-mode-hook #'turn-off-smartparens-mode)
(when (modulep! :lang emacs-lisp)
(setq lispy-outline
(concat
;; `lispy-mode' requires `lispy-outline' start with ^
(unless (string-prefix-p "^" +emacs-lisp-outline-regexp) "^")
+emacs-lisp-outline-regexp))
(advice-add #'lispy-outline-level :override #'+emacs-lisp-outline-level)))
(use-package! lispyville
:when (modulep! :editor evil)
:hook (lispy-mode . lispyville-mode)
:init
(setq lispyville-key-theme
'((operators normal)
c-w
(prettify insert)
(atom-movement t)
slurp/barf-lispy
additional
additional-insert))
:config
(lispyville-set-key-theme)
(add-hook! 'evil-escape-inhibit-functions
(defun +lispy-inhibit-evil-escape-fn ()
(and lispy-mode (evil-insert-state-p)))))