A minimum editor implemented with Operational Transformation.
- Preview: Youtube
- Editor
- ⭕ Line break
- ⭕ Word wrap
- ⭕ Move by arrow keys
- ⭕ Beep alert for invalid operation (ex: Move cursor out of range)
- ⭕ Cursor position highlight of yours
- ✖ Cursor position highlight of other clients
- ✖ Copy/Paste
- Operational Transformation
- ⭕ Insert single charactor (ex: Insert
'c'
by pressing C key) - ✖ Insert multiple charactors (ex: Insert
"str"
by pasting) - ⭕ Delete single charactor
- ✖ Delete multiple charactors
- ✖ Undo/Redo
- ⭕ Insert single charactor (ex: Insert
- Characters
- ⭕ ASCII
- ✖ Unicode
- Network
- ⭕ Multiple client connections
- ✖ Connection reestablishment
$ # 1. Build server and client.
$ make
$ # 2. Start server for accepting clients
$ ./bin/server <addr> <port>
$ # 3. Start client and enjoy editting!
$ ./bin/client <addr> <port>
addr
: A server's address to listenport
: A server's port number to listen
- clang (required)
- clangd (optional / for development)
- clang-format (optional / for development)
- VSCode (optional / for development)
make
: Build server and clinentmake server
: Build servermake client
: Build clientmake generate
: Generatecompile_commands.json
for clangdmake clean
: Cleanup project