Nouvelles fonctionnalités

Rune 1.3 introduit quatre ajouts majeurs : le support natif de TypeScript, l’éditeur Helix intégré, le rendu graphique via le protocole Kitty et la prise en charge du message OSC‑7501. Chaque composant s’insère dans l’architecture modulaire de Rune, qui repose sur un moteur d’exécution JavaScript/TypeScript et un système de plugins. L’ajout simultané de ces éléments modifie le flux de compilation, le pipeline d’affichage et la couche de communication inter‑processus.

Intégration de TypeScript

Le support TypeScript repose sur le compilateur tsc embarqué dans le runtime Rune. Le code source écrit en .ts est d’abord transpilé en JavaScript ES2022 avant d’être injecté dans le sandbox d’exécution. Cette étape ajoute une phase de vérification de type statique, ce qui réduit les erreurs d’exécution détectées au moment du déploiement. Le processus de compilation reste synchronisé avec le rechargement à chaud de Rune, évitant ainsi une latence perceptible pour l’utilisateur.

Support de l’éditeur Helix

Helix, éditeur modal basé sur le moteur de texte kakoune, est intégré comme plugin natif. Rune expose une API qui permet à Helix de manipuler les buffers de code, d’appeler les fonctions de compilation TypeScript et de récupérer les diagnostics. Cette liaison s’appuie sur le protocole LSP (Language Server Protocol) déjà présent dans Rune, garantissant une communication bidirectionnelle fiable. L’architecture en couches évite les conflits de dépendances entre Helix et d’autres extensions, car chaque plugin possède son propre espace de noms.

Gestion des graphiques Kitty et OSC‑7501

Kitty fournit un protocole de rendu d’images dans le terminal, basé sur des séquences d’échappement ANSI. Rune 1.3 encode les textures générées par le moteur graphique interne en flux Kitty, ce qui permet d’afficher des visualisations haute résolution sans quitter le terminal. Le support d’OSC‑7501, quant à lui, ajoute la capacité d’envoyer et de recevoir des messages Open Sound Control, souvent utilisés pour la synchronisation audio‑visuelle. L’implémentation utilise un socket UDP non bloquant, intégré au cycle d’événements de Rune, afin de ne pas perturber le traitement des scripts TypeScript. Cette combinaison ouvre la voie à des interfaces interactives où le code, l’édition et le rendu graphique cohabitent dans une même session terminale.