dot-doom/modules/private/meow/config.el

48 lines
1.6 KiB
EmacsLisp

;;; editor/meow/config.el -*- lexical-binding: t; -*-
;; Setup Functions
;; Leader Key
(defun meow/setup-leader ()
(map! :leader
:desc "Meow Cheatsheet"
"?" #'meow-cheatsheet))
(defun meow/setup-qwerty ()
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty))
(defun meow--eval-sexp ()
(interactive)
(cond ((derived-mode-p 'lisp-mode) (sly-eval-defun))
((derived-mode-p 'sclang-mode) (sclang-eval-region-or-line))
(t (eros-eval-defun nil))))
(defun meow--post-isearch-function ()
(unless isearch-mode-end-hook-quit
(when isearch-success
(let ((beg (car isearch-match-data))
(end (cadr isearch-match-data)))
(thread-first
(meow--make-selection '(select . visit) beg (if isearch-forward end isearch-other-end))
(meow--select (not isearch-forward)))))))
(add-hook 'isearch-mode-end-hook 'meow--post-isearch-function)
(use-package! meow
:hook (doom-after-modules-config . meow-global-mode)
:demand t
:config
(meow/setup-qwerty)
(setq meow-use-clipboard t)
(map! :map meow-normal-state-keymap
doom-leader-key doom-leader-map)
(map! :map meow-motion-state-keymap
doom-leader-key doom-leader-map)
(map! :map meow-beacon-state-keymap
doom-leader-key nil)
(meow/setup-leader)
(pushnew! meow-mode-state-list '(sly-db-mode . motion))
(pushnew! meow-mode-state-list '(sly-inspector-mode . motion))
(pushnew! meow-mode-state-list '(mu4e-main-mode . motion))
(pushnew! meow-mode-state-list '(vterm-mode . insert))
(pushnew! meow-mode-state-list '(sly-mode . insert)))