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


22.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 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). Si vous permettez à Emacs de charger le fichier .dir-locals.el à la racine du projet, cela permettra à Geiser d’ajouter automatiquement les sources Guix locales au chemin de chargement de Guile.

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: Alternative Setups, Précédent: Lancer Guix avant qu’il ne soit installé, Monter: Contribuer   [Table des matières][Index]