I believe that every programmer should write his own editor, in the same way that every Jedi should build his own lightsabre (the main tool of use).
This repository contains all the code for my editor. Initially, it is written in C, but later it will be rewritten in my own language.
The project follows a platform-agnostic architecture with clear separation between:
- Core Editor Logic: Platform-independent code that handles editing functionality
- Platform Layer: Platform-specific code that interfaces with the operating system
- Common Utilities: Shared types and utilities used across the project
The development is divided into several phases:
- Terminal initialization and configuration
- Screen buffer and efficient rendering
- Input processing
- Cursor control
- Implement text storage and editing
- Cursor movement within text
- File loading and saving
- Viewport and scrolling
- Modal editing system (normal, insert, command modes)
- Keybindings and commands
- Text operations
- Advanced editing features
- Configuration system
- Plugin architecture
- GCC or Clang compiler with C23 support
- Make
makemake runmake clean- No external dependencies beyond standard libraries
- Clear separation between platform-specific and platform-agnostic code
- Efficient terminal I/O through state tracking and minimal updates
- Pure update loop with explicit input and output through platform interface
This project is personal and not yet licensed for distribution.