diff options
| author | TCCQ <thomasmulmer02@gmail.com> | 2025-08-10 19:17:38 -0700 |
|---|---|---|
| committer | TCCQ <thomasmulmer02@gmail.com> | 2025-08-15 11:07:51 -0700 |
| commit | c104fbdd9a7d9ba3a4f55a114c2ba45c62eef11b (patch) | |
| tree | ad574ce218226351632b666a4644d0648ad594ba /emacs | |
| parent | 6e20368b93d57efaa5aab7901ae436ddaccd156a (diff) | |
fix yank indent to treat parent modes right
Diffstat (limited to 'emacs')
| -rw-r--r-- | emacs/init.el | 10 |
1 files 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)) |
