As Doru already mentioned text editor is an important part of the tools. There are some requirements a text editor should fulfil.
- Support of large files ( >> 100mb)
- Support of large pieces of text located in memory
- Allow developers to embed visual elements (pictures, interactive elements, custom elements)
- Support of more sophisticated layouts rather than line-based. For example columns.
- Line breaking
- Text wrapping
- Hyphens
- Should be fast
Tests show that TxText model is very nice for basic cases, works well for "normal" use.
However, when it comes to extreme cases linked list of spans just fails, while rope shows great performance - and it also scales.