refactor(profiles): simplify profile init file

So that the resulting file expands to less code and doesn't apply too
magic to file paths (it may be unwanted).

And don't try to unintern a lexical binding.
This commit is contained in:
Henrik Lissner 2022-09-17 13:03:27 +02:00
parent 329d65d0d4
commit 750d75a45b
No known key found for this signature in database
GPG key ID: B60957CA074D39A3

View file

@ -168,13 +168,10 @@ is non-nil, refresh the cache."
(pcase (car-safe val) (pcase (car-safe val)
(:path (:path
`(,(if (stringp var) 'setenv 'set) `(,(if (stringp var) 'setenv 'set)
',var ,(if (cddr val) ',var ,(cl-loop with form = `(expand-file-name ,(cadr val) user-emacs-directory)
(macroexpand-all for dir in (cddr val)
`(cl-loop with path = ',(cadr val) do (setq form `(expand-file-name ,dir ,form))
for dir in ',(cddr val) finally return form)))
do (setq path (expand-file-name dir path))
finally return path))
`(file-truename ,(cadr val)))))
(:eval (:eval
(if (eq var '_) (if (eq var '_)
(macroexp-progn (cdr val)) (macroexp-progn (cdr val))
@ -207,12 +204,7 @@ is non-nil, refresh the cache."
`(add-to-list ',var item 'append) `(add-to-list ',var item 'append)
`(setq ',var (append ',var (list item))))))) `(setq ',var (append ',var (list item)))))))
--deferred-vars--))) --deferred-vars--)))
(_ `(,(if (stringp var) 'setenv 'set) (_ `(,(if (stringp var) 'setenv 'set) ',var ',val))))
',var ,(if (and (symbolp var)
(or (eq var 'user-emacs-directory)
(string-match-p "^doom-.+-dir$" (symbol-name var))))
`(file-truename ,var)
''var)))))
,@(when deferred? ,@(when deferred?
`((defun --defer-vars-- (_) `((defun --defer-vars-- (_)
(dolist (var --deferred-vars--) (dolist (var --deferred-vars--)
@ -221,8 +213,7 @@ is non-nil, refresh the cache."
(setq --deferred-vars-- (delete var --deferred-vars--)))) (setq --deferred-vars-- (delete var --deferred-vars--))))
(unless --deferred-vars-- (unless --deferred-vars--
(remove-hook 'after-load-functions #'--defer-vars--) (remove-hook 'after-load-functions #'--defer-vars--)
(unintern '--defer-vars-- obarray) (unintern '--defer-vars-- obarray)))
(unintern '--deferred-vars-- obarray)))
(add-hook 'after-load-functions #'--defer-vars--) (add-hook 'after-load-functions #'--defer-vars--)
(--defer-vars--)))))))) (--defer-vars--))))))))
(lambda () (lambda ()