I'm using a RichTextLabel for a dialogue box. I've set it up to type letters at a time, like what you would see in a visual novel.
func _on_Timer_timeout():
set_visible_characters(get_visible_characters()+1)
However, when using this with BBCode enabled, underlined or strike-through text have the lines show up ahead of the letters, like so:

I've tried using visiblepercent, but that yields the same result. Is there any way to use visiblecharacters or something similar in tandem with BBCode formatting without it looking strange?