doomemacs/modules/ui/ophints/config.el
Henrik Lissner 10d0b60f5d
refactor(lib): deprecate pushnew!
In the spirit of 6f40ad5, I'm deprecating this macro because it doesn't
provide enough value to exist and serves only to complicate a casual
reader's understanding of Doom's modules.

Ref: 6f40ad55f5
2026-03-01 18:10:43 -05:00

72 lines
3.5 KiB
EmacsLisp

;;; ui/ophints/config.el -*- lexical-binding: t; -*-
(use-package! evil-goggles
:when (modulep! :editor evil)
:hook (doom-first-input . evil-goggles-mode)
:init
(setq evil-goggles-duration 0.1
evil-goggles-pulse nil ; too slow
;; evil-goggles provides a good indicator of what has been affected.
;; delete/change is obvious, so I'd rather disable it for these.
evil-goggles-enable-delete nil
evil-goggles-enable-change nil)
:config
(dolist (cmd `((evil-magit-yank-whole-line
:face evil-goggles-yank-face
:switch evil-goggles-enable-yank
:advice evil-goggles--generic-async-advice)
(+evil:yank-unindented
:face evil-goggles-yank-face
:switch evil-goggles-enable-yank
:advice evil-goggles--generic-async-advice)
(+eval:region
:face evil-goggles-yank-face
:switch evil-goggles-enable-yank
:advice evil-goggles--generic-async-advice)
,@(when (modulep! :editor lispy)
'((lispyville-delete
:face evil-goggles-delete-face
:switch evil-goggles-enable-delete
:advice evil-goggles--generic-blocking-advice)
(lispyville-delete-line
:face evil-goggles-delete-face
:switch evil-goggles-enable-delete
:advice evil-goggles--delete-line-advice)
(lispyville-yank
:face evil-goggles-yank-face
:switch evil-goggles-enable-yank
:advice evil-goggles--generic-async-advice)
(lispyville-yank-line
:face evil-goggles-yank-face
:switch evil-goggles-enable-yank
:advice evil-goggles--generic-async-advice)
(lispyville-change
:face evil-goggles-change-face
:switch evil-goggles-enable-change
:advice evil-goggles--generic-blocking-advice)
(lispyville-change-line
:face evil-goggles-change-face
:switch evil-goggles-enable-change
:advice evil-goggles--generic-blocking-advice)
(lispyville-change-whole-line
:face evil-goggles-change-face
:switch evil-goggles-enable-change
:advice evil-goggles--generic-blocking-advice)
(lispyville-indent
:face evil-goggles-indent-face
:switch evil-goggles-enable-indent
:advice evil-goggles--generic-async-advice)
(lispyville-join
:face evil-goggles-join-face
:switch evil-goggles-enable-join
:advice evil-goggles--join-advice)))))
(add-to-list 'evil-goggles--commands cmd)))
(use-package! goggles
:unless (modulep! :editor evil)
:hook ((prog-mode text-mode) . goggles-mode)
:config
(goggles-define +goggles-general-undo undo) ; goggles only supports `primitive-undo' by default
(goggles-define +goggles-register-paste insert-register)
(goggles-define +goggles-kill-word backward-kill-word kill-word)
(goggles-define +goggles-undo-fu undo-fu-only-undo undo-fu-only-redo))