Skip to content
Tech AI Wire
Dev Stack

Emacs 31.1 automatise les grammaires Tree-sitter et retire unexec

4 min de lecture

Par Tech AI Wire Team

The GNU gnu-head logo drawn in ink outline with a red arrow curving down into it

GNU Emacs 31.1 est sorti le 24 août 2026, et le changement le plus susceptible de modifier une journée de travail est modeste : les grammaires Tree-sitter peuvent désormais s'installer seules. L'annonce de publication, postée sur la liste de diffusion info-gnu-emacs par Sean Whitton, renvoie à etc/NEWS pour les détails plutôt que de les énumérer ; la physionomie de cette version vient donc des présentations publiées en parallèle - un système de complétion réécrit, une série de commandes pour les dispositions de fenêtres, et le retrait du dumper unexec, déprécié depuis Emacs 27.

Les grammaires Tree-sitter cessent d'être une corvée manuelle

Emacs 31.1 ajoute une option treesit-auto-install-grammar qui installe automatiquement les grammaires Tree-sitter, selon la présentation de la version par Mastering Emacs. Jusqu'ici, utiliser un mode majeur Tree-sitter obligeait à se procurer soi-même la grammaire et à aligner sa version sur celle attendue par le mode ; un décalage produisait des erreurs qui ressemblaient à des bogues de l'éditeur plutôt qu'à un problème de dépendance. Mastering Emacs décrit la nouvelle option comme supprimant cette gestion manuelle des versions.

La navigation Tree-sitter devient elle aussi plus complète. La même présentation cite treesit-forward-sexp-list et treesit-forward-list pour se déplacer entre nœuds structurels, ainsi qu'une commande treesit-explore pour inspecter l'arbre syntaxique - le moyen concret de comprendre pourquoi un mode colore ou indente quelque chose de façon inattendue.

Le système de complétion a été réécrit

Le tampon Completions peut maintenant apparaître d'emblée au lieu d'attendre qu'on le demande, et l'algorithme de correspondance flex a été réécrit, d'après Mastering Emacs et la couverture de la version candidate par Linux Compatible. Les catégories de complétion peuvent hériter les unes des autres, et RET sélectionne désormais le candidat choisi avec M-UP ou M-DOWN.

Linux Compatible documente également l'arrivée d'une valeur up-down pour minibuffer-visible-completions : « Vous pouvez aussi utiliser minibuffer-visible-completions avec la nouvelle valeur "up-down" pour naviguer dans les complétions indépendamment du minibuffer. » Si vous avez assemblé ce comportement à partir de paquets tiers, la question à se poser après la mise à jour est de savoir lesquels deviennent redondants.

Les dispositions de fenêtres ont enfin leurs commandes

Réorganiser une disposition de fenêtres imposait de supprimer et de rediviser les fenêtres à la main. Emacs 31.1 ajoute des commandes qui agissent sur la disposition entière, énumérées par Mastering Emacs :

CommandeEffet
window-layout-rotate-clockwiseFait tourner la disposition dans le sens horaire
window-layout-counterclockwiseLa fait tourner dans l'autre sens
window-layout-flip-topdownRetourne la disposition verticalement
window-layout-flip-leftrightLa retourne horizontalement
window-layout-transposeTranspose lignes et colonnes
other-window-backward (C-x O)Passe à la fenêtre précédente

split-window peut en outre ressusciter une fenêtre supprimée, selon la même source. Deux changements côté terminal accompagnent ces commandes : xterm-mouse-mode est activé par défaut dans les terminaux qui le prennent en charge, et les child frames fonctionnent désormais sur les frames TTY.

Ce qui a été retiré, et un correctif absent

Le dumper unexec disparaît. Il était déprécié depuis Emacs 27, et Mastering Emacs qualifie son retrait de « fin d'une époque » - ce qui concerne surtout celles et ceux qui compilent Emacs eux-mêmes ou en maintiennent l'empaquetage. Le programme ctags intégré a lui aussi été retiré, Universal Ctags faisant office de remplaçant attendu.

Deux chantiers ne sont pas dans cette version. Le travail sur le ramasse-miettes est reporté à Emacs 32, selon Mastering Emacs. Et Linux Compatible rapporte qu'une vulnérabilité dans les formes abrégées de symboles Emacs Lisp reçoit une atténuation dans cette lignée, mais que la résolution complète est renvoyée à la version 32 - bon à savoir si vous ouvrez des fichiers Elisp venant de sources que vous ne contrôlez pas.

La prise en charge d'Unicode passe à la version 17.0, avec de nouvelles méthodes de saisie pour le grec polytonique, le tifinagh, les langues iroquoiennes du Nord dont le mohawk et l'oneida, des variantes du birman et le syriaque.

Ce que cela signifie pour les développeurs

Le changement Tree-sitter est celui sur lequel agir en premier. Si votre configuration contient du code d'installation de grammaire écrit à la main ou un commit de grammaire épinglé, essayez treesit-auto-install-grammar dans une configuration jetable avant de supprimer quoi que ce soit - puis retirez ce qu'elle rend inutile. Même chose pour la complétion : le tampon Completions immédiat et le nouveau moteur flex recouvrent ce que plusieurs paquets populaires existent pour fournir, et faire tourner 31.1 une après-midi avec une configuration volontairement minimale est le moyen le plus rapide de découvrir ce que vous n'avez plus besoin de traîner.

Si vous compilez Emacs depuis les sources ou maintenez un paquet pour une distribution, lisez le retrait d'unexec comme un changement de système de compilation et vérifiez votre recette avant que vos utilisateurs ne mettent à jour. Le retrait de ctags mérite le même traitement : tout ce qui appelle le binaire fourni exigera désormais Universal Ctags installé.

Deux raisons plaident pour la patience plutôt que la hâte. L'annonce elle-même délègue le détail à etc/NEWS : C-h n dans un 31.1 fraîchement compilé est donc la liste de référence - pas un résumé, celui-ci compris. Et parce que le correctif des formes abrégées de symboles n'arrive qu'avec Emacs 32, le volet sécurité reste incomplet ; si vous ouvrez régulièrement de l'Elisp non fiable, c'est une raison de rester attentif plutôt que de considérer l'affaire close.

Sources

  1. Emacs 31.1 released - GNU info-gnu-emacs mailing list
  2. What's New in Emacs 31.1? - Mastering Emacs
  3. GNU Emacs 31.1 RC1: Completion Overhaul, Window Commands and Unicode 17.0 - Linux Compatible