Skip to content

a-leontyev/editor-internals-cpp

Repository files navigation

Редакторы изнутри — Исходный код

CI C++20 License: MIT

Исходный код к книге «Редакторы изнутри: архитектура 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-failure

Переключиться на состояние конкретной главы

git checkout chapter-01   # код в конце главы 1
git checkout chapter-03   # код в конце главы 3

Сборка с sanitizers (рекомендуется)

cmake -B build -DCMAKE_BUILD_TYPE=Debug -DENABLE_SANITIZERS=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failure

Об авторе

Антон Леонтьев — Senior C++ разработчик.
Канал: Код и Капитал


Лицензия

Код — MIT. Текст книги — авторское право автора.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors