Add placement checks for package macros
Doom should complain if these macros are found anywhere they're not supposed to be.
This commit is contained in:
parent
88082c0dc9
commit
e3841c4460
1 changed files with 14 additions and 0 deletions
|
@ -525,6 +525,16 @@ omitted. eg. (featurep! +flag1)"
|
||||||
;; Module package macros
|
;; Module package macros
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
(defun doom--assert-file-p (file-name macro)
|
||||||
|
(cl-assert (string= (file-name-nondirectory load-file-name) file-name)
|
||||||
|
nil
|
||||||
|
"Found %s call in non-%s file (%s)"
|
||||||
|
macro
|
||||||
|
file-name
|
||||||
|
(if (file-in-directory-p load-file-name doom-emacs-dir)
|
||||||
|
(file-relative-name load-file-name doom-emacs-dir)
|
||||||
|
(abbreviate-file-name load-file-name))))
|
||||||
|
|
||||||
(defmacro package! (name &rest plist)
|
(defmacro package! (name &rest plist)
|
||||||
"Declares a package and how to install it (if applicable).
|
"Declares a package and how to install it (if applicable).
|
||||||
|
|
||||||
|
@ -550,6 +560,7 @@ Accepts the following properties:
|
||||||
:freeze FORM
|
:freeze FORM
|
||||||
Do not update this package if FORM is non-nil."
|
Do not update this package if FORM is non-nil."
|
||||||
(declare (indent defun))
|
(declare (indent defun))
|
||||||
|
(doom--assert-file-p "packages.el" #'package!)
|
||||||
(cond ((memq name doom-disabled-packages) nil)
|
(cond ((memq name doom-disabled-packages) nil)
|
||||||
((let ((disable (plist-get plist :disable)))
|
((let ((disable (plist-get plist :disable)))
|
||||||
(and disable (eval disable)))
|
(and disable (eval disable)))
|
||||||
|
@ -580,6 +591,7 @@ Accepts the following properties:
|
||||||
packages at once.
|
packages at once.
|
||||||
|
|
||||||
Only use this macro in a module's packages.el file."
|
Only use this macro in a module's packages.el file."
|
||||||
|
(doom--assert-file-p "packages.el" #'packages!)
|
||||||
`(progn ,@(cl-loop for desc in packages collect `(package! ,@desc))))
|
`(progn ,@(cl-loop for desc in packages collect `(package! ,@desc))))
|
||||||
|
|
||||||
(defmacro disable-packages! (&rest packages)
|
(defmacro disable-packages! (&rest packages)
|
||||||
|
@ -587,6 +599,7 @@ Only use this macro in a module's packages.el file."
|
||||||
packages at once.
|
packages at once.
|
||||||
|
|
||||||
Only use this macro in a module's packages.el file."
|
Only use this macro in a module's packages.el file."
|
||||||
|
(doom--assert-file-p "packages.el" #'disable-packages!)
|
||||||
`(setq doom-disabled-packages (append ',packages doom-disabled-packages)))
|
`(setq doom-disabled-packages (append ',packages doom-disabled-packages)))
|
||||||
|
|
||||||
(defmacro depends-on! (module submodule &optional flags)
|
(defmacro depends-on! (module submodule &optional flags)
|
||||||
|
@ -596,6 +609,7 @@ Only use this macro in a module's packages.el file.
|
||||||
|
|
||||||
MODULE is a keyword, and SUBMODULE is a symbol. Under the hood, this simply
|
MODULE is a keyword, and SUBMODULE is a symbol. Under the hood, this simply
|
||||||
loads MODULE SUBMODULE's packages.el file."
|
loads MODULE SUBMODULE's packages.el file."
|
||||||
|
(doom--assert-file-p "packages.el" #'depends-on!)
|
||||||
`(let ((doom-modules ,doom-modules)
|
`(let ((doom-modules ,doom-modules)
|
||||||
(flags ,flags))
|
(flags ,flags))
|
||||||
(when flags
|
(when flags
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue