
Explores a custom text editor with rich text rendering, efficient long-form text handling, cursor movement, text selection, and spell-check capabilities. Features custom span drawing and efficient edit tracking.
Compose has been missing a Rich Text Editor since its inception. I've taken a crack at this previously, as have others.
However, they have all suffered from fundamental limitations in BasicTextField, the foundation of
all text entry in Compose.
This project is an attempt to re-implement text entry from scratch to finally have a solution to the various problems.
I've been trying to implement a spell checking text
field in Compose, and keep running up against
the limitations of BasicTextField. Pretty much out of options, I decided to see what it might take
to replace BasicTextField with something that solved all of my needs.
And now, it's working, and at this point, working pretty well.
You can Give it a try here.
Desktop (JVM), Android, iOS, WASM
Text Editor:
implementation("com.darkrockstudios:composetexteditor:2.0.0")
Spell Checking addon:
implementation("com.darkrockstudios:composetexteditor-spellcheck:2.0.0")
Find & Replace addon:
implementation("com.darkrockstudios:composetexteditor-find:2.0.0")
I don't know. Maybe. It might not a permanent solution.
BasicTextField2's new state based approach and gap-buffer has reach maturity and includes a lot of what I would need
to replace this, but still cannot handle rich text rendering, still can't emit individual edit events.
So until those are solved, this is the only solution that I am aware of that ticks every box.
Compose has been missing a Rich Text Editor since its inception. I've taken a crack at this previously, as have others.
However, they have all suffered from fundamental limitations in BasicTextField, the foundation of
all text entry in Compose.
This project is an attempt to re-implement text entry from scratch to finally have a solution to the various problems.
I've been trying to implement a spell checking text
field in Compose, and keep running up against
the limitations of BasicTextField. Pretty much out of options, I decided to see what it might take
to replace BasicTextField with something that solved all of my needs.
And now, it's working, and at this point, working pretty well.
You can Give it a try here.
Desktop (JVM), Android, iOS, WASM
Text Editor:
implementation("com.darkrockstudios:composetexteditor:2.0.0")
Spell Checking addon:
implementation("com.darkrockstudios:composetexteditor-spellcheck:2.0.0")
Find & Replace addon:
implementation("com.darkrockstudios:composetexteditor-find:2.0.0")
I don't know. Maybe. It might not a permanent solution.
BasicTextField2's new state based approach and gap-buffer has reach maturity and includes a lot of what I would need
to replace this, but still cannot handle rich text rendering, still can't emit individual edit events.
So until those are solved, this is the only solution that I am aware of that ticks every box.