Esto es similar a esta pregunta, pero la respuesta allí parece estar en desuso.
Digamos que estoy usando una capa y quiero hackear el código de un paquete en particular que está usando esa capa. ¿Cómo lo hago?
Para ilustrar mejor lo que quiero lograr en general, presento un ejemplo específico.
Intento que la spotify
capa funcione, pero la master
rama actual del helm-spotify
paquete usa una API web en desuso. Hay una solicitud de extracción para solucionar esto y quiero probarlo y tal vez contribuir con algo. Mi problema es que no puedo obtener la copia local helm-spotify
para cargar.
Lo que intenté fue cambiar a la develop
rama de spacemacs
:
git branch --track develop origin/develop
git checkout develop
En ~/.emacs.d/layers/spotify/packages.el
Cambié de
(setq spotify-packages '(spotify helm-spotify))
A
(setq spotify-packages
'(
spotify
(helm-spotify :location local)
))
Y sacó el helm-spotify
repositorio a~/.emacs.d/layers/spotify/local/helm-spotify
Cuando reinicio los spacemacs me sale
File error: Cannot open load file, no such file or directory, multi
En cuando miro helm-spotify.el
hay:
(require 'multi)
Entonces, supongo que cuando se instala helm-spotify
desde melpa
la dependencia multi
se resuelve antes de cargar, helm-spotify
pero, por supuesto, ya no cuando uso una copia local de helm-spotify
.
Entonces mis preguntas son :
- ¿Cómo se resuelven las dependencias cuando se usa un paquete local?
- ¿O debería hacer esto completamente diferente de lo que describí?
También intenté, sin éxito, para agregar multi
a dotspacemacs-additional-packages
y para spotify-packages
:
(setq spotify-packages '(
multi ;; I added this
spotify
(helm-spotify :location local) ;; I modified here
))
;; I added this
(defun spotify/init-multi ()
(use-package multi))
;; the rest is as it was
(defun spotify/init-spotify ()
(use-package spotify
:config (spacemacs/set-leader-keys
"amsp" 'spotify-playpause
"amsn" 'spotify-next
"amsN" 'spotify-previous
"amsQ" 'spotify-quit)))
(when (configuration-layer/layer-usedp 'spacemacs-helm)
(defun spotify/init-helm-spotify ()
(use-package helm-spotify
:config (spacemacs/set-leader-keys
"amsg" 'helm-spotify))))
en packages.el
. También intentado sin agregar multi
a dotspacemacs-additional-packages
.
recipe
lugar de local
. Por ejemplo(helm-spotify :location (recipe <recipe specs>))
multi
a dotspacemacs-additional-packages
sin éxito. El error es el mismo. Actualicé mi pregunta para reflejar lo packages.el
que estoy usando. ¡Gracias por tu esfuerzo!
recipe
lugar de local
(debería encargarse de la dependencia múltiple para ti) o mover la multi
configuración a una capa separada y asegurarte de que esa capa aparece antes spotify
en dotspacemacs-configuration-layers
(la lista de capas)
package.el
(el módulo Emacs incorporado) realmente no se velocal/helm-spotify
como un paquete. La forma de resolverlo es manualmente, y está en la dirección correcta. ¿Puedes agregar más detalles sobre cómo intentaste agregarmulti
? No está claro si lo agregóadditional-packages
yspotify-packages
al mismo tiempo, o si los probó por separado. Tenermulti
enspotify-packages
y unaspotify/init-multi
función enpackages.el
(sin usaradditional-packages
) debe ser lo suficientemente