Suivant: , Précédent: , Monter: Contribuer   [Table des matières][Index]


14.3 La configuration parfaite

The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (voir Using Guile in Emacs dans Guile Reference Manual). First, you need more than an editor, you need Emacs, empowered by the wonderful Geiser. To set that up, run:

guix package -i emacs guile emacs-geiser

Geiser permet le développement interactif et incrémental depuis Emacs : la compilation du code et son évaluation depuis les buffers, l’accès à la documentation en ligne (docstrings), la complétion sensible au contexte, M-. pour sauter à la définition d’un objet, un REPL pour tester votre code, et bien plus (voir Introduction dans Geiser User Manual). Pour travailler confortablement sur Guix, assurez-vous de modifier le chemin de chargement de Guile pour qu’il trouve les fichiers source de votre dépôt :

;; Si l’extrait est dans ~/src/guix.
(with-eval-after-load 'geiser-guile
  (add-to-list 'geiser-guile-load-path "~/src/guix"))

To actually edit the code, Emacs already has a neat Scheme mode. But in addition to that, you must not miss Paredit. It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc.

We also provide templates for common git commit messages and package definitions in the etc/snippets directory. These templates can be used with YASnippet to expand short trigger strings to interactive text snippets. You may want to add the snippets directory to the yas-snippet-dirs variable in Emacs.

;; Si l’extrait est dans ~/src/guix.
(with-eval-after-load 'yasnippet
  (add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets"))

Les extraits de messages de commit dépendent de Magit pour afficher les fichiers sélectionnés. Lors de la modification d’un message de commit, tapez add suivi de TAB pour insérer un modèle de message de commit pour ajouter un paquet ; tapez update suivi de TAB pour insérer un modèle pour la mise à jour d’un paquet ; tapez https suivi de TAB pour insérer un modèle pour le changement à HTTPS de l’URI de la page d’accueil.

L’extrait principal pour scheme-mode est lancé en tapant package… suivi par TAB. Cet extrait insère aussi la chaîne de déclenchement origin…, qui peut aussi être étendue. L’extrait origin lui-même peut aussi insérer des chaînes de déclenchement qui finissent sur , qui peuvent aussi être étendues.

Additionaly we provide insertion and automatic update of a copyright in etc/copyright.el. You may want to set your full name, mail, and load a file.

(setq user-full-name "Alice Doe")
(setq user-mail-address "alice@mail.org")
;; Assuming the Guix checkout is in ~/src/guix.
(load-file "~/src/guix/etc/copyright.el")

To insert a copyright at the current line invoke M-x guix-copyright.

To update a copyright you need to specify a copyright-names-regexp.

(setq copyright-names-regexp
      (format "%s <%s>" user-full-name user-mail-address))

You can check if your copyright is up to date by evaluating M-x copyright-update. If you want to do it automatically after each buffer save then add (add-hook 'after-save-hook 'copyright-update) in Emacs.


Suivant: , Précédent: , Monter: Contribuer   [Table des matières][Index]