Dies ähnelt dieser Frage, aber die Antwort dort scheint veraltet zu sein.
Angenommen, ich verwende eine Ebene und möchte den Code eines bestimmten Pakets hacken, das diese Ebene verwendet. Wie gehe ich vor?
Um besser zu veranschaulichen, was ich im Allgemeinen erreichen möchte, präsentiere ich ein konkretes Beispiel.
Ich versuche, die spotify
Ebene zum Laufen zu bringen , aber der aktuelle master
Zweig im helm-spotify
Paket verwendet eine veraltete Web-API. Es gibt eine Pull-Anfrage , um dies zu beheben, und ich möchte es versuchen und vielleicht etwas beitragen. Mein Problem ist, dass ich die lokale Kopie nicht helm-spotify
zum Laden bekommen kann.
Ich habe versucht, in den develop
Zweig von spacemacs
:
git branch --track develop origin/develop
git checkout develop
Im ~/.emacs.d/layers/spotify/packages.el
Ich habe mich verändert von
(setq spotify-packages '(spotify helm-spotify))
Zu
(setq spotify-packages
'(
spotify
(helm-spotify :location local)
))
Und zog das helm-spotify
Repository zu~/.emacs.d/layers/spotify/local/helm-spotify
Wenn ich Spacemacs neu starte, bekomme ich
File error: Cannot open load file, no such file or directory, multi
Wenn ich hineinschaue, helm-spotify.el
gibt es:
(require 'multi)
Meine Vermutung ist also, dass bei der Installation helm-spotify
aus melpa
der Abhängigkeit von multi
vor dem Laden aufgelöst wird, helm-spotify
aber natürlich nicht mehr, wenn ich eine lokale Kopie von verwende helm-spotify
.
Meine Fragen sind also :
- Wie können Abhängigkeiten bei Verwendung eines lokalen Pakets aufgelöst werden?
- Oder sollte ich das ganz anders machen als ich es beschrieben habe?
Ich habe auch versucht, ohne Erfolg, hinzufügen multi
zu dotspacemacs-additional-packages
und zu 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))))
in packages.el
. Auch versucht ohne Zugabe multi
zu dotspacemacs-additional-packages
.
recipe
stattdessen anstelle von verwenden local
. zB(helm-spotify :location (recipe <recipe specs>))
multi
, dotspacemacs-additional-packages
ohne Erfolg. Der Fehler ist der gleiche. Ich habe meine Frage aktualisiert, um die von packages.el
mir verwendete Frage wiederzugeben . Danke für deinen Einsatz!
recipe
anstelle von zu verwenden local
(es sollte die Mehrfachabhängigkeit für Sie berücksichtigen), oder die multi
Konfiguration auf eine separate Ebene verschieben und diese Ebene sicherstellen ist zuvor spotify
in dotspacemacs-configuration-layers
(der
package.el
(das integrierte Emacs-Modul) nicht wirklichlocal/helm-spotify
als Paket angezeigt wird. Die Lösung erfolgt manuell, und Sie befinden sich in der richtigen Richtung. Können Sie näher erläutern, wie Sie versucht haben, etwas hinzuzufügenmulti
? Es ist nicht klar, ob Sie es zuadditional-packages
undspotify-packages
gleichzeitig hinzugefügt oder separat ausprobiert haben. Nachdemmulti
inspotify-packages
und einespotify/init-multi
Funktion inpackages.el
(ohne Verwendungadditional-packages
) sollte ausreichen