+- macaw --------------------------------------------------------+
|              _ __ ___   __ _  ___ __ ___      __               |
|             | '_ ` _ \ / _` |/ __/ _` \ \ /\ / /               |
|             | | | | | | (_| | (_| (_| |\ V  V /                |
|             |_| |_| |_|\__,_|\___\__,_| \_/\_/                 |
|                                                                |
|  [Repository]                        Developed in C & ncurses  |
|                                                                |
+----------------------------------------------------------------+

[001] Introduction
__________________________________________________________________

Macaw is a minimalist text editor currently being developed,
drawing heavily from the core functionality of Vim. It is written
entirely in C and leverages the ncurses library for handling
text-based user interfaces.


[002] Project Overview
__________________________________________________________________

Key Features:
 - Written in C: chosen for performance and find control memory.
 - Uses ncurses: ensures compatibility across various OS's.
 - Minimalistic: focused on simplicity over complexity.

      
[003] Project Architecture
__________________________________________________________________
      
1. File Structure
      
     +------------------------------------------------------+     
     |                                                      |
     |  macaw/                                              |
     |  |-- src/                                            |
     |  |   |- buffer.c                                     |
     |  |   |- buffer.h                                     |
     |  |   |- color.c                                      |
     |  |   |- color.h                                      |
     |  |   |- editor.c                                     |
     |  |   |- editor.h                                     |
     |  |   |- input.c                                      |
     |  |   |- input.h                                      |
     |  |   |- render.c                                     |
     |  |   |- render.h                                     |
     |  |-- main.c                                          |
     |                                                      |
     +------------------------------------------------------+     

2. Components

 - Entrypoint (main.c): The entry point of the application, where
   the editor component is called and started.

 - Editor Module (editor.c): The heart of Macaw, the editor module
   manages text buffers, cursor movement and operations on text.

 - Input Handling (input.c): Processes user inputs by reading the
   keystrokes. This module  manages Vim-like key bindings and 
   interprets inputs based on the current mode.

 - Rendering (render.c): Module responsible for rendering the
   whole interface to the terminal using ncurses.

 - Buffer Management (buffer.c): Manages the text buffer, which is
   is the in-memory representation of the file being edited.
      
 - Colors (color.c): Module responsible for initializing and 
   managing custom colors within the terminal interface.


[004] Screenshots
__________________________________________________________________

  
Screenshot #1