doomemacs/modules/ui/ophints/config.el
Henrik Lissner 3431ddd44c
refactor!(ophints): replace volatile-highlights w/ goggles
BREAKING CHANGE: This replaces volatile-highlights.el with goggles.el,
since the former is no longer maintained and the latter is a much
simpler implementation for the same functionality. No adjustments are
needed for end-users to adopt this change, unless they have
volatile-highlights-specific configuration.

Ref: https://github.com/orgs/doomemacs/projects/5/views/9?pane=issue&itemId=326184
Close: #7810
Co-authored-by: Dev380 <Dev380@users.noreply.github.com>
2024-06-23 15:56:18 -04:00

73 lines
3.2 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
(pushnew! evil-goggles--commands
'(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)
(pushnew! evil-goggles--commands
'(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))))
(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))