Die erste öffentliche Version 0.1.0 der plattformübergreifenden interaktiven Kommandozeile und des Interpreters einer funktionalen Sprache im Stil von F# wurde veröffentlicht. Endo.
Das Projekt wurde vom Autor und Hauptentwickler des Terminalemulators ins Leben gerufen. Contour in C++ (Standard C++23) und wird unter der Lizenz Apache 2.0 vertrieben.
In dieser Ausgabe:
- Sprache
- Bindungen, die standardmäßig unveränderlich sind, wenn man let verwendet, und veränderlich sind, wenn man let mut verwendet;
- Typausgabe (Hindley-Milner) — Typen werden überprüft, müssen aber selten explizit angegeben werden;
- Musterabgleich mit Bedingungen, Destrukturierung und "oder"-Muster;
- diskriminierte Vereinigungen, Datensätze und eingebaute Option/Result-typen;
- Currying, partielle Anwendung und Funktionskomposition (>>, <<);
- Lambda-Ausdrücke mit Platzhalter-Syntax (_ + 1, _.field);
- Listen-Konstruktionen mit Bereichen und Filtern;
- "faule" Berechnungen und Sequenzen;
- Optimierung der Tail-Rekursion;
- Module und Import.
- Entwicklungstools
- Language Server Protocol — ein voll funktionsfähiger LSP-Server ($ endo —lsp) mit Diagnosen, Autovervollständigung, Tooltips beim Hover, Navigation zu Definitionen, Link-Suche, Umbenennung, Formatierung, semantischen Tokens, Aktionen an Code, eingebauten Tooltips, Code Lens und vielem mehr;
- Debug Adapter Protocol — ein voll funktionsfähiger DAP-Server ($ endo —dap) mit Unterstützung für Breakpoints, Schritt-für-Schritt-Ausführung, Variablenansicht, Berechnung von Ausdrücken und Disassemblierung;
- Erweiterung für VS Code — Syntaxhervorhebung, Integration mit LSP/DAP, Code-Snippets und Debugging ohne zusätzliche Konfiguration.
- Shell
- Bash-kompatible Ausführung von Befehlen: Umleitungen, Patterns, && / ||, Aufgabenverwaltung;
- strukturelle eingebettete Befehle — ls, ps, jobs, git log, git status, docker ps — geben typisierte Datensätze zurück;
- Doppelte Pipelines: |> zur Funktionskomposition, | für Prozesse;
- Variable/Befehls/Prozess-Ersatz, Entfaltung von geschweiften Klammern und Tilden;
- über 110 eingebaute Befehle und Funktionen der Sprache;
- Ausführung von .endo-Skripten mit Modulauflösung.
- Agentenmodus "KI"
- eingebaute "KI"-Hilfe, die mit dem Symbol gestartet wird # in einem leeren Eingabefeld;
- unterstützte Online-Anbieter: Claude, OpenAI, OpenAI-kompatible (Ollama, vLLM, LM Studio) und Gemini;
- Unterstützung für lokale Modelle im GGUF-Format des Projekts llama.cpp;
- 18 integrierte Werkzeuge zur Arbeit mit Dateien, Git, Ausführung von Befehlen und Zugriff auf Webressourcen;
- Streaming von Antworten im Markdown-Format.
Quelle: linux.org.ru
