La première version publique 0.1.0 de l'interface de ligne de commande interactive multiplateforme et de l'interpréteur du langage fonctionnel de style F# a été lancée. Endo.
Le projet est créé par l'auteur et le principal développeur de l'émulateur de terminal. Contour en C++ (norme C++23) et est distribué sous la licence Apache 2.0.
Dans cette version :
- Langue
- des liaisons, qui sont immuables par défaut lorsqu'on utilise let, et mutables lorsqu'on utilise let mut;
- la déduction de type (Hindley-Milner) — les types sont vérifiés, mais il est rare de devoir les spécifier explicitement ;
- le couplage de motifs avec des conditions, la déstructuration et les motifs « ou » ;
- les unions discriminées, les enregistrements et les types intégrés Option/Result ;
- les fonctions curryfiées, l'application partielle et la composition de fonctions (>>, <<);
- les expressions lambda avec des placeholders (_ + 1, _.field);
- des constructions de listes avec des plages et des filtres ;
- les calculs « paresseux » et les séquences ;
- l'optimisation de la récursion terminale ;
- les modules et l'importation.
- Outils de développement
- Le protocole Language Server — un serveur LSP fonctionnel complet ($ endo —lsp) avec diagnostic, autocomplétion, infobulles, navigation vers la définition, recherche de références, renommage, formatage, jetons sémantiques, actions sur le code, infobulles intégrées, Code Lens et bien plus encore ;
- Le protocole Debug Adapter — un serveur DAP fonctionnel complet ($ endo —dap) avec prise en charge des points d'arrêt, de l'exécution step-by-step, de la visualisation des variables, de l'évaluation des expressions et de la désassemblage ;
- une extension pour VS Code — coloration syntaxique, intégration avec LSP/DAP, extraits de code et débogage sans configuration supplémentaire.
- Shell
- exécution de commandes compatible avec Bash : redirection, motifs, && / ||, gestion des tâches ;
- commandes intégrées structurées — ls, ps, jobs, git log, git status, docker ps — renvoient des enregistrements typés avec des données ;
- des pipelines doubles : |> pour la composition de fonctions, | pour les processus ;
- substitution de variables/commandes/processus, expansion d'accolades et de tildes ;
- plus de 110 commandes et fonctions intégrées au langage ;
- exécution de scripts .endo avec résolution de modules.
- Mode agent « IA »
- assistance « IA » intégrée, activée par le symbole # dans un champ de saisie vide ;
- fournisseurs en ligne pris en charge : Claude, OpenAI, compatibles OpenAI (Ollama, vLLM, LM Studio) et Gemini ;
- prise en charge des modèles locaux au format GGUF du projet. llama.cpp;
- 18 outils intégrés pour travailler avec des fichiers, git, exécuter des commandes et accéder aux ressources web ;
- diffusion des réponses au format Markdown.
Source : linux.org.ru
