nixos-config/dotfiles/dot_config/doom/modules/private/meow/config.el
2024-09-27 14:57:18 -04:00

51 lines
1.7 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)))
(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 . motion)))
;; (pushnew! meow-mode-state-list '(custom-mode . motion)))