Endo 0.1.0

Состоялся первый публичный выпуск 0.1.0 кроссплатформенной интерактивной командной оболочки и интерпретатора функционального языка в стиле F# Endo.
Проект создан автором и основным разработчиком эмулятора терминала Contour на языке C++ (стандарт C++23) и распространяется по лицензии Apache 2.0.
В этом выпуске:
- Язык
- связывания, по умолчанию являющиеся неизменяемыми при использовании
let, и изменяемые при использованииlet mut; - вывод типов (Hindley-Milner) — типы проверяются, но их редко приходиться указывать явно;
- сопоставление шаблонов с условиями, деструктуризация и шаблоны «или»;
- дискриминированные объединения, записи и встроенные типы
Option/Result; - функции-карри, частичное применение и композиция функций (
>>,<<); - лямбда-выражения с синтаксисом заполнителей (
_ + 1,_.field); - списочные конструкции с диапазонами и фильтрами;
- «ленивые» вычисления и последовательности;
- оптимизация хвостовой рекурсии;
- модули и импорт.
- связывания, по умолчанию являющиеся неизменяемыми при использовании
- Средства разработки
- Language Server Protocol — полнофункциональный сервер LSP (
$ endo --lsp) с диагностикой, автодополнением, подсказками при наведении курсора, переходом к определению, поиском ссылок, переименованием, форматированием, семантическими токенами, действиями над кодом, встроенными подсказками, Code Lens и многим другим; - Debug Adapter Protocol — полнофункциональный сервер DAP (
$ endo --dap) с поддержкой точек останова, пошагового выполнения, просмотра переменных, вычисления выражений и дизассемблирования; - расширение для VS Code — подсветка синтаксиса, интеграция с LSP/DAP, фрагменты кода и отладка без дополнительной настройки.
- Language Server Protocol — полнофункциональный сервер LSP (
- Оболочка
- выполнение команд, совместимое с Bash: перенаправление, шаблоны,
&&/||, управление задачами; - структурированные встроенные команды —
ls,ps,jobs,git log,git status,docker ps— возвращают типизированные записи с данными; - двойные конвейеры:
|>для композиции функций,|для процессов; - подстановка переменных/команд/процессов, развертывание фигурных скобок и тильды;
- более 110 встроенных команд и функций языка;
- выполнение скриптов
.endoс разрешением модулей.
- выполнение команд, совместимое с Bash: перенаправление, шаблоны,
- Режим «ИИ»-агента
- встроенная «ИИ»-помощь, запускаемая с помощью символа # в пустом поле ввода;
- поддерживаемые онлайн-провайдеры: Claude, OpenAI, OpenAI-совместимые (Ollama, vLLM, LM Studio) и Gemini;
- поддержка локальных моделей в формате GGUF проекта llama.cpp;
- 18 встроенных инструментов для работы с файлами, git, выполнения команд и доступа к веб-ресурсам;
- потоковая передача ответов в формате Markdown.
>>> Подробности на GitHub
