;;; 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) (pushnew! meow-mode-state-list '(sly-db-mode . motion)) (pushnew! meow-mode-state-list '(sly-inspector-mode . motion))) ;; (pushnew! meow-mode-state-list '(custom-mode . motion)))