48 lines
1.6 KiB
EmacsLisp
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)))
|