You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SmashEdit can be configured at compile-time by modifying include/smashedit.h:
#defineTAB_WIDTH 2 // Tab width in spaces
#defineMAX_UNDO_LEVELS 100 // Maximum undo history
#defineMAX_SELECTIONS 1024 // Maximum multi-select ranges
#defineMAX_LINE_LENGTH 4096 // Maximum line length
๐จ Color Scheme
Element
Colors
Editor Area
โฌ White on ๐ฆ Blue
Menu Bar
โฌ Black on ๐ฉต Cyan
Selected Text
๐จ Yellow on ๐ฆ Blue
Dialog Boxes
โฌ White on ๐ฆ Blue
Status Bar
โฌ Black on ๐ฉต Cyan
๐ง Building from Source
Using Make (Recommended)
# Build the project
make build
# Clean build artifacts
make clean
# Install to ~/.smashedit/
make install
Using CMake Directly
# Configure
cmake -B bin -S . -DCMAKE_BUILD_TYPE=Release
# Build
cmake --build bin
# The binary will be at bin/smashedit
๐ Technical Details
Metric
Value
๐ป Language
C (C11 standard)
๐ Lines of Code
~4,000
๐ฆ Dependencies
ncurses only
๐งฉ Modules
11 components
๐ Buffer Type
Gap Buffer
๐๏ธ Architecture
Gap Buffer โ Efficient text storage for real-time editing
Modular Design โ Clean separation of concerns
Signal Handling โ Graceful shutdown and terminal resize
Memory Safe โ Proper allocation and cleanup
๐บ๏ธ Roadmap
๐จ Syntax highlighting
๐ Multiple buffers/tabs
๐ Plugin system
โ๏ธ Configuration file support
๐ฑ๏ธ Mouse support
๐ Macro recording
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
๐ด Fork the repository
๐ฟ Create your feature branch (git checkout -b feature/amazing-feature)
๐พ Commit your changes (git commit -m 'Add amazing feature')
๐ค Push to the branch (git push origin feature/amazing-feature)
๐ Open a Pull Request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
๐ ncurses โ The terminal UI library that makes this possible
๐ก Inspired by classic terminal editors like nano, vim, and micro