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 spotifycapa funcione, pero la masterrama actual del helm-spotifypaquete 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-spotifypara cargar.
Lo que intenté fue cambiar a la developrama 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-spotifyrepositorio 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.elhay:
(require 'multi)
Entonces, supongo que cuando se instala helm-spotifydesde melpala dependencia multise resuelve antes de cargar, helm-spotifypero, 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 multia dotspacemacs-additional-packagesy 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 multia dotspacemacs-additional-packages.
recipelugar de local. Por ejemplo(helm-spotify :location (recipe <recipe specs>))
multia dotspacemacs-additional-packagessin éxito. El error es el mismo. Actualicé mi pregunta para reflejar lo packages.elque estoy usando. ¡Gracias por tu esfuerzo!
recipelugar de local(debería encargarse de la dependencia múltiple para ti) o mover la multiconfiguración a una capa separada y asegurarte de que esa capa aparece antes spotifyen dotspacemacs-configuration-layers(la lista de capas)
package.el(el módulo Emacs incorporado) realmente no se velocal/helm-spotifycomo 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-packagesyspotify-packagesal mismo tiempo, o si los probó por separado. Tenermultienspotify-packagesy unaspotify/init-multifunción enpackages.el(sin usaradditional-packages) debe ser lo suficientemente