I’m using a TextEditor as a logging output window. Not really what a TextEditor is meant for, but there is no better control. The problem is the control doesn’t have focus so the timer never starts a new transaction. insertTextAtCursor() adds to the current transaction until the process runs out of memory and crashes.
Really, it would be best if you could just disabled undo, as I don’t want the user to be able to undo anyway.