Une Extension Turtle pour l’IDE Zed
Je viens de publier la première version d’une extension Zed pour le format Turtle.
Zed ?
Zed est un éditeur de texte / IDE très cool créé par les créateurs d’Atom et Tree-Sitter. Il est écrit en Rust et a attiré mon attention parce qu’il est très très léger, il a des keybindings Vim, JetBrains, VSCode, Helix et Emacs et un bon système d’extensions. Il a de multiples avantages (du moins à mon avis) sur la concurrence. Il s’appuie sur les points forts d’autres IDE tout en étant très agréable à utiliser. Il intègre des fonctionalités de pair-programming et de développement à distance nativement, ce qui est très pratique.
Plus important encore, il n’est pas détenu par une entreprise dirigée par des multimilliardaires soutenant le fascisme qui finira par arrêter le développement ou mettre le produit derrière un paywall une fois que le monde entier y sera accro. Et oui, il propose de l’IA, les MCP et l’édition agentique si c’est votre truc, mais c’est quelque chose que vous pouvez désactiver, ce que j’ai fait.
Zed est petit à petit en train de me faire oublier Emacs (et c’est pas rien). Vous devriez vraiment l’essayer. Arrêtez de lire ceci et téléchargez-le !
Turtle ?
C’est le format de fichier RDF que j’utilise beaucoup au travail. Il rend les triplets de graphe RDF dans un format lisible, le rendant plus facile à gérer que le RDF/XML brut ou les autres formats de fichiers de web sémantique JSON-LD.
Voici un exemple de fichier Turtle :
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix ex: <http://example.org/stuff/1.0/> .
<http://www.w3.org/TR/rdf-syntax-grammar>
dc:title "RDF/XML Syntax Specification (Revised)" ;
ex:editor [
ex:fullname "Dave Beckett";
ex:homePage <http://purl.org/net/dajobe/>
] .
Extension ?
Alors pourquoi une extension RDF ?
Alors que j’éditais des fichiers .ttl pour le travail dans Zed, j’ai commencé à chercher une extension pour coloriser mon code, mais je n’en ai pas trouvé. J’ai donc décidé de créer la mienne !
J’ai regardé la documentation développeur de Zed, pris un peu d’inspiration des extensions existantes et commencé à écrire mes toutes premières lignes de code Rust - une autre excellente raison de me lancer là-dedans.
Il m’a suffit de rassembler des ressources éparpillées ici et là sur Internet :
- Un projet tree-sitter prêt à l’emploi pour Turtle
- Un serveur de langage disponible ici
…et écrire quelques lignes de code pour transformer le tout en fonctionnalités utilisable dans Zed.
Les fonctionnalités
Voici ce que fait l’extension pour l’instant :
- Coloration syntaxique
- Navigation par symboles
- LSP - le serveur est automatiquement téléchargé lorsque vous éditez votre premier document Turtle
Ce que je prévois d’ajouter dans un futur proche est :
- Formatage
- Validation SHACL
- Un meilleur LSP avec go to definition / implementation (et peut-être le formatage dans le cadre du LSP)
L’extension Zed Turtle avec la navigation par symboles
Ce que vous pouvez faire
J’espère que le plugin servira à la fois les communautés Zed et Web Sémantique.
Si vous êtes intéressé(e) par cette extension, n’hésitez pas à l’essayer, signaler des problèmes ou ajouter des demandes de fonctionnalités, ou même me donner un coup de main pour l’améliorer !
MoskitoHero