core: inline recipe in package list
It is now possible to override the recipe in a custom layer. For instance to override the recipe R for package P in layer L In a private layer L' put at the end of dotspacemacs-configuration-layers and listing P with an init function for P, L' becomes the ower of P and the recipe R' defined in L' overrides the recipe R.
This commit is contained in:
parent
0d6b2f301c
commit
437a819ea1
|
@ -18,16 +18,13 @@
|
||||||
ggtags
|
ggtags
|
||||||
helm-gtags
|
helm-gtags
|
||||||
php-auto-yasnippets
|
php-auto-yasnippets
|
||||||
(php-extras :location recipe)
|
(php-extras :location (recipe :fetcher github :repo "arnested/php-extras"))
|
||||||
php-mode
|
php-mode
|
||||||
phpcbf
|
phpcbf
|
||||||
phpunit
|
phpunit
|
||||||
flycheck
|
flycheck
|
||||||
))
|
))
|
||||||
|
|
||||||
(setq php-package-recipes
|
|
||||||
'((php-extras :fetcher github :repo "arnested/php-extras")))
|
|
||||||
|
|
||||||
(defun php/init-drupal-mode ()
|
(defun php/init-drupal-mode ()
|
||||||
(use-package drupal-mode
|
(use-package drupal-mode
|
||||||
:defer t))
|
:defer t))
|
||||||
|
|
|
@ -97,7 +97,9 @@
|
||||||
:documentation "Layers with a post-init function.")
|
:documentation "Layers with a post-init function.")
|
||||||
(location :initarg :location
|
(location :initarg :location
|
||||||
:initform elpa
|
:initform elpa
|
||||||
:type (satisfies (lambda (x) (member x '(local elpa recipe))))
|
:type (satisfies (lambda (x)
|
||||||
|
(or (member x '(local elpa))
|
||||||
|
(and (listp x) (eq 'recipe (car x))))))
|
||||||
:documentation "Location of the package.")
|
:documentation "Location of the package.")
|
||||||
(step :initarg :step
|
(step :initarg :step
|
||||||
:initform nil
|
:initform nil
|
||||||
|
@ -567,7 +569,7 @@ LAYERS is a list of layer symbols."
|
||||||
(cond
|
(cond
|
||||||
((eq 'elpa location)
|
((eq 'elpa location)
|
||||||
(configuration-layer//install-from-elpa pkg))
|
(configuration-layer//install-from-elpa pkg))
|
||||||
((eq 'recipe location)
|
((and (listp location) (eq 'recipe (car location)))
|
||||||
(configuration-layer//install-from-recipe pkg))
|
(configuration-layer//install-from-recipe pkg))
|
||||||
(t (spacemacs-buffer/warning
|
(t (spacemacs-buffer/warning
|
||||||
"Unknown location %S for package %S." location pkg-name)))
|
"Unknown location %S for package %S." location pkg-name)))
|
||||||
|
@ -596,9 +598,7 @@ LAYERS is a list of layer symbols."
|
||||||
"Install PKG from a recipe."
|
"Install PKG from a recipe."
|
||||||
(let* ((pgk-name (oref pkg :name))
|
(let* ((pgk-name (oref pkg :name))
|
||||||
(layer (oref pkg :owner))
|
(layer (oref pkg :owner))
|
||||||
(recipes-var (intern (format "%S-package-recipes" layer)))
|
(recipe (cons pkg-name (cdr (oref pkg :location)))))
|
||||||
(recipe (when (boundp recipes-var)
|
|
||||||
(assq pkg-name (symbol-value recipes-var)))))
|
|
||||||
(if recipe
|
(if recipe
|
||||||
(quelpa recipe)
|
(quelpa recipe)
|
||||||
(spacemacs-buffer/warning
|
(spacemacs-buffer/warning
|
||||||
|
|
|
@ -185,7 +185,7 @@
|
||||||
(let* ((layer1 (cfgl-layer "layer1" :name 'layer1 :dir "/path"))
|
(let* ((layer1 (cfgl-layer "layer1" :name 'layer1 :dir "/path"))
|
||||||
(layers (list layer1))
|
(layers (list layer1))
|
||||||
(layer1-packages '((pkg1 :location elpa :excluded t)
|
(layer1-packages '((pkg1 :location elpa :excluded t)
|
||||||
(pkg2 :location recipe)
|
(pkg2 :location (recipe blahblah))
|
||||||
(pkg3 :location local :step pre)))
|
(pkg3 :location local :step pre)))
|
||||||
(mocker-mock-default-record-cls 'mocker-stub-record))
|
(mocker-mock-default-record-cls 'mocker-stub-record))
|
||||||
(defun layer1/init-pkg1 nil)
|
(defun layer1/init-pkg1 nil)
|
||||||
|
@ -196,7 +196,7 @@
|
||||||
(:output nil :occur 1)))
|
(:output nil :occur 1)))
|
||||||
(configuration-layer/layer-usedp (l) ((:output t :occur 1))))
|
(configuration-layer/layer-usedp (l) ((:output t :occur 1))))
|
||||||
(should (equal (list (cfgl-package "pkg3" :name 'pkg3 :owner 'layer1 :location 'local :step 'pre)
|
(should (equal (list (cfgl-package "pkg3" :name 'pkg3 :owner 'layer1 :location 'local :step 'pre)
|
||||||
(cfgl-package "pkg2" :name 'pkg2 :owner 'layer1 :location 'recipe)
|
(cfgl-package "pkg2" :name 'pkg2 :owner 'layer1 :location '(recipe blahblah))
|
||||||
(cfgl-package "pkg1" :name 'pkg1 :owner 'layer1 :excluded t))
|
(cfgl-package "pkg1" :name 'pkg1 :owner 'layer1 :excluded t))
|
||||||
(configuration-layer/get-packages layers))))))
|
(configuration-layer/get-packages layers))))))
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@
|
||||||
(let* ((layer1 (cfgl-layer "layer1" :name 'layer1 :dir "/path"))
|
(let* ((layer1 (cfgl-layer "layer1" :name 'layer1 :dir "/path"))
|
||||||
(layers (list layer1))
|
(layers (list layer1))
|
||||||
(layer1-packages '(pkg1
|
(layer1-packages '(pkg1
|
||||||
(pkg2 :location recipe)
|
(pkg2 :location (recipe blahblah))
|
||||||
(pkg3 :location local :step pre)
|
(pkg3 :location local :step pre)
|
||||||
pkg4))
|
pkg4))
|
||||||
(mocker-mock-default-record-cls 'mocker-stub-record))
|
(mocker-mock-default-record-cls 'mocker-stub-record))
|
||||||
|
@ -218,7 +218,7 @@
|
||||||
(configuration-layer/layer-usedp (l) ((:output t :occur 1))))
|
(configuration-layer/layer-usedp (l) ((:output t :occur 1))))
|
||||||
(should (equal (list (cfgl-package "pkg4" :name 'pkg4 :owner 'layer1)
|
(should (equal (list (cfgl-package "pkg4" :name 'pkg4 :owner 'layer1)
|
||||||
(cfgl-package "pkg3" :name 'pkg3 :owner 'layer1 :location 'local :step 'pre)
|
(cfgl-package "pkg3" :name 'pkg3 :owner 'layer1 :location 'local :step 'pre)
|
||||||
(cfgl-package "pkg2" :name 'pkg2 :owner 'layer1 :location 'recipe)
|
(cfgl-package "pkg2" :name 'pkg2 :owner 'layer1 :location '(recipe blahblah))
|
||||||
(cfgl-package "pkg1" :name 'pkg1 :owner 'layer1))
|
(cfgl-package "pkg1" :name 'pkg1 :owner 'layer1))
|
||||||
(configuration-layer/get-packages layers))))))
|
(configuration-layer/get-packages layers))))))
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
evil-escape
|
evil-escape
|
||||||
evil-exchange
|
evil-exchange
|
||||||
evil-iedit-state
|
evil-iedit-state
|
||||||
(evil-indent-textobject :location recipe)
|
(evil-indent-textobject :location (recipe :fetcher github :repo "TheBB/evil-indent-textobject"))
|
||||||
evil-jumper
|
evil-jumper
|
||||||
evil-leader
|
evil-leader
|
||||||
evil-lisp-state
|
evil-lisp-state
|
||||||
|
@ -125,9 +125,6 @@
|
||||||
(push '(paradox :location local) spacemacs-packages)
|
(push '(paradox :location local) spacemacs-packages)
|
||||||
(push 'paradox spacemacs-packages))
|
(push 'paradox spacemacs-packages))
|
||||||
|
|
||||||
(setq spacemacs-package-recipes
|
|
||||||
'((evil-indent-textobject :fetcher github :repo "TheBB/evil-indent-textobject")))
|
|
||||||
|
|
||||||
;; Initialization of packages
|
;; Initialization of packages
|
||||||
|
|
||||||
(defun spacemacs/init-ace-link ()
|
(defun spacemacs/init-ace-link ()
|
||||||
|
|
Loading…
Reference in New Issue