Está claro que nem todos os pacotes locais / personalizados / pessoais devem ser lançados oficialmente, e seria tolo fazê-lo apenas para se beneficiar do suporte integrado ao gerenciamento de pacotes. Gostaria de saber como gerar e ativar carregamentos automáticos para pacotes locais? Isso é semelhante a como package.el
ocorre nos pacotes instalados do ELPA. Para evitar reinventar a roda, existe uma maneira de "fingir" que algum diretório local (com subdiretórios cada um dos quais é um pacote local / personalizado / pessoal) é ELPA? Também estou aberto a el-get
saber se esse cenário pode ser suportado por, por exemplo, receitas personalizadas.
Tenho certeza de que a tarefa é bastante comum e quem usa o Emacs em nível avançado chega a esse ponto mais cedo ou mais tarde. Alguém poderia compartilhar suas experiências neste campo?
fonte
update-directory-autoloads
pode ser usado independentemente de qualquer gerenciador de pacotes.update-directory-autoloads
, com efeito, torná-lo recursivo. 2. Você pode usarupdate-file-autoloads
para todos os arquivos em que estiver interessado, independentemente de qual diretório ele esteja. #package.el
também não é recursivo (ou seja, não suporta pacotes com fontes em subdiretórios).Respostas:
A solução correta (IMO) é usar um gerenciador de pacotes que tenha suporte explícito para esse caso de uso. Isso seria o
straight.el
que escrevi para esse fim.Você pode ler detalhada documentação, incluindo comparações com outros gerenciadores de pacotes, no README , então eu vou ficar com como você pode usar
straight.el
para resolver o seu problema específico.~/.emacs.d/straight/repos/<my-repo>
.Carregue usando
Você Terminou. Sempre que você fizer alterações no código fonte, a geração de carregamento automático e a compilação de bytes serão refeitas (na próxima inicialização do Emacs). Você também obtém itens como gerenciamento de dependência, automação opcional de controle de versão, etc. gratuitamente.
straight.el
comuse-package
se preferir (é apenas açúcar de sintaxe na maior parte).fonte
Eu faço o seguinte no Linux:
Eu configurei um repositório melpa local clonando melpa.
Modifico as receitas que desejo apontar para meus pacotes locais. A seguir
local-melpa/recipies/ace-window
Em seguida, do tipo local-mepla
make all
oumake recipies/ace-window
para criar o (s) pacote (s) emlocal-melpa/packages
Então
make packages/archive-contents
, que preenche a lista de pacotes.Em seguida, use o seguinte para dizer ao emacs para usar o meu melpa local
Eu não descobri como executar
make
no Windows. Mas eu posso compilar os pacotes nolocal-melpa
Linux e copiá-los para o windows e o emacs entende e instala os pacotes corretamente.A vantagem disso é que eu posso redefinir a qualquer momento, excluindo meu
~/.emacs.d/elpa/*
diretório e instalando atualizações personalizadas em qualquer pacote.fonte
Se você substituiu um pacote já instalado por uma versão diferente e tudo o que está faltando é o arquivo de carregamento automático, você pode usar o pacote-generate-autoloads para gerá-lo:
Achei mais fácil usar o update-directory-autotools quando preciso fazer o downgrade de um pacote para uma versão anterior.
Na verdade, acho que realmente não respondi sua pergunta. Deixarei esta resposta aqui por enquanto, mas minha resposta é mais relevante aqui: /programming/26348561/how-to-generate-autoloads-for-elpa-packages/50100170
fonte