RichTextEdit - how do they work?

I already ported the RichTextBlock to UMG, but know I want to research the RichTextEdit. An example can be found in the STestSuite which contains a WISYWIG editor workalike. Analyzing the Slate structure shows me that the text input is a normal MultiLineTextBox, but looking through the whole code confuses me somehow. Can someone (maybe Nick Darnell?) maybe explain the structure on this (e.g. the way the MultiLineTextBox gets the formatting)?

All the textblocks editable/non-editable share a substantial amount of code when it comes to how to layout the text. By providing the multiline editable textbox with a rich text Marshaller, the rich text marshaler, can swap out the markup text for the corresponding decorators that it parses out of that text. The “SRichTextBlock” does very little when it comes to making the fancy text. All the real work happens in the marshaler, and more specifically the ITextDecorators, since they’re the ones doing the hard work of parsing the text and providing runs of text/widgets to replace the markup.

Yup, after digging long enough, I found that out aswell. See this: This uses just two custom classes, the UMG widget and the marshaller. Cool thing is that the marshaller code can be customized so it fits the current language!