Next: Pautas de empaquetamiento, Previous: Ejecución de Guix antes de estar instalado, Up: Contribuir [Contents][Index]
La configuración perfecta para hackear en Guix es básicamente la configuración perfecta para hacerlo en Guile (see Using Guile in Emacs in Guile Reference Manual). Primero, necesita más que un editor, necesita Emacs, con su potencia aumentada gracias al maravilloso Geiser. Para conseguir esta configuración ejecute:
guix install emacs guile emacs-geiser emacs-geiser-guile
Geiser permite desarrollo incremental e interactivo dentro de Emacs: compilación y evaluación de código dentro de los buffers, acceso a documentación en línea (docstrings), completado dependiente del contexto, M-. para saltar a la definición de un objeto, una consola interactiva (REPL) para probar su código, y más (see Introduction in Geiser User Manual). Para desarrollar Guix adecuadamente, asegúrese de aumentar la ruta de carga de Guile (load-path) para que encuentre los archivos fuente de su copia de trabajo:
;; Suponiendo que la copia de trabajo de Guix está en ~/src/guix. (with-eval-after-load 'geiser-guile (add-to-list 'geiser-guile-load-path "~/src/guix"))
Para realmente editar el código, Emacs tiene un modo para Scheme muy limpio. Pero además de eso, no debe perderse Paredit. Provee de facilidades para operar directamente en el árbol sintáctico como elevar una expresión-S o recubrirla, embeber o expulsar la siguiente expresión-S, etc.
We also provide templates for common git commit messages and package definitions in the etc/snippets directory. These templates can be used to expand short trigger strings to interactive text snippets. If you use YASnippet, you may want to add the etc/snippets/yas snippets directory to the yas-snippet-dirs variable. If you use Tempel, you may want to add the etc/snippets/tempel/* path to the tempel-path variable in Emacs.
;; Suponiendo que el checkout de Guix está en ~/src/guix. ;; Configuración de yasnippet (with-eval-after-load 'yasnippet (add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets/yas")) ;; Tempel configuration (con-eval-after-load 'tempel ;; Asegúrese de que tempel-path es una lista -- también puede ser una cadena. (unless (listp 'tempel-path) (setq tempel-path (list tempel-path)) (add-to-list 'tempel-path "~/src/guix/etc/snippets/tempel/*"))
Los fragmentos de mensajes de la revisión dependen de
Magit para mostrar los archivos preparados. En la
edición del mensaje de la revisión teclee add
seguido de TAB
(el tabulador) para insertar la plantilla del mensaje de la revisión de
adición de un paquete; teclee update
seguido de TAB para
insertar una plantilla de actualización de un paquete; teclee https
seguido de TAB para insertar una plantilla para cambiar la URI de la
página de un paquete a HTTPS.
El fragmento principal para scheme-mode
es activado al teclear
package...
seguido de TAB. Este fragmento también inserta el
lanzador origin...
que puede ser expandido de nuevo. El fragmento
origin
puede a su vez insertar otros identificadores de lanzado
terminando en ...
, que pueden ser expandidos de nuevo.
También proporcionamos herramientas para la inserción y actualización automática del copyright en etc/copyright.el. Puede proporcionar su nombre completo, correo electrónico y cargar el archivo.
(setq user-full-name "Alicia Díaz") (setq user-mail-address "alicia@correo.org") ;; Se asume que la copia trabajo de guix está en ~/src/guix. (load-file "~/src/guix/etc/copyright.el")
Para insertar el aviso de copyright en la línea actual invoque M-x
guix-copyright
.
Para actualizar el aviso de copyright debe especificar una expresión regular
de nombres en la variable copyright-names-regexp
.
(setq copyright-names-regexp
(format "%s <%s>" user-full-name user-mail-address))
Puede comprobar si su copyright está actualizado evaluando M-x
copyright-update
. Si desea hacerlo de manera automática tras guardar un
archivo añada (add-hook 'after-save-hook 'copyright-update)
en Emacs.
Next: Pautas de empaquetamiento, Previous: Ejecución de Guix antes de estar instalado, Up: Contribuir [Contents][Index]