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))
(dolist (mode (doom-enlist modes))
(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))
(remove-hook hook fn)
(unintern fn nil))
((fset fn
(lambda ()
(when (eq major-mode mode)
(setq-local electric-indent-inhibit nil)
(cl-destructuring-bind (&key chars words) plist
(electric-indent-local-mode +1)
(if chars (setq electric-indent-chars chars))
(if words (setq +electric-indent-words words))))))
((fset
fn (lambda ()
(when (eq major-mode mode)
(setq-local electric-indent-inhibit nil)
(cl-destructuring-bind (&key chars words) plist
(electric-indent-local-mode +1)
(if chars (setq-local electric-indent-chars chars))
(if words (setq +electric-indent-words words))))))
(add-hook hook fn))))))