Den första offentliga utgåvan av 0.1.0 av en plattformsoberoende interaktiv kommandorad och en tolk för det funktionella språket i stil med F# har ägt rum Endo.
Projektet skapades av utvecklaren och huvudutvecklaren av terminalemulatorn Contour i programmeringsspråket C++ (standard C++23) och distribueras under Apache 2.0-licensen.
I denna version:
- Språk
- bindningar som som standard är oföränderliga när man använder let, och föränderliga när man använder let mut;
- typutdrag (Hindley-Milner) — typer kontrolleras, men sällan behöver man ange dem explicit;
- mönstermatchning med villkor, destrukturering och "eller"-mönster;
- diskriminerade unioner, poster och inbyggda typer Option/Result;
- currying-funktioner, partiell tillämpning och funktionskomposition (>>, <<);
- lambda-uttryck med platshållarsyntax (_ + 1, _.field);
- listkonstruktioner med intervall och filter;
- "latenta" beräkningar och sekvenser;
- optimering av svansrekursion;
- moduler och import.
- Utvecklingsverktyg
- Language Server Protocol — en fullständig LSP-server ($ endo —lsp) med diagnostik, autocompletions, verktygstips, gå till definition, länksökning, omnamning, formatering, semantiska token, kodåtgärder, inbyggda verktygstips, Code Lens och mycket mer;
- Debug Adapter Protocol — en fullständig DAP-server ($ endo —dap) med stöd för brytpunkter, stegvis exekvering, visning av variabler, beräkning av uttryck och disassemblage;
- förlängning för VS Code — syntaxmarkering, integration med LSP/DAP, kodsnuttar och debugging utan ytterligare konfiguration.
- Tolk
- kommandokörning kompatibel med Bash: omdirigering, mönster, &&/||, hantering av uppgifter;
- strukturerade inbyggda kommandon — ls, ps, jobs, git log, git status, docker ps — returnerar typade poster med data;
- dubbelpipelinjer: |> för funktionskomposition, | för processer;
- variabel-/kommando-/processinsättningar, utvidgning av måsvingar och tilde;
- mer än 110 inbyggda kommandon och funktioner i språket;
- exekvering av .endo-skript med modulupplösning.
- AI-agentläge
- inbyggd AI-hjälp, aktiverad med symbolen # i ett tomt inmatningsfält;
- stödda online-leverantörer: Claude, OpenAI, OpenAI-kompatibla (Ollama, vLLM, LM Studio) och Gemini;
- stöd för lokala modeller i GGUF-formatet för projektet llama.cpp;
- 18 inbyggda verktyg för att arbeta med filer, git, köra kommandon och få åtkomst till webbresurser;
- strömma svar i Markdown-format.
Källa: linux.org.ru
