Hey @Xhaust ,
I know this is behavior is unexpected and the team is aware that it causes friction, but, for what it’s worth, here’s a bit of why it happens.
When you swap Symbols, Sketch will preserve any overrides that it can match with the target. This is why text seems to “reset” but, under the hood, nothing was reset, because there were no overrides, you were swapping one default Symbol with another.
Take this icon bar for example, this is my default, its a Symbol where each icon is also a nested symbol:
I place an instance of it but this time, I need to swap the third Symbol from the left with an avatar Symbol, so the end result is this
In this context it works fine, no surprises. The same logic applies to all Symbols, but it happens that with text it’s very straightforward to say: I’ll take my Label
default, override the text and make a new symbol from it and, in this particular context it makes sense to preserve the text. It just happens that to the current implementation, there’s nothing to preserve because you’ve create a new default with the new symbol.
There are workardounds, the one I sometimes use is to separate the style from the text, so instead of swapping the whole symbol, I swap Styles.
Of course, I’m not saying that’s the ideal way. We know this can improve and releasing a fix requires us considering different scenarios. For instance, there’s no limit in nesting, you can have a Symbol that goes 10 levels deep and in that setup, what to keep and what not to can get complex fast.