https://github.com/matteoppet/text_editor
Simple Raylib Text Editor from scratch
https://github.com/matteoppet/text_editor
cpp piece-table raylib scratch-implementation text-editor
Last synced: 7 months ago
JSON representation
Simple Raylib Text Editor from scratch
- Host: GitHub
- URL: https://github.com/matteoppet/text_editor
- Owner: matteoppet
- Created: 2025-03-31T16:06:10.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-23T10:29:45.000Z (12 months ago)
- Last Synced: 2025-06-04T02:22:56.165Z (11 months ago)
- Topics: cpp, piece-table, raylib, scratch-implementation, text-editor
- Language: C
- Homepage:
- Size: 5.35 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Simple Raylib Text Editor
This is a basic text editor built from scratch using C++ and the Raylib library.
This editor utilizes a Piece Table data scructure for efficient text manipulation.
## Preview

## Features
* **File Operations:** Open, Save, Save As.
* **Editing:** Copy, Paste, Undo, Redo.
* **Navigation:**
* Move the cursor using the **Arrow Keys**.
* Select text by holding **Shift** while moving the cursor with **Arrow Keys**.
* Scroll through the text using the **Mouse Wheel**.
## Building from Source
You can compile the editor yourself using `make`.
1. **Prerequisites:** Ensure you have a C++ compiler (like g++) and `make` installed. You also need the Raylib library development files set up correctly for your system.
2. **Clone the repository:**
```bash
git clone https://github.com/matteoppet/Text-editor.git
cd repository_name
```
3. **Build:**
```bash
make
```
This will generate an executable file (e.g., `editor.exe`) in the project directory.
## Download
A pre-compiled executable for Windows is available on the [GitHub Releases page](https://github.com/matteoppet/Text-editor/releases/tag/v1.0.0).
## Credits
This project uses the following excellent libraries:
* [Raylib](https://www.raylib.com/) - For graphics and input handling.
* [Tiny File Dialogs](https://sourceforge.net/projects/tinyfiledialogs/) - For native open/save file dialogs.
## Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request if you have suggestions or improvements.