Suivant: Consignes d’empaquetage, Précédent: Lancer Guix avant qu’il ne soit installé, Monter: Contribuer [Table des matières][Index]
La configuration parfaite pour travailler sur Guix est simplement la configuration parfaite pour travailler en Guile (voir Using Guile in Emacs dans Guile Reference Manual). Tout d’abord, vous avez besoin de mieux qu’un éditeur de texte, vous avez besoin de Emacs, amélioré par le superbe Geiser. Pour paramétrer cela, lancez :
guix install emacs guile emacs-geiser emacs-geiser-guile
Geiser permet le développement interactif et incrémental depuis Emacs : la compilation du code et son évaluation depuis les tampons, 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"))
Pour effectivement éditer le code, Emacs a déjà un très bon mode Scheme. Mais en plus de ça, vous ne devez pas rater Paredit. Il fournit des fonctionnalités pour opérer directement sur l’arbre de syntaxe, comme relever une s-expression ou l’envelopper, absorber ou rejeter la s-expression suivante, etc.
Nous fournissons aussi des modèles pour les messages de commit git courants et les définitions de paquets dans le répertoire etc/snippets. Ces modèles s’utilisent pour étendre de courtes phrases d’amorce en des bouts de texte interactifs. Si vous utilisez YASnippet, vous voudrez peut-être ajouter le répertoire des modèles, etc/snippets/yas, dans la variable d’environnement yas-snippet-dirs. Si vous utilisez Tempel, vous voudrez peut-être ajouter le chemin etc/snippets/tempel/* dans la variable tempel-path d’Emacs.
;; En supposant que le dépôt git de Guix est dans ~/src/guix. ;; Configuration Yasnippet (with-eval-after-load 'yasnippet (add-to-list 'yas-snippet-dirs "~/src/guix/etc/snippets/yas")) ;; Configuration Tempel (with-eval-after-load 'tempel ;; S'assure que tempel-path est une liste — elle peut aussi être une chaine. (unless (listp 'tempel-path) (setq tempel-path (list tempel-path))) (add-to-list 'tempel-path "~/src/guix/etc/snippets/tempel/*"))
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.
De plus, nous fournissons l’insertion et la mise à jour automatique d’une ligne de copyright dans etc/copyright.el. Vous voudrez sans doute indiquer votre nom complet, adresse de courriel et charger le fichier.
(setq user-full-name "Alice Doe") (setq user-mail-address "alice@mail.org") ;; En supposant que le dépôt Guix est dans ~/src/guix. (load-file "~/src/guix/etc/copyright.el")
Pour insérer une ligne de copyright à la ligne actuelle invoquez M-x
guix-copyright
.
Pour mettre à jour une ligne de copyright vous devez spécifier un
copyright-names-regexp
.
(setq copyright-names-regexp
(format "%s <%s>" user-full-name user-mail-address))
Vous pouvez vérifier si votre ligne de copyright est à jour en évaluant
M-x copyright-update
. Si vous voulez le faire automatiquement après
chaque sauvegarde de tampon ajoutez (add-hook 'after-save-hook
'copyright-update)
dans Emacs.
Suivant: Consignes d’empaquetage, Précédent: Lancer Guix avant qu’il ne soit installé, Monter: Contribuer [Table des matières][Index]