Add :when support to after!

This lets you delay a body of code until an arbitrary condition is
met (which is checked whenever a file is loaded).

Also refactors set-file-template! to wait until +file-templates-alist is
defined.
This commit is contained in:
Henrik Lissner 2018-06-15 03:03:32 +02:00
parent d8b1e469bc
commit 2496e0348d
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 18 additions and 3 deletions

View file

@ -22,12 +22,14 @@ these properties:
:ignore BOOL
If non-nil, don't expand any template for this file and don't test any other
file template rule against this buffer."
`(push (list ,pred ,@plist) +file-templates-alist))
(after! (:when (boundp '+file-templates-alist))
(push `(,pred ,@plist) +file-templates-alist)))
;;;###autodef
(defun set-file-templates! (&rest templates)
"Like `doom--set:file-template', but register many file templates at once."
`(setq +file-templates-alist (append (list ,@templates) +file-templates-alist)))
(after! (:when (boundp '+file-templates-alist))
(setq +file-templates-alist (append (list templates) +file-templates-alist))))
;; FIXME obsolete :file-template
;;;###autoload