Lumacs

A modern text editor in C++20, inspired by Emacs with powerful Lua scripting support.
Features
✅ Implemented (Polishing & Refactoring Phase)
- Core Editing: Kill ring, mark/region, undo/redo
- Buffer Management: Multiple buffers, window splits
- Advanced Features: Registers, keyboard macros, rectangles, minibuffer history
- Search: Incremental search with highlighting
- Theme System: Dracula, Everforest, Nord, Solarized, Gruvbox, and default themes
- UI: GTK4 Frontend (primary) and Ncurses TUI (fallback)
- Modeline: Modular, extensible status bar
- Lua Scripting: Extensive Lua API for customization
🔄 Planned
- Language modes (Python, C++, JavaScript)
- Plugin system expansion
- Advanced completion UI
Tech Stack
- Core: C++20
- UI: GTK4 / gtkmm (GUI), Ncurses (TUI)
- Scripting: Lua 5.4 + sol2 bindings
- Build: CMake 3.20+
Quick Start
Building
cmake -B build -S .
cmake --build build -j4
Running
./build/lumacs [file]
Key Bindings
- Theme Switching:
M-x theme-selection
- Window Splits:
C-x 2 (horizontal), C-x 3 (vertical), C-x 0 (close)
- Buffers:
C-x b (switch), C-x k (kill), C-x C-b (list)
- Advanced:
F3/F4 (macros), C-x r s/i (registers), C-x r k/y/t (rectangles)
Documentation
License
MIT