Jaki jest najlepszy sposób używania lokalnych pakietów w znakach kosmicznych?

18

Jestem programistą pakietu (ycmd) używanego przez spacemacs i chciałbym również spróbować użyć spacemacs. Chciałbym, aby spacemacs używał „wersji programistycznej” mojego pakietu, tj. Tej, którą hakuję lokalnie. Jaki jest najlepszy / właściwy sposób, aby powiedzieć spacemacsom, aby korzystały z tej wersji pakietu, a nie tej z Melpy?

W tej chwili używam :load-pathargumentu use-package, ale wydaje się, że jest to trochę sprzeczne z rzeczywistością. Czy spacemacs pozwalają mi gdzieś określić katalog ładowania dla określonych pakietów w konfiguracji warstw?

abingham
źródło

Odpowiedzi:

14

Lokalne pakiety są wstawiane extensions.elzamiast packages.el. extensions.elPlik zawiera dwie listy :

  • <layer>-pre-extensions które są ładowane wcześniej packages.el
  • <layer>-post-extensions które są ładowane po packages.el

Pakiety lokalne są umieszczane w folderze extensionsw podfolderze, którego nazwa to nazwa umieszczona na jednej z dwóch list. load-pathZmienna jest obsługiwane automatycznie.

Możesz spojrzeć na kilka przykładów w pythonwarstwie.

syl20bnr
źródło
Wspaniale, dziękuje! Uznałem, że istnieje kanoniczny sposób, ale nie łączyłem wszystkich kropek.
abingham
Zredagowałem odpowiedź, aby wspomnieć o load-pathzmiennej, która jest ustawiana automatycznie.
syl20bnr
@ syl20bnr, czy musisz również dodać pakiet do pakietu `<layer> -excluded-packages, jeśli pracujesz nad pakietem już używanym gdzie indziej?
mkaito
5
extensions.el jest przestarzałe na rzecz lokalnych pakietów. Zobacz github.com/syl20bnr/spacemacs/blob/develop/doc/…
tony
@tonyday rzeczywiście pythonwarstwa, o której wspomina @ syl20bnr w tej odpowiedzi, jest teraz również zgodna z tymi wytycznymi, które wprowadzały mnie w błąd, dopóki nie zobaczyłem twojego komentarza :)
mike