The project was inspired by Gang of Four Design Patterns and implemented on C++. The prototype is LeXI from the book.
Constructively MVC used.
Patterns are used:
- Composite (include/document/glyphs) represents hierarchy of glyphs, so via only reference to glyph user manipulates with column, row, character, page, etc.
- Compositor (include/compositor) encapsulates algorithm of format document. This way, there is possibility to change it in runtime. Also there's low cohesion between algorithm (compositor) and data structure (document).
- Command (include/executor) gives API to operate with document via Executor object executing Command. Encapsulates command history, so ctrl+z, ctrl+y commands are supported (current supported command list in include/executor/command)
- C++14 or newer
- Boost serialization library 1.8.0 or newer. e.g. Download archive from boostorg.jfrog.io
mkdir build; cd build
cmake ..
cmake —build .
Cmake builds text_editor executable in build.