# История изменений PyLite

## Версия 0.1.5 (2025-09-30) - Расширение VS Code и обновление документации

### Added
- **Расширение для VS Code**: Полная поддержка языка PyLite в Visual Studio Code:
  * Подсветка синтаксиса для файлов .pyl
  * Интеллектуальное автодополнение встроенных функций и ключевых слов
  * Сниппеты для часто используемых конструкций (циклы, условия, функции и т.д.)
  * Поддержка запуска файлов PyLite и интерактивного режима
  * Настраиваемый путь к исполняемому файлу PyLite
- **Документация**: Обновлена документация с описанием новых модулей turtle и sound

### Changed
- Обновлен файл .gitignore для корректного игнорирования артефактов сборки расширения VS Code
- Улучшено README.md с подробной документацией по расширению VS Code
- Обновлена техническая документация с деталями реализации новых модулей
- Завершён список встроенных функций в руководстве пользователя

## Версии 0.1.4.1 - 0.1.4.2 (2025-09-29) - Фиксы
- Исправлено воспроизведение звуков и интеграция модулей (звук и рисование)
- Реализовано воспроизведение звука с указанием пути (вместо встроенных)

## Версия 0.1.4 (2025-09-29) - Звуки и картинка 🎉

### Added
- **Модуль `turtle`**: Добавлена черепашья графика с отображением в реальном времени в отдельном окне. Модуль использует `PyQt5` для кросс-платформенной совместимости.
- **Модуль `sound`**: Добавлена возможность воспроизведения звуковых файлов (`.wav`, `.ogg`) с помощью `pygame`. Функция `play` теперь поддерживает как встроенные звуки, так и полные пути к файлам.
- Новые примеры `turtle_example.pyl` и `sound_example.pyl`.
- `MANIFEST.in` для правильной упаковки не-Python файлов (документация, примеры, ресурсы).

### Changed
- **Улучшены сообщения об ошибках**: Переписаны все основные сообщения об ошибках, чтобы они были более дружелюбными и понятными.
- **Архитектура**: Проведен рефакторинг для устранения циклических зависимостей.

### Fixed
- Устранена проблема с зависимостью от `tkinter`. Все зависимости теперь управляются через `pip`.
- Исправлена ошибка с воспроизведением звука и обработкой громкости в модуле `sound`.
- Исправлена ошибка с поиском путей к ресурсам (звуковым файлам) при установке пакета.

## Версия 0.1.3 (2025-09-29) - Снова фиксы

- feat(repl): Улучшение интерактивной оболочки и обработки ошибок

  - Многострочный ввод: REPL теперь полностью поддерживает многострочные операторы. Пользователи могут определять функции, циклы и другие блоки кода непосредственно в интерактивной строке.
  - История команд: Добавлена ​​поддержка истории команд с помощью клавиш со стрелками (вверх/вниз) для более удобной навигации и повторного выполнения предыдущих команд.
  - Улучшенные сообщения об ошибках: Улучшены отчёты об ошибках при непредвиденных системных ошибках: теперь в них отображается строка кода, вызвавшая проблему, что упрощает отладку.
  - Обновление командной строки: Командная строка REPL сокращена ​​до pyl> для более лаконичного интерфейса.

## Версия 0.1.2 (2025-09-29) - Updated Readme
- Просто обновил ридми

## Версия 0.1.1 (2025-09-29) - Фиксы! 🎉
- feat: Добавлена поддержка классов и атрибутов
- refactor: Улучшена обработка ошибок и синтаксиса
- chore: Обновлена версия проекта до 0.1.1

## Версия 0.1.0 (2025-09-29) - Первый релиз на PyPI! 🎉

### 🎉 Первый релиз!

**Новые возможности:**
- ✨ Полнофункциональный интерпретатор PyLite
- 🔤 Лексический анализатор с поддержкой всех основных токенов
- 🌳 Синтаксический анализатор, строящий AST
- 🚀 Интерпретатор с поддержкой всех базовых конструкций Python
- 📝 Дружелюбные сообщения об ошибках на русском языке
- 💻 CLI интерфейс с REPL и выполнением файлов .pyl
- 📚 Встроенные модули: math, random, time
- 🧪 Полный набор тестов (юнит и интеграционные)

**Поддерживаемые конструкции:**
- Переменные и все основные типы данныхv
- Арифметические и логические операторы
- Условные выражения (if/elif/else)
- Циклы (for/while)
- Функции с параметрами и возвратом значений
- Простые классы с наследованием
- Списки и словари
- Импорт модулей

**Встроенные функции:**
- print(), input(), len(), type()
- str(), int(), float(), bool()
- range(), max(), min(), sum(), abs()

**Система ограничений (базовый режим):**
- Максимум 500 строк в программе
- Глубина вложенности до 3 уровней
- Длина строки до 80 символов

**Безопасность:**
- Изолированная среда выполнения
- Контроль ресурсов
- Валидация входных данных

**Документация:**
- Подробное руководство пользователя
- Техническая документация для разработчиков
- Множество примеров программ
- Инструкции по установке и использованию

### Известные ограничения:
- Нет поддержки break/continue в циклах
- Нет lambda-функций и генераторов
- Нет множественного наследования
- Нет работы с файлами и сетью (по соображениям безопасности)

### Планы на будущее:
- Веб-интерфейс для изучения программирования
- Визуальный отладчик
- Больше встроенных модулей
- Интеграция с популярными IDE
- Система упражнений и задач
