๐ A text editor buffer component based on Ropey with multiselection heavy lifting.
While there are crates providing data structures to keep text maintaining performance on random access the other common part is how a cursor should act. Inspired by Kakoune, Coredit attempts to simplify creation of a custom text editor with sensible defaults, including multiple selections. (Those who don't like multiple selections can use only one!)
It's not an editor: at least you need to attach a keyboard
reader and to draw current state of the buffer. However, there
is a minimal editor in examples
directory
(cargo run --example edi
).
Coredit doesn't try to be full-featured: it is busy storing
text, doing manual changes and controlling selections. LSP
integrations, Lua scripting, highlighting and M-x doctor
could be main features of the text editor you made, but they
should not belong to the buffer core.
By tradition, let's call this a very WIP. Seriously, there is a known room for improvement by means of performance, also API may become heavier if the idea of "minimal core" is not that good.