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


16.3 La configuration parfaite

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 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"))

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 avec YASnippet pour développer de courtes chaînes de déclenchement en extraits de texte interactifs. Vous pouvez ajouter le répertoire des modèles dans la variables yas-snippet-dirs d’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.

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: , Précédent: , Monter: Contribuer   [Table des matières][Index]