Mastodon

Blog de Alkahan

Corriger le problème d'ABI pour le grammar de just-ts-mode

  28/04/2026 [emacs tree-sitter just] - 400 mots


just-ts-mode est un mode pour Emacs qui permet d’avoir le support des fichiers justfile . Ce mode utilise treesit et offre de meilleures performances que just-mode. Depuis quelque temps j’ai une erreur dans Emacs qui m’empêche d’avoir la coloration syntaxique pour ces fichiers.

Description du problème

Au chargement de Emacs ou lors de l’ouverture d’un fichier justfile j’ai le message suivant:

Warning (treesit): The installed language grammar for just cannot be located or has problems (version-mismatch): 15

Le problème est une incompatibilité au niveau de l’ABI entre le module treesit qui est en version 14 et le grammar pour les fichiers justfile qui est en version 15.

Le dépôt pour le grammar est le suivant: https://github.com/casey/tree-sitter-just . La montée de version de l’ABI s’est faite dans le commit fe94f52 en date du 2 février 2026. Nous avons donc besoin de compiler la version juste avant.

La compilation se fait à l’aide de la commande treesit-install-language-grammar. On peut modifier la source qui sera utilisée pour compiler la librairie correspondante avec le paramètre treesit-language-source-alist : on peut préciser l’URL du dépôt git, la branche et le répertoire ou se trouve les sources. Malheureusement, le projet n’a créé que deux tags : la v0.2.0 en date du 25 mars 2026 qui est incompatible avec ma version de emacs et la version v0.0.1 qui date du 12 mars 2024 ce qui commence à dater.

Je pourrais compiler manuellement la librairie et la copier dans le bon répertoire. Mais je veux pouvoir la réinstaller en utilisant la méthode standard. J’ai donc cloné le dépôt, créé un tag pour la dernière version compatible avec l’ABI 14 et référencé mon dépôt au bon endroit.

Correction

Suppression de l’ancienne librairie:

rm ~/.emacs.d/tree-sitter/libtree-sitter-just.so

Ajout de mon dépôt avec le bon tag dans treesit-language-source-alist

(add-to-list 'treesit-language-source-alist
  '(just . ("https://github.com/alkahan/tree-sitter-just"
            "v14"
            "src")))

installation du grammar:

M-x  treesit-install-language-grammar

Je n’ai plus le message d’erreur et j’ai enfin de nouveau le support pour la syntaxe des fichiers justfile