The first public release of 0.1.0 of the cross-platform interactive command shell and interpreter for the F#-style functional language has taken place. Endo.
The project was created by the author and main developer of the terminal emulator Contour in C++ (C++23 standard) and distributed under the Apache 2.0 license.
In this issue:
- Language
- bindings that are immutable by default when using let, and mutable when using let mut;
- type inference (Hindley-Milner) - types are checked, but they rarely have to be specified explicitly;
- conditional pattern matching, destructuring, and “or” patterns;
- discriminated unions, records, and built-in Option/Result types;
- curried functions, partial application and function composition (>>, <<);
- lambda expressions with placeholder syntax (_ + 1, _.field);
- list constructions with ranges and filters;
- lazy evaluations and sequences;
- tail recursion optimization;
- modules and imports.
- Development tools
- Language Server Protocol — a full-featured LSP server ($ endo -lsp) with diagnostics, autocompletion, hover hints, go to definition, reference search, renaming, formatting, semantic tokens, code actions, inline hints, Code Lens, and much more;
- Debug Adapter Protocol is a full-featured DAP server ($ endo --dap) with support for breakpoints, single-step execution, variable viewing, expression evaluation, and disassembly;
- VS Code extension - syntax highlighting, LSP/DAP integration, code snippets, and debugging out of the box.
- shell
- Bash-compatible command execution: redirection, wildcards, &&/||, task management;
- structured built-in commands - ls, ps, jobs, git log, git status, docker ps - return typed records with data;
- dual pipelines: |> for function composition, | for processes;
- variable/command/process substitution, brace and tilde expansion;
- more than 110 built-in commands and language functions;
- Executing .endo scripts with module resolution.
- AI agent mode
- built-in "AI" help, launched with a symbol # in an empty input field;
- Supported online providers: Claude, OpenAI, OpenAI-compatible (Ollama, vLLM, LM Studio) and Gemini;
- support for local models in the GGUF project format call.cpp;
- 18 built-in tools for working with files, git, running commands and accessing web resources;
- Streaming responses in Markdown format.
Source: linux.org.ru
