Исходный код к книге «Редакторы изнутри: архитектура C++-приложений на примере LibreOffice, FreeCAD и Blender».
Каждая глава = директория. Каждый пример из текста = отдельный .cpp с номером раздела.
| Глава | Директория | Тема | Ключевые концепции |
|---|---|---|---|
| 1 | chapter-01 | Редактор — это не текстовое поле | Наивный undo, branching history, три редактора — один паттерн |
| 2 | chapter-02 | Как хранить документ | Gap Buffer, Piece Table, Composite, Visitor |
| 3 | (в разработке) | Undo, которому можно доверять | Command pattern, транзакции, SwUndo |
| … | … | … | … |
| Инструмент | Минимальная версия |
|---|---|
| GCC | 12+ |
| Clang | 15+ |
| MSVC | 2022 (19.35+) |
| CMake | 3.20+ |
git clone https://github.com/a-leontyev/editor-internals-cpp
cd editor-internals-cpp
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build --parallel
ctest --test-dir build --output-on-failuregit checkout chapter-01 # код в конце главы 1
git checkout chapter-03 # код в конце главы 3cmake -B build -DCMAKE_BUILD_TYPE=Debug -DENABLE_SANITIZERS=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failureАнтон Леонтьев — Senior C++ разработчик.
Канал: Код и Капитал
Код — MIT. Текст книги — авторское право автора.