Il est clair que tous les packages locaux / personnalisés / personnels ne devraient pas être officiellement publiés, et il serait stupide de le faire juste pour bénéficier du support de gestion des packages intégré. Je me demande comment générer et activer les chargements automatiques pour les packages locaux? Cela est similaire à la façon dont package.el
cela fonctionne pour les packages installés d'ELPA. Afin d'éviter de réinventer la roue, y a-t-il un moyen de "prétendre" qu'un répertoire local (avec des sous-répertoires dont chacun est un package local / personnalisé / personnel) est ELPA? Je suis également ouvert à savoir el-get
si un tel scénario peut être pris en charge via, par exemple, des recettes personnalisées.
Je suis sûr que la tâche est assez courante et quiconque utilise Emacs à un niveau avancé arrive tôt ou tard à ce point. Quelqu'un pourrait-il partager ses expériences dans ce domaine?
la source
update-directory-autoloads
peut être utilisé indépendamment de tout gestionnaire de paquets.update-directory-autoloads
pour, en fait, le rendre récursif. 2. Vous pouvez utiliserupdate-file-autoloads
pour chaque fichier qui vous intéresse, quel que soit le répertoire dans lequel il se trouve.package.el
est également non récursif (c'est-à-dire qu'il ne prend pas en charge les packages avec des sources dans les sous-répertoires).Réponses:
La solution correcte (IMO) consiste à utiliser un gestionnaire de packages qui prend explicitement en charge ce cas d'utilisation. Ce serait
straight.el
, que j'ai écrit à cet effet.Vous pouvez lire une documentation détaillée, y compris des comparaisons avec d'autres gestionnaires de packages, dans le fichier README , donc je m'en tiendrai à la façon dont vous pouvez utiliser
straight.el
pour résoudre votre problème spécifique.~/.emacs.d/straight/repos/<my-repo>
.Chargez-le en utilisant
Vous avez terminé. Chaque fois que vous apportez des modifications au code source, la génération de chargement automatique et la compilation d'octets seront refaites (au prochain démarrage d'Emacs). Vous bénéficiez également gratuitement de fonctionnalités telles que la gestion des dépendances, l'automatisation du contrôle de version en option, etc.
straight.el
avecuse-package
si vous préférez (c'est juste du sucre de syntaxe pour la plupart).la source
Je fais ce qui suit sur Linux:
J'ai configuré un référentiel melpa local en clonant melpa.
Je modifie les recettes que je veux pointer vers mes packages locaux. Ce qui suit est
local-melpa/recipies/ace-window
Puis à partir du type local-mepla
make all
oumake recipies/ace-window
pour construire le (s) package (s) danslocal-melpa/packages
Ensuite
make packages/archive-contents
, qui remplit la liste des packages.Ensuite, utilisez pour suivre pour dire à emacs d'utiliser mon melpa local
Je n'ai pas compris comment exécuter
make
sur Windows. Mais je peux construire les packages souslocal-melpa
Linux et les copier sur Windows et emacs comprend et installe les packages correctement.L'avantage de ceci est que je peux réinitialiser à tout moment en supprimant mon
~/.emacs.d/elpa/*
répertoire et en installant toutes les mises à jour personnalisées de n'importe quel package.la source
Si vous avez remplacé un package déjà installé par une version différente et qu'il ne vous manque que le fichier de chargement automatique, vous pouvez utiliser package-generate-autoloads pour le générer:
J'ai trouvé plus facile que d'utiliser update-directory-autotools lorsque j'ai besoin de rétrograder un package vers une version antérieure.
En fait, je pense que je n'ai pas vraiment répondu à votre question. Je vais laisser cette réponse ici pour le moment mais ma réponse est plus pertinente ici: /programming/26348561/how-to-generate-autoloads-for-elpa-packages/50100170
la source