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

55 lines
1.8 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)
(meow-motion-overwrite-define-key
'("j" . meow-next)
'("k" . meow-prev))
(meow-leader-define-key
;; SPC j/k will run the original command in MOTION state.
'("j" . "H-j")
'("k" . "H-k")))
(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)
(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)
(setq meow-tree-sitter-queries-dir "~/Source/_src/meow-tree-sitter/queries/")
(meow-tree-sitter-register-defaults)
(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 . insert)))
;; (pushnew! meow-mode-state-list '(custom-mode . motion)))