From c104fbdd9a7d9ba3a4f55a114c2ba45c62eef11b Mon Sep 17 00:00:00 2001 From: TCCQ Date: Sun, 10 Aug 2025 19:17:38 -0700 Subject: fix yank indent to treat parent modes right --- emacs/init.el | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/emacs/init.el b/emacs/init.el index 4feecf8..a858583 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -839,13 +839,15 @@ changes." (erc-track-priority-faces-only 'all)) (progn ; indent code when pasting - (defvar yank-indent-modes (mapcan 'derived-mode-all-parents - '(prog-mode LaTeX-mode TeX-mode)) + (defvar yank-indent-modes '(prog-mode LaTeX-mode TeX-mode) "Modes in which to indent regions that are yanked (or yank-popped).") (defun yank-indent-func (&optional arg) - (when (and (not arg) (member major-mode yank-indent-modes)) - (indent-region (region-beginning) (region-end)))) + (let* ((parents (derived-mode-all-parents major-mode)) + (helper (lambda (acc v) (or acc (member v yank-indent-modes)))) + (included (-reduce helper parents))) + (when (and (not arg) included) + (indent-region (region-beginning) (region-end))))) (advice-add 'yank :after 'yank-indent-func) (advice-add 'yank-pop :after 'yank-indent-func)) -- cgit v1.2.3