/text_editor

Text editor inspired by GoF Lexi

Primary LanguageC++MIT LicenseMIT

workflow

Overview

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)

Requirements

  • C++14 or newer
  • Boost serialization library 1.8.0 or newer. e.g. Download archive from boostorg.jfrog.io

Installation

mkdir build; cd build
cmake ..
cmake —build .

Usage

Cmake builds text_editor executable in build.

Contacts