Predstavili sme prvé verejné vydanie 0.1.0 multiplatformového interaktívneho príkazového interpreta a interpretera funkčného jazyka v štýle F# Endo.
Projekt vytvoril autor a hlavný vývojár terminálového emulátora Contour v jazyku C++ (štandard C++23) a je distribuovaný pod licenciou Apache 2.0.
V tomto vydaní:
- Jazyk
- prepojenia, ktoré sú predvolene nemenné pri použití let, a meniteľné pri použití let mut;
- výstup typov (Hindley-Milner) — typy sa kontrolujú, ale zriedkavo je potrebné ich výslovne uvádzať;
- šablónové porovnávanie s podmienkami, deštrukturalizácia a šablóny „alebo“;
- diskriminované zlučenia, záznamy a zabudované typy Option/Result;
- funkcie s curry, čiastočná aplikácia a zloženie funkcií (>>, <<);
- lambda výrazy s syntaxi zástupcov (_ + 1, _.field);
- zoznamové konštrukcie s rozsahmi a filtrami;
- „lenivé“ výpočty a sekvencie;
- optimalizácia koncovej rekurzie;
- moduly a import.
- Nástroje na vývoj
- Jazykový serverový protokol — plnohodnotný LSP server ($ endo —lsp) s diagnostikou, automatickým doplňovaním, tipmi pri najetí myšou, prechodom na definíciu, vyhľadávaním odkazov, premenovaním, formátovaním, sémantickými tokenmi, akciami nad kódom, integrovanými tipmi, Code Lens a mnohým iným;
- Debug Adapter Protocol — plnohodnotný DAP server ($ endo —dap) s podporou zarážok, krokovacieho výkonu, prezretia premenných, výpočtu výrazov a disassemblovania;
- rozšírenie pre VS Code — farebné označenie syntaxy, integrácia s LSP/DAP, kódové útržky a ladenie bez dodatočného nastavenia.
- Skripty
- vykonávanie príkazov kompatibilných s Bash: presmerovanie, šablóny, && / ||, správa úloh;
- štruktúrované zabudované príkazy — ls, ps, jobs, git log, git status, docker ps — vracajú typizované záznamy s údajmi;
- dvojnásobné potrubia: |> pre zloženie funkcií, | pre procesy;
- substitúcia premenných/príkazov/procesov, rozvinovanie фигурных скобок и тильды;
- viac ako 110 zabudovaných príkazov a funkcií jazyka;
- vykonávanie skriptov .endo s povolením modulov.
- Režim „AI“ agenta
- zabudovaná „AI“ pomoc, spustená pomocou znaku # v prázdnom poli na vkladanie;
- podporovaní online poskytovatelia: Claude, OpenAI, OpenAI-kompatibilní (Ollama, vLLM, LM Studio) a Gemini;
- podpora lokálnych modelov v formáte GGUF projektu llama.cpp;
- 18 vstavaných nástrojov na prácu so súbormi, git, vykonávanie príkazov a prístup k webovým zdrojom;
- streamovanie odpovedí vo formáte Markdown.
Zdroj: linux.org.ru
