В двух словах
Code Writer: утилита для авторов скринкастов. По диапазону коммитов строится план действий в VS Code и выполняется как с клавиатуры на Windows (API SendInput). На Linux и в CI доступен режим --dry-run: проверка плана без отправки клавиш.
Зачем проект открыт
- Сценарий: показать зрителю правки из реальной истории Git без ручного сценария в макросе.
- Аудитория: разработчики, которые пишут обучающий контент в VS Code на Windows.
- Зрелость: ветка 0.x, публичный контракт описан как CLI (флаги и семантика), не как C++ библиотека. Подробности в репозитории: docs/architecture.md.
Что умеет
- Режимы fast, realistic, cinematic (скорость и паузы для таймлапса).
- Пошаговый проход по коммитам (--stepwise) между from и to.
- Замена содержимого файлов из git show на целевой ревизии, сохранение через сочетания клавиш VS Code.
Не цели (важно)
- Не merge-tool и не интеллектуальный патчер по строкам diff.
- Не кросс-редактор: только VS Code и раскладка команд из документации.
- Не запускать без присмотра на рабочей машине с лишними окнами: это полноценная эмуляция ввода.
Репозиторий и документация
| Ресурс | Ссылка |
|---|---|
| Код, CI, issue-формы | github.com/xitren/code_writer |
| Быстрый старт и CLI | docs/usage.md |
| Архитектура и границы API | docs/architecture.md |
| Примеры сценариев | examples/ |
| Участие и DCO | CONTRIBUTING.md |
| Уязвимости | SECURITY.md |
| Кодекс поведения | CODE_OF_CONDUCT.md |
| Прогресс по чеклисту OSS | RELEASE_READINESS.md |
Технический стек
- Язык: C++20
- Сборка: CMake 3.24+ (presets: Clang + Ninja, MSVC)
- Платформа выполнения: Windows (user32, буфер обмена)
- Планирование: вызовы git из процесса; сборка и тесты также на Linux (без реальной отправки клавиш)
Лицензия
Проект распространяется под GNU GPLv3 (LICENSE).
