mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-06 04:09:37 +00:00
Even when there's no :config, run any pre/post config hooks
i.e., following the existing docs for use-package-inject-hooks, these hooks are run: use-package--foo--pre-config-hook use-package--foo--post-config-hook This should make config customisations more predictable (for example, spacemacs uses these hooks extensively to allow 'layers' to be customised). I got rid of the "special" default value for :config, because it doesn't seem to be treated any differently than nil. Fixes https://github.com/jwiegley/use-package/issues/785 Copyright-paperwork-exempt: yes
This commit is contained in:
parent
91e5d275af
commit
f30d5761af
2 changed files with 32 additions and 3 deletions
|
@ -156,8 +156,7 @@ See also `use-package-defaults', which uses this value."
|
|||
:group 'use-package)
|
||||
|
||||
(defcustom use-package-defaults
|
||||
'(;; this '(t) has special meaning; see `use-package-handler/:config'
|
||||
(:config '(t) t)
|
||||
'((:config nil t)
|
||||
(:init nil t)
|
||||
(:catch t (lambda (name args)
|
||||
(not use-package-expand-minimally)))
|
||||
|
@ -1468,7 +1467,7 @@ no keyword implies `:all'."
|
|||
(use-package-concat
|
||||
(when use-package-compute-statistics
|
||||
`((use-package-statistics-gather :config ',name nil)))
|
||||
(if (or (null arg) (equal arg '(t)))
|
||||
(if (and (null arg) (not use-package-inject-hooks))
|
||||
body
|
||||
(use-package-with-elapsed-timer
|
||||
(format "Configuring package %s" name-symbol)
|
||||
|
|
|
@ -1474,6 +1474,36 @@
|
|||
(config)
|
||||
t))))))
|
||||
|
||||
(ert-deftest use-package-test/pre-post-hooks-with-:config ()
|
||||
(let ((use-package-inject-hooks t))
|
||||
(match-expansion
|
||||
(use-package foo :config (config))
|
||||
`(progn
|
||||
(when
|
||||
(run-hook-with-args-until-failure 'use-package--foo--pre-init-hook)
|
||||
(run-hooks 'use-package--foo--post-init-hook))
|
||||
(require 'foo nil nil)
|
||||
(when
|
||||
(run-hook-with-args-until-failure 'use-package--foo--pre-config-hook)
|
||||
(config)
|
||||
(run-hooks 'use-package--foo--post-config-hook))
|
||||
t))))
|
||||
|
||||
(ert-deftest use-package-test/pre-post-hooks-without-:config ()
|
||||
;; https://github.com/jwiegley/use-package/issues/785
|
||||
(let ((use-package-inject-hooks t))
|
||||
(match-expansion
|
||||
(use-package foo)
|
||||
`(progn
|
||||
(when
|
||||
(run-hook-with-args-until-failure 'use-package--foo--pre-init-hook)
|
||||
(run-hooks 'use-package--foo--post-init-hook))
|
||||
(require 'foo nil nil)
|
||||
(when
|
||||
(run-hook-with-args-until-failure 'use-package--foo--pre-config-hook)
|
||||
(run-hooks 'use-package--foo--post-config-hook))
|
||||
t))))
|
||||
|
||||
(ert-deftest use-package-test-normalize/:diminish ()
|
||||
(should (equal (use-package-normalize-diminish 'foopkg :diminish nil)
|
||||
'(foopkg-mode)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue