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?

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.