Refactor set-electric! #4031

This commit is contained in:
Henrik Lissner 2020-10-05 20:52:02 -04:00
parent 81f325f169
commit 7baeb20ac9
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -11,16 +11,16 @@ Enables `electric-indent-local-mode' in MODES.
(declare (indent defun)) (declare (indent defun))
(dolist (mode (doom-enlist modes)) (dolist (mode (doom-enlist modes))
(let ((hook (intern (format "%s-hook" mode))) (let ((hook (intern (format "%s-hook" mode)))
(fn (intern (format "+electric|init-%s" mode)))) (fn (intern (format "+electric--init-%s-h" mode))))
(cond ((null (car-safe plist)) (cond ((null (car-safe plist))
(remove-hook hook fn) (remove-hook hook fn)
(unintern fn nil)) (unintern fn nil))
((fset fn ((fset
(lambda () fn (lambda ()
(when (eq major-mode mode) (when (eq major-mode mode)
(setq-local electric-indent-inhibit nil) (setq-local electric-indent-inhibit nil)
(cl-destructuring-bind (&key chars words) plist (cl-destructuring-bind (&key chars words) plist
(electric-indent-local-mode +1) (electric-indent-local-mode +1)
(if chars (setq electric-indent-chars chars)) (if chars (setq-local electric-indent-chars chars))
(if words (setq +electric-indent-words words)))))) (if words (setq +electric-indent-words words))))))
(add-hook hook fn)))))) (add-hook hook fn))))))