Está claro que no todos los paquetes locales / personalizados / personales deberían lanzarse oficialmente, y sería una tontería hacerlo solo para beneficiarse del soporte de administración de paquetes incorporado. Me pregunto cómo generar y activar cargas automáticas para paquetes locales. Eso es similar a cómo package.el
funciona para los paquetes instalados de ELPA. Para evitar reinventar la rueda, ¿hay alguna forma de que "pretenda" que algún directorio local (con subdirectorios cada uno de los cuales es un paquete local / personalizado / personal) es ELPA? También estoy abierto a el-get
si tal escenario puede ser soportado a través de, por ejemplo, recetas personalizadas.
Estoy seguro de que la tarea es bastante común y cualquiera que use Emacs en el nivel avanzado llega a ese punto tarde o temprano. ¿Alguien podría compartir sus experiencias en este campo?
fuente
update-directory-autoloads
se puede usar independientemente de cualquier administrador de paquetes.update-directory-autoloads
para, en efecto, hacerlo recursivo. 2. Puede usarupdate-file-autoloads
para cada archivo que le interese, independientemente del directorio en el que se encuentre.package.el
tampoco es recursivo (es decir, no admite paquetes con fuentes en subdirectorios).Respuestas:
La solución correcta (IMO) es usar un administrador de paquetes que tenga soporte explícito para este caso de uso. Esto sería
straight.el
, lo que escribí para este propósito.Puede leer documentación detallada, incluidas las comparaciones con otros gestores de paquetes, en el archivo README , por lo que me limitaré a cómo puede utilizarlo
straight.el
para resolver su problema específico.~/.emacs.d/straight/repos/<my-repo>
.Cárgalo usando
Ya terminaste Cada vez que realice cambios en el código fuente, la generación de carga automática y la compilación de bytes se rehacerán (en el próximo inicio de Emacs). También obtienes cosas como gestión de dependencias, automatización de control de versiones opcional, etc. gratis.
straight.el
conuse-package
si lo prefiere (en su mayor parte es solo azúcar de sintaxis).fuente
Hago lo siguiente en Linux:
Configuré un repositorio local de melpa clonando melpa.
Modifico las recetas que quiero señalar a mis paquetes locales. Lo siguiente es
local-melpa/recipies/ace-window
Luego, desde el tipo local-mepla
make all
omake recipies/ace-window
para compilar los paquetes enlocal-melpa/packages
Luego
make packages/archive-contents
, que llena la lista de paquetes.Luego en uso para seguir para decirle a emacs que use mi melpa local
No he descubierto cómo ejecutar
make
en Windows. Pero puedo construir los paquetes enlocal-melpa
Linux y copiarlos en Windows y emacs entiende e instala los paquetes correctamente.El beneficio de esto es que puedo restablecer en cualquier momento que desee eliminando mi
~/.emacs.d/elpa/*
directorio e instalando cualquier actualización personalizada en cualquier paquete.fuente
Si ha reemplazado un paquete ya instalado con una versión diferente, y todo lo que falta es el archivo de carga automática, puede usar package-generate-autoloads para generarlo:
Encontré más fácil que usar update-directory-autotools cuando necesito degradar un paquete a una versión anterior.
De hecho, creo que realmente no he respondido tu pregunta. Dejaré esta respuesta aquí por el momento, pero mi respuesta es más relevante aquí: /programming/26348561/how-to-generate-autoloads-for-elpa-packages/50100170
fuente