Lookandfeel change when closing plugin

I partly agree with you, in the sense that I certainly favor a way to tell the SharedResourcePointer whether it should instantiate the “resource” immediately upfront or lazily upon first usage (a template argument maybe?)

What I don’t agree with is changing its default behavior: that could “move” a significant amount of load time from plug-in instantiation to the first editor creation.
While that’s not a breaking change in the strict sense, certainly such a change in behavior may puzzle some developers and, in the worst case, create some kind of UX issue.

I guess my use of the word default was a bit lazy because I agree it’s normally best not to change behaviour of existing code. I just mean that in an ideal world (ignoring legacy issues) I think the default behaviour should be to load the resource when it’s required. However a template argument to select that behaviour might be beneficial for those that want to purposely optimise the behaviour.

However a counter argument to that point might be that you will actually reduce load time in total because for example if the load time for a resource is significant then that load time could be removed from a plugin scan for example. In other words the significant load time is removed if the resource is never accessed, and even without a template argument to decide the behaviour it would be easy enough to replicate the current behaviour by calling get() on the SharedResourcePointer.

I do think in this particular case it’s a tough call as to if the default behaviour should change though.