summaryrefslogtreecommitdiff
path: root/emacs/init.el
diff options
context:
space:
mode:
authorTCCQ <thomasmulmer02@gmail.com>2025-08-10 19:17:38 -0700
committerTCCQ <thomasmulmer02@gmail.com>2025-08-15 11:07:51 -0700
commitc104fbdd9a7d9ba3a4f55a114c2ba45c62eef11b (patch)
treead574ce218226351632b666a4644d0648ad594ba /emacs/init.el
parent6e20368b93d57efaa5aab7901ae436ddaccd156a (diff)
fix yank indent to treat parent modes right
Diffstat (limited to 'emacs/init.el')
-rw-r--r--emacs/init.el10
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))