Какой лучший способ использовать локальные пакеты в spacemacs?

18

Я разработчик пакета (ycmd), используемого spacemacs, и я хотел бы также попробовать использовать spacemacs. Я бы хотел, чтобы spacemacs использовал «версию для разработки» моего пакета, то есть ту, которую я взломал локально. Каков наилучший / правильный способ сказать spacemacs использовать эту версию пакета, а не ту из melpa?

Прямо сейчас я использую :load-pathаргумент use-package, но это, кажется, идет вразрез с зерном. Позволяет ли spacemacs указать каталог загрузки для определенных пакетов в конфигурации слоя где-нибудь?

abingham
источник

Ответы:

14

extensions.elВместо packages.el. Ставятся локальные пакеты . В extensions.elфайле есть два списка :

  • <layer>-pre-extensions которые загружаются раньше packages.el
  • <layer>-post-extensions которые загружаются после packages.el

Локальные пакеты помещаются в папку extensionsв подпапке, имя которой является именем, которое вы указали в одном из двух списков. load-pathПеременная обрабатывается автоматически.

Вы можете посмотреть на некоторые примеры в pythonслое.

syl20bnr
источник
Отлично, спасибо! Я полагал, что есть канонический путь, но я не соединял все точки.
Абингхам
Я отредактировал ответ, упомянув load-pathпеременную, которая устанавливается автоматически.
syl20bnr
@ syl20bnr Вам также нужно добавить пакет в `<layer> -excluded-packages, если вы работаете над пакетом, уже использованным в другом месте?
mkaito
5
extensions.el устарела в пользу локальных пакетов. См. Github.com/syl20bnr/spacemacs/blob/develop/doc/…
Тони день
@tonyday действительно, pythonслой, который @ syl20bnr упоминает в этом ответе, теперь также следует этим рекомендациям, которые приводили меня в замешательство, пока я не увидел ваш комментарий :)
Майк