Miał miejsce pierwszy publiczny wydanie 0.1.0 wieloplatformowej interaktywnej powłoki i interpretatora funkcjonalnego języka w stylu F# Endo.
Projekt został stworzony przez autora i głównego dewelopera emulatora terminala Contour w języku C++ (standard C++23) i jest rozpowszechniany na licencji Apache 2.0.
W tym wydaniu:
- Język
- wiązania, które domyślnie są niemutowalne przy użyciu let, a mutowalne przy użyciu let mut;
- wypis typów (Hindley-Milner) — typy są sprawdzane, ale rzadko trzeba je podawać w sposób jawny;
- dopasowanie wzorców z warunkami, destrukturyzacja i wzorce „lub”;
- wielomiany dyskryminacyjne, rekordu i wbudowane typy Option/Result;
- funkcje karri, częściowe zastosowanie i kompozycja funkcji (>>, <<);
- wyrażenia lambda z składnią zastępnika (_ + 1, _.field);
- konstrukcje list z zakresami i filtrami;
- „leniwe” obliczenia i sekwencje;
- optymalizacja rekurencji ogonowej;
- moduły i import.
- Narzędzia deweloperskie
- Protokół serwera języka - pełnofunkcjonalny serwer LSP ($ endo —lsp) z diagnostyką, autouzupełnianiem, podpowiedziami przy najechaniu kursorem, przejściem do definicji, wyszukiwaniem odniesień, zmianą nazwy, formatowaniem, semantycznymi tokenami, działaniami na kodzie, wbudowanymi podpowiedziami, Code Lens i wieloma innymi;
- Protokół Debug Adapter - pełnofunkcjonalny serwer DAP ($ endo —dap) z obsługą punktów przerwania, krokowego wykonania, przeglądania zmiennych, obliczania wyrażeń i dezasembliacji;
- rozszerzenie dla VS Code - podświetlanie składni, integracja z LSP/DAP, fragmenty kodu i debugowanie bez dodatkowej konfiguracji.
- Powłoka
- wykonywanie poleceń zgodnych z Bash: przekierowanie, wzorce, &&/||, zarządzanie zadaniami;
- strukturalne wbudowane polecenia — ls, ps, jobs, git log, git status, docker ps — zwracają typowane rekordy z danymi;
- podwójne potoki: |> do kompozycji funkcji, | do procesów;
- substytucja zmiennych/poleceń/procesów, rozwijanie nawiasów klamrowych i tildy;
- ponad 110 wbudowanych poleceń i funkcji języka;
- wykonywanie skryptów .endo z rozwiązaniem modułów.
- Tryb „AI”-agenta
- wbudowana pomoc „AI”, uruchamiana za pomocą symbolu # w pustym polu wejściowym;
- obsługiwani dostawcy online: Claude, OpenAI, zgodni z OpenAI (Ollama, vLLM, LM Studio) i Gemini;
- wsparcie dla lokalnych modeli w formacie GGUF projektu llama.cpp;
- 18 wbudowanych narzędzi do pracy z plikami, git, wykonywania poleceń i dostępu do zasobów internetowych;
- strumieniowe przesyłanie odpowiedzi w formacie Markdown.
Źródło: linux.org.ru
