Was ist der beste Weg, um lokale Pakete in Spacemacs zu verwenden?

18

Ich bin Entwickler für ein Paket (ycmd), das von Spacemacs verwendet wird, und ich möchte auch versuchen, Spacemacs zu verwenden. Ich möchte, dass Spacemacs die "Entwicklungsversion" meines Pakets verwenden, dh diejenige, auf die ich lokal hacke. Was ist die beste / richtige Methode, um Spacemacs anzuweisen, diese Version des Pakets zu verwenden, anstatt die von Melpa?

Im Moment benutze ich das :load-pathArgument use-package, aber das scheint ein bisschen gegen den Strich zu gehen. Kann ich mit Spacemacs irgendwo ein Ladeverzeichnis für bestimmte Pakete in der Layerkonfiguration angeben?

abingham
quelle

Antworten:

14

Lokale Pakete werden extensions.elanstelle von eingefügt packages.el. In einer extensions.elDatei befinden sich zwei Listen :

  • <layer>-pre-extensions die vorher geladen werden packages.el
  • <layer>-post-extensions welche nach geladen werden packages.el

Lokale Pakete werden in den Ordner extensionseines Unterordners gestellt, dessen Name der Name ist, den Sie in eine der beiden Listen eingetragen haben. Die load-pathVariable wird automatisch behandelt.

Sie können sich einige Beispiele in der pythonEbene ansehen .

syl20bnr
quelle
Großartig, danke! Ich dachte, es gäbe einen kanonischen Weg, aber ich verbinde nicht alle Punkte.
Abingham
Ich habe die Antwort bearbeitet, um die load-pathVariable zu erwähnen , die automatisch gesetzt wird.
Syl20bnr
@ syl20bnr Müssen Sie das Paket auch zu <layer> -excluded-packages hinzufügen, wenn Sie an einem Paket arbeiten, das bereits an einem anderen Ort verwendet wird?
Mkaito
5
extensions.el wird zugunsten lokaler Pakete abgelehnt. Siehe github.com/syl20bnr/spacemacs/blob/develop/doc/…
Tony Day
Tatsächlich pythonfolgt die Ebene, die @ syl20bnr in dieser Antwort erwähnt, jetzt auch diesen Richtlinien, die mich verwirrt haben, bis ich Ihren Kommentar sah :)
Mike