This is required to set a text, minus the markup capabilities. It is part of the effort to separate the markup logic to higher level code.
Also, the big plan is to have it part of the Efl.Text interface.
There is probably going to be a lot of common code. Duplicated code is not acceptable. If we have cursor-related functions that already implement some of this logic, we need to offload their logic to helper functions so we can reuse those.
The text_set function is responsible solely for setting the text without formatting (aka markup), with a few special handling:
- The U+2029 PARAGRAPH SEPARATOR character will be handles to separate paragraph (and instantiate new text nodes)
- The U+000A LINE FEED character will be treated as the above when legacy_newline is enabled