It is a basic text editor for now. It has the basic features that every text editor should have.
- You can write stuff. Then save it. It uses gap buffer to store characters.
- You can move with arrow keys
- You can move word by word via CTRL and arrow keys.
- You can highlight words with SHIFT.
- You can copy and paste everything with CTRL+C and CTRL+V
- Writing more than a specific row count triggers scrolling.
- Network structure is partially done. You can start the editor as a host or as a client.
Clients can only listen to the host.
Hosts can alter the file.
Clients can use the other functionalities like saving file.
- Offline mode — single user, full editing including changing the file being edited.
- Host mode — opens a TCP server, lets clients connect, broadcasts buffer changes to all clients.
- Client mode — connects to a host, can only move around the file the host is editing. No editing, saving, or file changing.
- It will work properly only if you adjust your terminal to be length of 40 lines or more. If it is less cursor loses its mind.
- CTRL+SHIFT combo is not working for some reason going to fix it.
- Printing logic is AWFUL. It prints 40 rows instantly every time. It is NOT optimal.
- I think I have multiple leaks. Not sure tho.
- Going to fix the things that are in restrictions.
- I really need to write tests.
- Going to add tree-sitter to make this a proper looking text editor.
- This project at first planned as a multiple user editor. It has a long way to go.